一、Apply RootMotion的作用

Apply RootMotion:控制角色在场景中动画的运动。角色动画驱动角色运动,类似于在游戏中直接使用动画,提高了动画的使用效率。

  Root Motion 可以控制角色在动画中的运动,位移是变化的,如果没有包含Root Motion或Root Motion为0 那么如何控制角色在场景中运动呢?

例如下面walk前进的动画片段(In Place  原地踏步,原地运动)没有发生位移变化的。

二、对以上的片段如果运用在游戏中,如何控制角色在场景中运动呢?

  答案:是使用曲线+脚本 公共作用来驱动角色在场景中运动

2.1、确保此动画片段经过Avatar处理及肌肉定义后选择Clips下的walk动画片段

2.2、选择循环项、另外确保每个都是“绿色”状态这样动画有很好的循环匹配性。如果是红色最好再调式下

2.3、曲线属性,单击+ 号来来新增一条曲线,命名WalkSpeed

2.4、创建一个角色控制器命名RootController并双击打开

2.5、拖动walk到动画控制器中,可以自动产生一个动画状态。

多个动画状态可以形成一个动画状态机

Mecanim的动画状态机提供了一种可以预览某个独立角色的所有相关动画剪辑集合的方式,并且允许你能够在游戏中通过不同的事件触发不同的动作。

状态机包括状态、状态转移和事件,并且在大的状态机中可以设置一个小的子状态机。

  Animation States 动画状态
  Animation Transitions 动画转移
  Animation Parameters 动画参数

 

黄色表示是一个默认的动画状态

2.6、在动画控制器中左下角Parameters 选择+ 号创建一个Float并命名为WalkSpeed。对这个名字必须和之前的动画曲线名字一样。因为这样动画参数可以直接获取动画片段中动画曲线的数值。若不是用相同名称,就无法使用动画曲线里面的数值。

2.7、把角色资源拖动到场景中,并把动画控制器赋值给角色资源的Control

2.8、运行起来看看效果:in place

2.9、添加脚本

using UnityEngine;
using System.Collections;
/// <summary>
/// 动画位移
/// </summary>
public class RootControl : MonoBehaviour {void OnAnimatorMove(){Animator animator = GetComponent<Animator>();if (animator){Vector3 newPosition = transform.position;newPosition.z += animator.GetFloat("WalkSpeed")*Time.deltaTime;transform.position = newPosition;}}
}

在附加到动画之前,Apply Root Motion使用的是动画默认的Root Motion当附件脚本后就改成了脚本

三、最终效果

转载于:https://www.cnblogs.com/PEPE/p/3612822.html

Root Motion的脚本处理相关推荐

  1. Unity游戏开发之游戏动画(Root Motion以及动画文件)

    Root Motion 即自带根位移的动画,有效避免了角色动画和实际位移不同步的现象. 实现Root Motion功能 在Animator组件中勾选Apply Root Motion 找到角色使用的动 ...

  2. Unity3D 中 Generic 动画导入设置和 Root Motion 之间的关系

    Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 中制作的动画文件中的位移,这个就是通过 applyRootMotion 来达成的,我们只需要在使用 Animator 控制动画 ...

  3. [Unity] 播放 Generic Animation 导致无法移动的解决办法:在 Animator 中勾选 Apply Root Motion

    我在使用 Animation Type 为 Humanoid 的 Animation 的时候是一切正常的 但是,自从因为 Humanoid 会导致手腕错误旋转问题,把 Animation Type 改 ...

  4. autojs入门视频教程,Auto.js Pro安卓全分辨率免ROOT引流脚本开发零基础到进阶教程,飞云脚本学院2019年全力打造高清品质,不容错过的年度大作

    课程大纲(更新中-) 基础课程 [已完成]01安装Visual Studio Code(时长9分33秒)在线观看 [已完成]02安装Auto.js Pro(时长5分48秒)在线观看 [已完成]03解读 ...

  5. Unity3D规则之Unity Root Motion / Bake into Pose 的问题

    参考: http://ru.unity3d-docs.com/Documentation/Manual/Animator.html http://ru.unity3d-docs.com/Documen ...

  6. 1450种时尚排版包装LOGO标题字幕条转场背景图形元素动画V3预设AE脚本PR预设 Motion Bro脚本预设包

    1450种时尚排版包装LOGO标题字幕条转场背景图形元素动画V3预设AE脚本PR预设 Motion Bro脚本预设包 原文地址:https://www.aeziyuan.com/t-20662.htm ...

  7. 虚幻引擎图文笔记:蒙太奇(Montage)+ 根运动(Root Motion),给我滚(Roll)!

    UE4.26 效果 按下自定义控制滚动的按键,角色滚动,并且可以穿过低矮的空间 文章目录 效果 前言 步骤 0. 准备Root Motion的角色滚动动画素材 1. 把这个动画序列转换为蒙太奇 2. ...

  8. Aria2Android 免root,Linux Bash脚本:在本地机上部署用户自用aria2服务

    说明 aria2是一个功能丰富的下载器,但它是命令行程序,不符合多数人的胃口. 现有的aria2图形界面客户端(如webui-aria2.AriaNg.YAAW等)都是RPC客户端,为了使用这种客户端 ...

  9. autojs批量删除好友源码,安卓免root引流脚本

    说明 本文提供的代码仅供参考.不建议用于生产环境. 可能有些地方在最新版本的Auto.js上面需要做修改,才能运行. Auto.js简介 Auto.js是利用安卓系统的"辅助功能" ...

最新文章

  1. Hadoop SequenceFile数据结构介绍及读写
  2. 高性能计时器Timer的设计(时间轮和时间堆两种方式)
  3. 创建外部快照_快照事件:现在如何仅通过拍照即可创建日历事件
  4. 用ClusterSSH管理多台Linux服务器(2)
  5. wemall app商城源码Android中ViewHolder详细解释
  6. 工大瑞普虚拟思科实验室full(U7.3)环境配置方法
  7. Java-Controller引起的Ambiguous mapping问题解决
  8. 31道Java核心面试题(不会的都看过来啦)
  9. adb命令重置_Android ADB 常用命令
  10. android广告轮播无限
  11. typora配置好smms后还是typora上传图片失败:image load failed。
  12. 奢侈太后慈禧的起居生活
  13. 鸡尾酒问题,最小二乘法和范数的思考
  14. 构成社群的五要素,你了解吗?
  15. Android安全编码规范
  16. 100例(p019—p021)
  17. 怎么用化学软件画聚合物
  18. 自定义组件开发六 自定义组件
  19. Ubuntu系统安装搜狗输入法
  20. webrtc丢包率与jitter计算

热门文章

  1. 锚杆拉拔试验弹性模量计算_公路工程试验检测项目有哪些?
  2. 2018年php框架,2018年的7个热门网站开发框架
  3. php 页面上显示xls文档,phpExcel输出xls文档显示乱码的解决方法
  4. 360浏览器清除缓存_放飞浏览器的反应速度
  5. qt 旋转后的三维坐标_OpenGL + Qt: 3 - 旋转动画和键盘操纵
  6. Maven下载jar包失败的原因- 解决方法汇总
  7. SparkStreaming安全消费Kafka数据
  8. [NLP]自然语言的处理步骤
  9. [linux] redhat 7 iptables 配置
  10. Maven编译打包成可运行的Jar包