不规则多边形中有没有蝴蝶效应?

大家好,我是vghost,我们来讲解CS起源与CSGO模型蒙皮技术之柔性蒙皮——绑手及权重转移教程

在此说明,本系列教程仅适用于单机、线下模式,不支持联网、线上的游戏模式

那么我们需要准备一个CS起源游戏以及一个CSGO游戏,CS起源CSGO只需能跟人机游玩即可

在上一期的视频中我们讲解了什么是刚性蒙皮,本期教程我们来讲讲柔性蒙皮

首先,什么是柔性蒙皮?我们知道,权重不为1的蒙皮我们称为柔性蒙皮,那什么是权重不为1?

在绑枪的那一期视频中,我们在权重分配时,会在命令面板的蒙皮封套下的权重属性中勾选刚性并在绝对效果中输入1,而柔性蒙皮则恰好相反

柔性蒙皮不会勾选刚性并且不会在绝对效果中输入1,那么这会导致什么后果呢?不勾选刚性则说明这个物体是可以形变的物体,一个顶点可以绑定在两个及以上的骨骼,比如人体皮肤

而绝对效果的意思是指这个骨骼对顶点的控制权有多少,1即是百分百的控制权,0.5即是百分之五十的控制权,而如果是0.5那么剩下的百分之五十的控制权在哪里,以及控制权的作用,我们进行实际操作来理解

好的,柔性蒙皮我们知道了,那绑手是什么意思?与绑枪是一模一样的意思,只不过把枪械换成了手臂而已,也就是说,这里我有一个手臂模型,我想把它换成游戏里的手臂,那么这就是绑手的意思

还有权重转移呢?顾名思义,将权重转移到别的地方,意思是将一个模型的权重转移到另一个模型中,这样便可以省去权重分配的步骤,那为什么我们在绑枪时不使用权重转移,到绑手才使用呢?我们接着往下看

好的,那么我们需要准备一个你喜欢的手臂模型,以及一个参照手臂模型,这里我们同样称呼为自定义模型以及参照模型,而这个自定义模型和参照模型的选择是有讲究的,不同于绑枪

绑枪的自定义模型只要是你喜欢的,拥有网面即可,但是绑手就不是了,不是所有的手臂都可以绑的,首先我们先来讲自定义模型的选择,一般分为三种

第一种是网络上或者有人建模的、只有网面但是贴图已经贴好了的这种摊开的手臂模型,这种只有网面没有骨骼,但是拥有材质的手臂模型是没问题的

第二种是提取游戏获取的带有网面、权重分配及骨骼的摊开的手臂模型,这种五脏俱全的手臂模型当然是没有问题的

第三种是截取游戏的、扭曲且不带骨骼的手臂模型,这种只有网面,不带骨骼且手指什么的都扭曲在了一起的手臂模型显然我们是绑不了的

这里再说一种由第二种改变过来的,带有网面、权重分配及骨骼但不是摊开的手臂模型,这种手臂模型我们只要稍微处理一下也是可以进行绑手的

好的,这就是自定义模型的选择,接下来我们讲参照模型的选择,参照模型就没这么复杂了,因为参照模型必须带有骨骼,所以参照模型的选择就分为两种

第一种是带有网面及骨骼并且摊开的手臂模型,这种参照模型是最好、最友善的参照模型

第二种就是带有网面及骨骼但不是摊开的手臂模型,而是手指扭曲在一起的手臂模型,这种参照模型也可以但是需要我们经过一些处理才能进行绑手操作

好的,这就是我们自定义模型与参照模型的选择,那么本期绑手教程的思路就很明确了,也就是分为两种情况,第一种情况是自定义模型与参照模型同时拥有骨骼,第二种就是自定义模型没有骨骼

我们先来讲解最简单的自定义模型与参照模型的绑手教程,也就是双方都是带有骨骼且摊开手臂的模型,而如果自定义模型或参照模型没有摊开,以及自定义模型没有骨骼,我们待会讲解

