- 用户指南
- 资源商店 (Asset Store)
- 资源服务器 (Asset Server)(仅限团队许可证)
- 缓存服务器(仅限团队许可证)
- 幕后场景
- 创建游戏
- 运行时实例化预设 (Prefabs)
- 变换 (Transforms)
- 物理
- 添加随机的游戏元素
- 粒子系统(Particle Systems)
- Mecanim 动画系统
- 旧动画系统
- 导航网格 (Navmesh) 和寻路 (Pathfinding)(仅限专业版 (Pro))
- Sound (音频侦听器)
- 游戏界面元素
- 多玩家联网游戏
- iOS 开发入门
- Android 开发入门
- Blackberry 10 开发入门
- Metro:入门指南
- 本地客户端开发入门
- FAQ
- Advanced
- Vector Cookbook
- 资源包(仅限专业版)
- Graphics Features
- 资源数据库 (AssetDatabase)
- 构建播放器管道
- 分析器(仅限专业版)
- 光照贴图快速入门
- 遮挡剔除(仅限专业版)
- 相机使用技巧
- 运行时加载资源
- 通过脚本修改源资源
- 用程序生成网格几何体
- 富文本
- 在 Unity 工程 (Project) 中使用 Mono DLL
- 事件函数的执行顺序
- 移动优化实用指南
- Unity XCode 工程结构
- 优化图形性能
- 减少文件大小
- 理解自动内存管理
- 平台依赖编译
- 泛型函数
- 调试
- 插件(专业版/移动版特有功能)
- 文本场景文件格式(仅限专业版)
- 流媒体资源
- 启动时运行编辑器脚本代码
- 网络模拟
- VisualStudio C 集成
- 分析
- 检查更新
- 安装多版本 Unity
- 故障排除
- Unity 中的阴影
- Unity 中的 IME
- 对集成显卡进行优化
- 网络播放器 (Web Player) 部署
- 使用网络播放器中的信任链系统
根运动 (Root Motion) – 工作原理
身体变换
身体变换 (Body Transform) 是角色的质心。它用于 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) 上,使之移动。
角色下面的圆代表根变换动画片段检视器
动画片段编辑器 (Animation Clip Editor) 设置(根变换旋转 (Root Transform Rotation)、根变换位置 (Root Transform Position) (Y) 和根变换位置 (XZ))让您从身体变换 (Body Transform) 控制根变换 (Root Transform) 投影。根据这些设置,身体变换 (Body Transform) 的某些部分可能会是转移的根变换 (Root Transform)。例如,您可以决定是否要让运动 Y 位置成为根运动 (Root Motion)(轨迹)或者姿势(身体转换)的一部分,这就是所谓的合并到姿势 (Baked into Pose)。
根变换旋转
合并到姿势 (Bake into Pose):方向与身体变换(或者姿势 (Pose))保持一致。根方向 (Root Orientation) 保持不变,增量方向 (Orientation) 相同。这意味着,该 AnimationClip 完全不会旋转游戏对象 (Game Object)。
只有拥有类似启停根方向 (Root Orientation) 的 AnimationClip 才会使用该选项。您会在 UI 看到绿灯 (Green Light),告知您某个 AnimationClip 是好的候选片段。合适的候选片段应当是直走或跑步动画。
基于 (Based Upon):该选项允许您设置片段的方向。片段使用身体方向 (Body Orientation) 定向,以循着身体的向前向量。该默认设置适用于大多数动作捕捉 (Motion Capture)(动态捕捉 (Mocap))数据,比如走路、跑步、跳跃,但不能用于扫射之类的动作,这些动作与身体的向前向量垂直。在这种情况下,可以使用偏移(Offset) 设置手动调整方向。最后,您会在导入的片段中找到自动添加授权位移的原始方向 (Original)。它常常与键帧 (Keyframed) 数据配合使用,以遵循美工设置的方向。
偏移 (Offset):为基于 (Based Upon) 选择该项时用来输入偏移量。
根变换位置 (Y)
该项使用根变换旋转 (Root Transform Rotation) 中描述的相同概念。
合并到姿势 (Bake Into Pose):运动的 Y 分量与身体变换 (Body Transform)(姿势 (Pose))保持一致。根变换 (Root Transform) 的 Y 分量保持不变,增量根位置 Y (Delta Root Position Y) 为 0。这意味着,该片段不会更改游戏对象高度 (Game Object Height)。您再次看到绿灯 (Green Light),告知您某个片段是将 Y 动作合并到姿势的良好候选片段。
大多数 AnimationClip 会启用该设置。只有更改游戏对象 (GameObject) 高度的片段会关闭该设置,比如跳上跳下。
注意:Animator.gravityWeight
由合并到姿势 (Bake Into Pose) 位置 Y 驱动。启用该设置时,gravityWeight = 1
,禁用该设置时则 = 0
。在状态之间转换时,gravityWeight 用于片段融合。
基于 (Based Upon):您可以按照与根变换旋转 (Root Transform Rotation) 类似的方式从原始方向 (Original) 或质心 (Mass Center)(身体 (Body))中进行选择。还有一个双脚 (Feet) 选项,非常便于 AnimationClip 更改高度(合并到姿势 (Bake Into Pose) 已禁用)。使用双脚 (Feet) 选项时,根变换位置 Y (Root Transform Position Y) 会为所有帧匹配最低的脚 Y。因此,融合点常常停留在双脚周围,以防止在融合或转换时出现浮动问题。
偏移 (Offset):可以按照与根变换旋转 (Root Transform Rotation) 类似的方式,使用偏移 (Offset) 设置手动调整 AnimationClip 高度。
根变换位置 (XZ)
再一次,该项使用根变换旋转 (Root Transform Rotation) 和根运动位置 (Root Motion Position) (Y) 中描述的相同概念。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论