主页 > 学习生活 > 技术交流 >

游戏角色绑定进阶之锁链的绑定--剖析3D:战神

时间:2014-01-17 09:52来源:未知 作者:admin 点击:
大家好,在今天,游戏基本上已经成为很多人生活的一部分。手机游戏、网页游戏、网络游戏、单机游戏、主机游戏等等,总有一类你接触过或者熟识的。也有很多人对游戏的制作充满兴趣,希望了解制作过程,制作细节,甚至想要投身这个行业。其实在网络上,我们就可以找到很多关于游戏制作的共享资料。但是有一点,真正从事过这个行业的人才会有体会,实际项目中遇到的问题或案例,在网络上通用的教程里几乎找不到答案,需要制作人员自己去想办法,才能找到解决方案。
今天我要和大家分享的,就是3D游戏制作中,角色绑定的一个小案例:锁链的绑定。
    说起游戏角色身上的锁链我们可能最容易想到的就是《战神》。主角的标志性武器——链刃,相信给玩家的印象绝对不会淡漠。上几张图片给大家小过一下眼瘾:

 
图01
 

图02
关于链刃的绑定,相信大家还是充满兴趣的,但在介绍之前,我们还是先说一下基础的锁链绑定。
记得第一次做铁链的绑定和动画的时候,我一头雾水,完全不知如何下手。如果是在伟德国际亚洲官网制作中,锁链的动态效果一般是特效的同事解算的,但在游戏制作中,为了在引擎里实现,很多时候原本解算的东西不得不由动画师手key完成。于是我做了一点准备工作:一个人跑到公园,带上手机,打开摄像,找个有链子围着的花坛,踹一脚链子,在赶紧退后几步,用手机拍下链子摇晃的动态效果。拍了几段之后,实在受不了别人异样的眼光,匆匆收摊回家去了。回家之后一遍一遍的看刚才拍的视频,寻找链子的运动规律。
一点小插曲,言归正传,我们继续说链子的绑定。回到我们的工具——3DsMax中。一般的思路上,我们做链状的东西,第一个想到的是线性IK。
 

 
图03
 
 
 

图04
   
关于线性IK的基础知识,在本文中我们不做细说,欠缺的朋友可以找一些相关的资料看看,或者实际操作试一下就可以。我想着重强调的一点是,关于线性IK制作时生成的Dummy。线性IK制作生成的Dummy在初始状态是有层级关系的,它的层级关系和骨骼链的层级关系方向是相同的。我做了一个简单的图示,帮助大家理解这个问题:
 
 

图05
生成的Dummy的这个特点在我们后面的动画制作中有的时候反而引起不便,因为我们知道,Dummy的动画是影响骨骼链的,很多时候我们希望各个Dummy之间相互不受影响,而这种层级关系无疑是个障碍。不过没关系,这种初始状态是可以更改的,我们只要根据需要打断连接就可以。
关于线性IK我们还有另一点需要注意一下,我们先看一下图06。
 

 
图06
线性IK有一个特点,当影响骨骼链的曲线长度因为Dummy的移动而大于骨骼链的长度时,Dummy的实际位置就不能准确控制骨骼的位置,通俗的讲,就是Dummy拉远了,骨骼就够不到了。但是这种情况只发生在线性IK的末端,首端是不存在这个问题的。
关于基础的锁链绑定,我想要提的就是上面这两点,后面要讲的链刃绑定中,这两点我们也要注意。
接下来,就让我们正式开始我们的“链刃之旅”吧!我在摸索链刃的绑定方法过程中走了很多弯路,也尝试了很多方法,但在接下来的讲解中,我还是直接按顺序讲解制作的方法,而不去赘述探索过程了。那么如果有的地方不明白为什么要这样做,读者可以按照自己的办法试一下就会明白,或者你也有可能发现新的方法!
第一步,模型的准备。
模型的工作不是动画师的职责范围,但有一些规范性的东西我要提一下,如图07-08:
 
 

 
图07
 
 

图08
当角色主体绑定完成之后,将刀的模型直接移动到手掌位置,并且转好角度,保证手指头弯曲,手正好是握在刀柄合适的位置。链条从刀尾部延伸出来。注意,如图07,链条的长度要比你想要的攻击距离还要略长一些,并保证是一条笔直的线,这样方便后续的骨骼搭建。这里留一个小问题,读者可以想一下,为什么要把链子放在角色后面而不是我们习惯性的前面。
第二步,搭建骨骼链。
如图09,搭建骨骼的时候可以打开网格显示,并打开吸附,吸附网格点创建骨骼,这样生成的骨骼链就会均匀笔直,搭建后之后再挪动到链条的模型上就行了。记得骨骼链的长度最好比链条的模型略长一点。
 

图09
第三步,创建曲线。
创建曲线和创建骨骼链一样,也可以吸附网格创建,或者吸附骨骼的端点也可以,最后再挪到链条模型上。但是有一点要注意,创建曲线时,要选择三次曲线,并且你每点下的一个点,将来都会生成线性IK的一个小Dummy,所以创建曲线时,控制点的间距要选好。我在多次试验之后,选择了每两节骨骼点一个控制点。还有一点,就是曲线的长度也要比骨骼链略长一点。创建好的效果如图10。
 

图10
第四步,创建线性IK。
有了前面的准备工作,这一步并没有什么特别的,使用命令创建线性IK就可以。效果如图11。
 
 

图11
第五步,添加控制Dummy。
这一步大家可能觉得有点多余,但做完了,到用来做动画的时候,你就知道为什么要这么做。因为我们必须预留几个Dummy给链刃将来做飞出去的动画用,所以有几个Dummy是不能缠在胳膊上的,我这边预留了五个。那么我要做的事,就是给这五个预留的Dummy添加控制Dummy。步骤如下:
先建五个大小依次不等的控制Dummy,并分别与链条上将要预留的五个Dummy使用对齐工具将旋转和位移对齐。效果如图12。
 

 
图12
然后将链条上的Dummy用链接工具链给对应的控制Dummy。最后将五个控制Dummy的位置全部对齐到第一个控制Dummy上。效果如图13。
 
 

图13
    这个时候,读者可以回过头去看看刚才链条末端长出来的曲线和Dummy现在还长么?

第六步,锁链缠绕。
这一步是整个制作过程中最繁琐的一步,但是为了最终效果,麻烦一点也是值得的。在缠绕之前,我要提醒一点,不要从第六个Dummy就开始往胳膊上缠,稍微留一点自然的过渡形态,这样会好看很多。效果如图14。
 
 

 
图14
最终效果如图15-17。

 图15
 
 

 
图16
 

图17
 

   
接下来做个动作测试一下吧!
 

图18

到这里,链刃的绑定就完成了。因为是直接将我尝试的最终方案分享给大家的,那么对于大家来说,可能就会缺少中间自己摸索的过程,或者少走了很多弯路,同时也就会很难体会到我在制作步骤中的一些细节的用意。所以我还是很希望读者可以自己尝试不一样的方法方案,或者会找到更好更便捷的方法。
(责任编辑:admin)
------分隔线----------------------------

相关文章