CS起源与CSGO的绑手是一模一样的,没有任何区别,只是细节稍微有些不同,我们先来绑手CS起源的模型,由于CS起源的手臂没有与枪械分离,所以如果你想让整个CS起源游戏里都统一手臂

就必须将所有的武器模型都提取出来进行绑手操作,而CSGO则不需要,因为CSGO的手臂是与武器独立分开的,这里我们到后面再说

首先,我们打开建模软件,导入参照模型和自定义模型的网面及骨骼,如果这个自定义模型只有一只手臂(一般不会出现这种情况),那么我们全选这只手臂

点击主工具栏里的镜像,在克隆当前选择里,如果只有网面,我们选择复制,这样便可以复制并镜像一份一模一样的对称网面,如果是带有骨骼及权重的,那么我们选择实例

这样便可以复制并镜像一份一模一样的带有骨骼及权重的对称网面,在镜像之前一定要注意这个坐标轴必须要位于原点,如果没有位于原点,镜像可能会很麻烦,我们只需要点击命令面板中的层次

点击编辑工作轴,按下S键,然后移动到原点即可,在新版3dsmax里的镜像功能会自动为你镜像的物体进行法线翻转

而如果看到某个物体像这样表面黑乎乎的,里面却有着反光,则多半是法线反了,就需要点击修改器列表里的法线来进行翻转法线,由于我这里是两只手臂,所以并不需要镜像

好的,第一步我们需要将自定义模型对齐参照模型,目的是为了接近骨骼从而更好的进行蒙皮操作,我们框选一边的自定义模型,我们先来对齐右手

对于这种带有骨骼的网面,我们一般都会新建一个虚拟对象来代表这整只手臂,因为在移动这只手臂的过程中需要不断的调整,如果一不小心点选了其他的东西,可能会导致无法预料的后果

我们点击命令面板中的创建,点击辅助对象,再点击虚拟对象,在手腕的地方创建一个虚拟对象,然后我们点击主工具栏中的图解视图,再将选择过滤器设置为骨骼,然后框选整个右手的骨骼,此时

图解视图中便会显示框选的骨骼,我们将刚才新建的虚拟对象移动到这些骨骼的上方,然后链接到这些骨骼的父骨骼,父骨骼就是最开头的这个骨骼,如果这个父骨骼还与其他的一些骨骼有链接

那么我们只需将这个父骨骼旗下的右手第一子骨骼断开链接,将虚拟对象与这个子骨骼链接再将虚拟对象链接在父骨骼即可,这样这个子骨骼依旧是链接在父骨骼上的,因为虚拟对象是一个不存在的东西

它仅仅只是方便你对模型的掌控而已,那么我们将选择过滤器设置为辅助对象,此时我们便只能选择虚拟对象,其他的东西我们都不会误选到,好的,接下来我们就对齐参照模型

我们可以点击命令面板中的显示,勾选骨骼对象这样便可以隐藏所有的骨骼,方便我们对齐参照模型,好的,我们的手指部分没办法对准参照模型了,我们利用骨骼的旋转来微调这些手指的位置

首先打开图解视图,再恢复所有隐藏的骨骼,在选择过滤器设置骨骼,我们点击这个食指的骨骼,此时图解视图便显示这个骨骼的位置,那么我们便知道,原来这三个骨骼就是食指的三个骨骼

我们隐藏所有骨骼,然后点击食指第一指节的骨骼,这样我们便可以在骨骼隐藏的情况下控制网面,让手指做出我们想要的变化,我们要对齐参照模型的手指,好的,食指我们都对准了,现在要调整其他的手指

既然食指的骨骼是这三个,那么其他手指的骨骼一定也是旁边的这些三个,我们可以看到,这三个是大拇指,这三个是中指,这三个是无名指,这三个是小指,那么我们只需像调整食指一样调整这些手指即可

好的,调整完毕之后,自定义模型的手指还是有点长,不过没关系,虽说我们可以缩短手指的长度,但一旦缩短便失去了我们的初衷,我们要的就是原本的自定义模型,经过修改的还算什么自定义模型

