第七十一讲Mecanim使用:RootMotion的脚本处理汇编.docx

第七十一讲Mecanim使用:RootMotion的脚本处理汇编.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七十一讲 Mecanim使用:Root Motion的脚本处理 在前面的章节中Root Motion在场景中的运动,我们可以看到控制角色奔跑的动画片段中角色Root Motion角色中在空间中是不断发生变化的从而产生其来控制角色的场景中的运动而对于某些动画片段其中没有包含Root Motion或者是说其为0那么此时我们应如何来控制角色在场景中的运动呢 首页看下动画片段中Root Motion为0动画片段例子,这种动画类型的片段也称为inplis 动画片段也就相当于原地踏步或原地进行的动画片段。 以我们输入的角色资源为例子,可以看到在此角色资源中包含有两个动画片段 点击查看walk类型的片段单击播放按钮进行播放,对于角色动画来说或对于此动画片段来说在角色的动作中是一个原地进行的动画循环片段,此种动画的片段就可被称为inplis的动画片段。在动画片段中Root Motion值为0,因为动画片段中的角色在整个场景中是没有发生位移变化的那么对于此种类型的动画片段假如要将其应用在游戏中将如何控制角色在场景中的运动呢 此时unity的Mecanim也提供了其它的方法可以对于此种类型的动画片段进行处理,也就是使用脚本的方法在具体执行时,在属性的编辑器中动画中选中inplis动画片段 我们要确保我们的动画片段经过Avatar处理以及肌肉定义。 然后我们选中inplis动画片段,在属性编辑器中我们可以选中Loop Pose选项以使我们动画具有很好的动画循环,其属性编辑器中角色在各个方面都具有很好的循环匹配性。 这些属性旁边的灯都是绿色的这样可以确保我们的角色具有好的循环特性,对于这种动画片段我们都可以选中Bake into Pose项。 在动画片段项底部有一曲线属性,此时按照图示可以单击三角形按钮来扩展 此属性。 由于此处是使用曲线或脚本共同作用来驱动角色在场景运动,首先要为此动画片段创建一个曲线。 如上图点击加号按钮,并将此曲线重新命名,例如命名为Walkspeed,其含义是行走速度曲线。 再次单击此曲线打开可在其创建关键帧等等,通过我们定义曲线的形状,可以控制角色在场景中行走的速度,此时可设置曲线的整体运行速度1,然后单击Apply按钮来实施我们的属性设置。 接着我们创建一个属性控制器资源,其重新命名为rootContol1器资源。 双击此动画控制器资源,会看到如图所示一个视窗,然后拖动一个动画片段到此视窗中来创建一个动画状态。 此时我们可以直接拖动我们的inplis动画片段到动画控制器中,可以看到此动画片段会自动产生一个动画状态,通过多个动画状态可以形成一个动画状态机。 看到此动画状态的颜色是黄色,表明此动画状态是默认的动画状态,我们可以看到在此动画状态中使用的动画片段是inplis walk动画片段。 动画控制器视窗中左下角单击加号按钮添加一个新的参数,我们可以设置此参数的为Foloat,然后对此参数可进行命名。 注意 在对此参数进行命名时参数的名称与之前创建的动画曲线的名称相同,因为这样我们的动画参数就可以直接获取动画片段中动画曲线的值,若不使用相同的名称 则我们的动画参数无法使用我们动画参数的数值。 接下来需要我们把动画控制器资源拖动到我们要控制的角色中。 角色中已经配好了Avatar资源,然后我们拖动角色控制器到相应的控制器属性中。 最后播放场景,可以看到在我们场景中的角色与设置动画控制器中的动画状态,此处的角色依然是原地运动,那么接下来使其播放动画的同时,使场景中的的动画发生位移,此时我们就需要使用一个脚本来控制。 创建一个新的脚本重命名此脚本为rootControl双击此脚本对其编辑。 在脚本中可以使用以下的内容,以下是脚本代码部分。 OnAnimatorMove() 此函数主要是作用是检测到动画播放时可以同时来进行动画处理,我们可以查看此回调函数。 最后拖动rootControl脚本到我们的角色物体中,在属性编辑器中我们会看到在root Motion项中显示为脚本进行处理。 播放场景可以看到角色在场景中的位置会发生变化,也就是其Z轴会在脚本及动画曲线的位置下使其发生位移的变化。 另外我们可以通过改变角色中,动画的曲线来产生不同root Motion的运动效果,这样可以创建更丰富的游戏效果。对于使用脚本及动画曲线来控制动画的root Motion来说是属于Mecanim比较高级的概念,但是为了保持对前面root Motion介绍的连续性,我们将其放在了前面。

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档