动画重定向
对于日常开发过程中,美术人员往往有着这样一种烦恼,就是美术为游戏中的角色A制作了一套漂亮的骨骼动画之后,突然意识到还要为角色B制作一套一模一样的骨骼动画。最常见的就是游戏中会分为男女角色,男女角色都要有相同的动作或技能,要播放一样的骨骼动画,但是男女模型的骨架有微小的差异导致动画无法复用,就要费劲地为两个差不多骨架的模型做两幅一模一样的动画。这时,就会有人想,能不能有一种功能,让我省去这种重复而又枯燥的工作,只制作一套动画就能适用于多种骨架的模型上?
动画重定向即是为美术同学分忧的一项功能,它允许骨骼结构相似的多个模型间共享骨骼动画,来节省美术人员的开发工作。
对于动画重定向功能使用的介绍,首先我们拥有两个模型:模型A和模型B,然后我们会演示如何将模型A的一个骨骼动画(*.seq)应用在模型B上。
先比较模型A和模型B
首先我们先使用编辑器新建一个示例工程:
之后,将两个fbx模型文件拖入资产控件中,将fbx模型导入到工程中:
把导入好的模型文件(*.mdl)拖入到当前场景中,以在编辑器中展示模型:
当前场景中的两个模型的默认姿态如下,左侧的人物模型为模型A,右侧的小熊模型为模型B:
现在可以为两个模型播放动画文件dance_animation.seq来观察动画效果:
正常的预期效果如下:
可以看到当前的骨骼动画在它本身的模型A上是正常的,而强行放在模型B上会导致模型B向模型A的姿态进行一定程度的扭曲。为了解决这一问题,我们需要进行重定向设置。
我们双击模型A的任一个mdl模型文件,打开模型编辑器:
在其左侧的骨架预览控件上,鼠标右键打开 重定向编辑功能:
对于每根骨头,都有对应于这根骨头的重定向策略。在没有进行默认设置时,其对应的重定向策略为Animation策略:
Animation策略对应的动画效果是骨架完全按照动画的数据进行拉伸、移动。在这个示例中,我们将所有骨骼一键设置为按比例缩放的模式。首先,鼠标右键整个骨架的根骨骼Bip01:
选择“和所有子骨骼一起设置为按比例缩放”,之后应该会看到所有的骨骼的重定向策略发生了改变:
这时,我们点击左上角的保存按钮,以保存我们当前的修改,然后回到主编辑器点击运行动画,发现模型B的动画效果已经正常了:
对于编辑器提供的三种策略,默认的策略是Animation策略,这种策略会让模型骨架的变换完全听从动画文件。
Skeleton模式会保留骨骼原本的平移信息,只从动画文件中获取各个骨骼的旋转和缩放数据。就是说动画文件中的平移数据会失效。
Animation Scale模式会自动地对动画中的平移数据进行缩放以适应新的模型骨骼,缩放值与动画的原始模型有关。
在不同需求下,往往需要美术人员对这三种模式进行取舍,以达到播放动画的最佳效果。三种策略。
附件为示例工程,可以下载自行测试:
附件