好的,对齐了右手还有一只左手,我们同样将左手也对齐参照模型,与右手的方法是一模一样的,而如果这个自定义模型的手指本来就是扭曲的,我们同样使用调整骨骼从而调整网面的方法来对齐参照模型

好的,此时我们便将自定义模型对齐参照模型了,而没有骨骼的自定义模型,无法微调自定义模型的手指该如何绑手?既然我们利用了自定义模型的骨骼对自定义模型进行微调从而对齐参照模型

那为什么我们不利用参照模型的骨骼来对齐自定义模型呢?自定义模型对不齐参照模型,我们可以让参照模型对齐自定义模型,这样的效果是一模一样的,也就是说,如果你的自定义模型是不带骨骼的

但是手指却是摊开的,那么我们便将参照模型对齐自定义模型即可,方法与上述的是一模一样的,只不过操作的对象从自定义模型换成了参照模型而已,既然我们可以让参照模型对齐自定义模型

那么不带有骨骼且手指都扭曲在了一起的自定义模型我们也能绑手?理论上是没问题,但是实践起来难度非常大,我们一般都不会这么做,性价比实在太低,好的,那么此时我们自定义模型与参照模型便对齐了

好的,我们先隐藏右手的网面,选择参照模型的蒙皮封套,我们可以看到模型上出现了一些颜色,有红、橙、黄、蓝的颜色,与绑枪那一期视频中只出现红色稍微有些不同

这些除了红色以外,其他颜色的部分就是我们所说的权重不为1,即除了红色区域的顶点外,其他颜色区域的顶点由两个及以上的骨骼所拥有,这就是柔性蒙皮

刚性蒙皮我们说了,网面上的红色区域绝不会与另一个红色区域重叠,而柔性蒙皮可以理解为,非红色区域以外的区域都与其他的权重进行重叠,也就是说,非红色区域的顶点都由两个及以上的骨骼所控制

那么顶点由两个及以上的骨骼所控制会有什么后果呢?我们制作一个简单的动作即可理解,就拿参照模型右手手腕处的权重来举例,我们可以看到,权重不为1的情况下,手腕处的弯折是自然的

而如果我们将手腕处的顶点全部选中并在绝对效果中输入1,此时我们可以看到,手腕的弯折不太自然了,并且还有一些穿模情况,就好像是戴上了一个非常硬的护腕一样,手腕根本无法弯折

我们撤回刚才的操作并打开权重属性中的权重工具,此时我们可以看到我们选中的顶点被绑定在了helper及thump01的骨骼上,然后我们看到前面的数值,helper是0.604,而thump01是0.396

这两个数值就是我们所说的骨骼对顶点的控制权,这两个数值相加等于1,前面说了1即是百分百的控制,helper骨骼对选定的顶点拥有60.4%的控制权,而thump01骨骼对选定的顶点拥有39.6%的控制权

这就是柔性蒙皮,将顶点分为两个及以上的骨骼来控制,目的就是让网面能够形变,而此时我们将helper的权重分配设置为1,那么手腕便无法形变,而如果我们将thump01的权重分配设置为1

我们可以看到,手腕极其不自然,就好像骨头断了一样,拥有非常严重的穿模情况,为什么会这样?因为thump01骨骼对我们选中的顶点拥有100%的控制权,而这个骨骼去到哪里

那么它所百分百控制的顶点就会跟到哪里,而这就是刚性蒙皮的一种表现,不会发生形变,一个骨骼控制所有顶点,骨骼去到哪里,顶点就会跟到哪里,好的,我们明白了柔性蒙皮及权重不为1的概念

接下来我们要做的就是让自定义模型同样拥有参照模型的权重分配,我们当然可以像绑枪那样将所有的顶点都绑在一个占比权重最大的骨骼上,再从这个骨骼分出其他权重给别的骨骼

但是,手臂与枪械不同的是,手臂的骨骼太多了,数都数不过来,如果用绑枪的方法,那么效率就太低了,此时我们就需要引入一个新的方法,即权重转移

