ROOT MOTION原理.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ROOT MOTION原理

根运动原理 1. 基本概念 ? ??在Unity3D动画中,模型的位置、角度经常会发生变化,我们需要决定是否将模型在动画中发生的这些变换化用到实际模型(GameObject)中。 ? ? 在Untiy3D中将动画中的变换分成两类: ? ? 1) Body Transform (pose:姿势) ? ? 2) Root Transform (trajectory:轨迹) ? ? 我们可以设置动画中的关于模型的一些变换(平移、旋转等)是属于Body Transform(pose)还是Root Transform(trajectory)的一部分。 ? ? 举例如下(ac001为角色跑步): ? ? 在上图中: ? ? 1) 如果【Apply Root Motion】未选中:则角色在原地跑步,且Transform中的值没有任何变化 ? ? 2)?如果【Apply Root Motion】已选中:则角色在场景中跑步,且Transform中的值跟随变化? ? ? ? 身体变换 (Body Transform) 是角色的质心(the mass center of the character)。它用于 Mecanim 重定位引擎,提供最稳定的位移模型。身体方向 (Body Orientation) 是下半身方向与上半身方向的平均,与 Avatar T 字姿势 (T-Pose) 相关。 ? ? ?身体变换 (Body Transform) 和方向 (Orientation) 存储在动画片段 (Animation Clip) 中(使用 Avatar 中设置的肌肉定义)。它们是存储在动画片段 (Animation Clip) 中的唯一世界空间曲线。其他一切事项:肌肉曲线和 IK 目标(四肢 (Hands and Feet))相对身体变换存储。 ? ??根变换 (Root Transform) 是身体变换 (Body Transform) 在 Y 平面上的投影,在运行时计算。在每一帧,根变换 (Root Transform) 中的变化都会计算出来。然后变换的变化会被应用到游戏对象 (Game Object) 上,使之移动。? ? ?角色下面的圆表示根变换(Root Transform) ? ? ??Bake Into Pose:也就是将变换设置为Body Transform(pose)的一部分。 ? ? ? 如果把变换设置成Body Transform(pose)的一部分,就相当这些变换是属于动画本身的一部分,即无论是否设置Apply Root Motion,在场景中,我们都会看到模型位置或角度的变化。因为Body Transform不影响模型(GameObject)实际的位置和角度,所以这里只是纯粹的动画效果,模型(GameObject)的位置和角度参数值不变 ? ? ?如果设置成Root Transform,Root Transform将影响模型(GameObject)的实际位置和角度(前提是要设置“Apply Root Motion”,如果不设置Apply Root Motion的话,也就是说变换将不应用,场景中的模型(GameObject)位置或角度是不会有变化的Transform值自然也不变,就像一个行走动画,可能一直在原地行走)。 ? ? ? Apply Root Motion作用如下: ? ? ? 1) 决定是否应用Root Transform: ? ? ? ? ? ?如果勾选【Apply Root Motion】,则应用Root Transform在播放动画的同时,模型(GameObject)的位置和角度会同时跟着变化。如果不勾选【Apply Root Motion】,则不应用Root Transform,所有的Root Transform都将不起任何作用。即相当于所有没有Bake into Pose 的变换都不起作用了。 ? ? ? 2) 在动画结束后,将Body Transform中的变化应用到模型: ? ? ? ? ? 这里是结束的时候才应用,也就是说动画的时候,模型的(GameObject)position、rorate等参数是不变的,当动画结束之后,开始新的动画之前才会改变,注意这里跟前面提到的Root Transform的区别 ? ? 下面以一个人物行走的动画为例,分析以下几种情况(这里以“Root transform position(XZ)为例) ? ? 1) 勾选【Bake into Pose】,不勾选【Apply Root Motion】 ? ? ? ? 勾选”Bake into Pose后,变换属于Body Transform,所以即使这里未勾选”Apply Root Motion“,但是动画依然会在场景中体

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档