我们要让参照模型的权重直接转移到自定义模型上,这样便可以极大的提升我们的效率,好的,此时我们的模型是对齐的,那么这里就要有一个关键的步骤,如果没有这个步骤,那么我们将前功尽弃

由于SMD文件的特性,我们在建模软件中调整了骨骼的位置,骨骼的位置一旦发生变化,那么将会有一系列蝴蝶效应的发生,为了避免这些蝴蝶效应,我们需要重置整个SMD文件才能进行权重转移

重置SMD文件的方法也十分简单,我们在建模软件内调整了骨骼,但是对于建模软件外,也就是实际的SMD文件是没有任何调整的,所以我们要做的就是导出当前的自定义模型和参照模型

然后重新在建模软件中打开并进行权重转移操作,这一步或许十分多余并且打乱我们的节奏,但是对于SMD文件的特性我们也没有办法,现在场景中拥有两个完全不同的骨骼及网面

那么我们该如何导出自定义模型与参照模型呢?我们打开图解视图,看到所有连线的部分,我们框选这一边连线的部分,我们可以发现这是自定义模型的骨骼,我们框选另一边连线的部分,这是参照模型的骨骼

好的,那么自定义模型和参照模型的骨骼我们找到了,我们只需框选自定义模型的骨骼并在视图中按住ctrl键加选这个自定义模型网面,然后ctrl+i键即可反选所有物体,然后我们delete删除其他的部分

那么此时我们便只剩下自定义模型的网面和骨骼了,这个虚拟对象可以不用删除,因为它不会影响我们的模型,此时我们只需导出自定义模型的reference即可,然后我们ctrl+z键撤回刚才删除的东西

再次ctrl+i并delete删除自定义模型,此时便只剩下参照模型的网面及骨骼,然后我们再导出reference即可,那么此时建议新手再新开一个建模软件,然后我们重置当前场景,先导入我们刚刚导出的参照模型

然后再导入我们刚刚导出的自定义模型的网面,此时我们就不再需要自定义模型的骨骼了,因为自定义模型与参照模型是对齐的,好的,我们看到自定义模型这里多出来了一截网面

我们点击自定义模型,看到命令面板下的修改,我们先将这原本的蒙皮删除,进入可编辑多边形,点击顶点,我们用选择工具将这些多出来的网面进行选择,然后删除,那么此时自定义模型与参照模型便高度相似

此时此刻,我们便可以进行权重转移了,我们点击参照模型的网面,在命令面板下的修改中复制蒙皮,然后点击自定义模型,此时我们在这里右键粘贴,然后我们点击参照模型的网面,delete删除

我们点击自定义模型的蒙皮封套,发现自定义模型拥有了与参照模型一模一样的权重分配,那么此时我们便权重转移成功了,但是这并不代表我们的绑手结束了,对于简单的、粗糙的模型进行权重转移这里可以算是结束

但是如果你想让你的的自定义模型非常精细,非常漂亮,那么我们就有必要进入调整权重的步骤了

首先,权重转移并不是百分百符合我们的要求,我们必须检查所有的权重并修正不符合要求的权重,那么该如何检查呢?我们只需制作简单的动作即可,首先我们ctrl+a键全选当前场景下的所有物体

然后我们点击右下角的自动关键点,再点击旁边的设置关键点或者点击键盘上的K键,在第0帧的位置我们设置一个关键帧,这个关键帧方便我们还原最初始的动作,然后我们将时间滑块滑到一个随意的位置

我一般滑到第50帧,然后便可以点击一个我们想检查的骨骼,比如说我们检查这个食指第一指关节的骨骼,我们打开图解视图,点击这个骨骼,便知道这个骨骼位于图解视图中的什么位置,然后我们隐藏所有骨骼

并将选择过滤器设置为几何体

这样我们便可以清楚检查情况,我们按下E键来旋转一下这个骨骼,我们发现,网面出现了一些问题,我们旋转食指的骨骼但是却影响到了中指,这其实是权重分配错误导致的,食指的权重分配到了中指上

所以我们一旦移动食指,中指便跟着移动,这种权重分配的错误还会有很多,尤其是在手指这些骨骼比较靠拢的区域,我们要做的就是将这些权重分配的错误全部修正

并且,我们可以看到时间滑块下的第50帧出现了一个关键帧,我们滑动时间滑块到第0帧,便还原了最初的动作,这就是简单的动作,我们利用这个动作来修正我们的权重分配,此时我们进入蒙皮封套

找到这个食指的骨骼,我们可以看到这些颜色从食指蔓延到了中指上,这不是我们想要的,我们要做的就是将中指上的颜色都清除掉,我们勾选顶点并打开权重工具,然后框选这些扭曲的顶点,然后点击权重工具中的0

我们看到中指上的颜色消失了并且恢复了一些形状,但是依然有问题,我们点击下一个食指的骨骼,这里的权重分配又是错误的,同样我们框选这些顶点并将权重归零,我们可以看到,中指的形状恢复正常了

但是这里有一些顶点依然无法恢复,我们点击中指的骨骼,框选这个顶点并赋予权重分配为1,这些顶点是位于戒指上的,是无法形变的,所以我们赋予1的权重,那么我们将食指所有的权重都从中指上移除了

只有食指拥有食指的权重,那么我们滑动时间滑块可以看到,食指都能正确运动并且没有带动中指,这就是我们想要的结果,那么我们便退出蒙皮封套,恢复隐藏骨骼并将选择过滤器设置为全部,然后ctrl+a键全选

我们删除第50帧的关键帧,然后我们重复上述操作,直到将所有有问题的权重都检查出来并修正为止,对于这种套在皮肤表面的物体,我们勾选顶点下面的选择元素,这样我们就可以直接全选到这个物体且不带其他的网面

还有背面消隐顶点、收缩、扩大以及显示选项中的功能,这些都可以为你的蒙皮操作增加辅助的作用,好的,当我们所有的权重都修正完毕了之后,这才真正算是绑手结束了,我们退出蒙皮操作

一定要记住将时间滑块滑动至第0帧,让模型恢复初始动作,然后我们便可以导出reference进行正编译模型了

好的,那么CS起源的绑手我们讲解完了,CSGO的绑手也是一模一样的,我们知道,CSGO的手臂与武器是分离的,也就是我们找到手臂的MDL进行绑手即可,但是还有一点需要说明的那就是手套的问题

当你在CSGO中选择不同的人物时,第一人称的手肘是不一样的,而如果你有不同的手套,那么将会有两个变量,第一个变量是人物的手肘,第二个变量就是手套,而CSGO也同样对此做出区分

我们可以到v_models下的arms文件夹找到所有第一人称的手臂模型,前缀带有glove的就是手套模型,其他的都是手肘模型,我们将手肘模型修改一下可以看到,原来手套模型是一整只手臂,只不过被套在了手肘下面而已

所以,我们绑手就绑前缀带有glove的手套模型即可,而手肘模型我们可以选择删除网面或在VMT参数中设置透明即可

好的,本期的教程也接近尾声了,给新手们的一些温馨提示,首先,绑手的难度并不高,但是却非常考验耐心,你可能需要重复操作同一个动作好几个小时,所以这里建议一定要记得保存建模文件

在3dsmax是ctrl+s键保存MAX文件,每隔一段时间就要保存一次,不要一股脑想着赶紧做完就不打算保存了,如果你想绑一个非常精致的手臂模型的话,没有几个小时绝对是完不成的

还有,一开始可能会遗漏很多细节的地方,所以可能导致编译完模型后不满意,再重新编辑模型,然后又编译模型,这样反反复复,这一点是十分正常的,没有人一上来就能得到自己想要的结果

但是当你克服重重困难之后,看到自己十分满意的模型时,相信你的心底里会有一种说不出来的喜悦

好的,那么本期CS起源与CSGO模型蒙皮技术之柔性蒙皮——绑手及权重转移教程到此结束,希望各位学有所成,如果你喜欢本期视频,请不要忘记分享给其他有需要的人,那么我们下期视频再见

我要回帖

更多关于 四边形的蝴蝶定理是什么 的文章

 

随机推荐