GAMESH

游戏美术动画unity资源搬运工!

剧情党,完美控!
桐崎千棘
当前位置:首页 > 工作 > 正文内容

Unity Root Montion详解

admin2年前 (2022-03-23)工作38740

  在游戏开发中我们常见的动画文件一般分为两种,一种是in place动画,也就是不带位移的动画,另一种是root montion动画,也就是自带根位移的动画,这种所谓自带跟位移的动画能够带来的好处是显而易见的,它有效的避免了角色动画和实际位移不同步的现象。那么从这一教程,就让我们详细的了解一下root montion。在讲解原理之前,我们先实际应用一下,打开mixamo这里的所有角色动画都是如此磨损动画,麦克赛某的用法请参考我的这一期视频,我们在这里搜索logo motion,找到这个基本的角色移动包把它下载下来,这个动画包里没有后退的动画,所以我们再单独下载一个把下载完的FBX动画文件导入unity之后,把他们全部切换成humaoid的动画,

Unity Root Montion详解 第1张


  如果使用动画时出现了走样的问题,请参考的这期教程对avatar文件进行调试,因为这里所有的动画文件都来自于同一个模型,所以我们只需要调试一个avatar的,然后剩下的所有动画文件都可以使用这个avatar来把自己转换成humanoid动画,那么我们就使用这个调试好的idle的,全部转换好了之后,呢我们把场景里的角色模型投进来看一下,可以看出动画是完全没有走样的,只是这些动画似乎并没有自带位移,这是因为这个角色上的animator组件并没有打开root motion的功能,在场景中找到我们的角色,把他的animator组件里的apply root motion的选项给勾选上。Unity Root Montion详解 第2张

关于animator组件的详细介绍,请参考我的这一期视频(https://www.bilibili.com/video/BV1x44y1e7Ro)。再来看一下现在角色就可以移动起来了,找到我们接下来要使用的动画,把它们的循环功能给勾上,对动画片段的修改可以在fbx文件下完成,也可以找到FBX文件下的动画片段文件,按Ctrl+ d把它复制出来,然后在这个动画片段文件里进行修改,我们之前的操作都是在动画片段文件里做的,这一次我们就直接在fbx文件里操作的如果,我们把这个fbx动画文件拖进状态机的话,

Unity Root Montion详解 第3张

你会发现状态机里的动画状态的名字和FBX文件的名字并不一致,这是因为状态机里使用的还是FBX文件下动画片段的名字,我们可以选中FBX文件,然后在检视视图下找到这里的动画片段更改它的名字,然后我们再把它拖进来,这样名字就正确了。不过我并不打算为这些如此陌生动画新建动画状态,为了方便和之前的动画做对比,我们找到这个状态机,选中之后按CTRL d复制一分,重命名root motion controller,然后把这三个动画状态里的动画片段改成自带动画片段,

  下面我们新建一个角色控制脚本,当我们检测到玩家按下前进,那么就把前进设置为true,否则就把前进设置为false。检测到玩家一下后退就把后退设置为true,否则就把后退设置为false,在这个脚本里我们完全不需要处理角色的位移,

  保存脚本回到游戏场景复制一个角色,换掉animator里的状态机,确保animator这里的apply root motion是勾选的,再更换一下控制脚本,在player input中修改一下需要调用的移动方法,开始游戏看一下,角色现在可以前后移动了,仔细看一下角色的脚下现在已经完全没有滑步现象了,不过新的问题来了,角色似乎并没有走直线,我们只是按了前进和后退,他居然转向了,而且似乎角色的高度也在下降,脚都陷到了地面以下。其实在动画预览窗口这里就能够看出来,角色动画并不是沿直线运动,而且问题还不止于此,之前通过混合数不然的去我们成功的让角色移动速度,所以遥感的推动幅度而改变。现在想要使用混合术来管理root,motion动画的话就不得不面对一个问题,那就是角色的移动是由root mation动画本身,而不是脚本来控制。


[MyText]这里插入要隐藏的内容[/MyText]

扫描二维码推送至手机访问。

本サイト上に掲載の文章、画像、写真などを無断で複製することは法律で禁じられています。全ての著作権はGAMESHに帰属します。

本文链接:https://pylblog.com/post/228.html

分享给朋友:

相关文章

GarageBand的使用

GarageBand的使用

PixelBeats开发日志,定期更新。详见回复信息。GarageBand的使用小知识:如果需要得到曲子的具体音符(简谱)是什么,可以通过GarageBand读取MIDI音乐文件来获取,截图如下:界面...

ANDROID开发环境搭建

ANDROID开发环境搭建

-下载 Eclipse -安装和配置Eclipse Android应用程序是在JAVA下开发的。Android自身不是一个语言,但是是一个运行应用程序的环境。这样,理论上你可以使用任何发布或者综合...

3dmax bone骨骼无法k帧

3dmax bone骨骼无法k帧

今天在做文件时遇到一个小问题,就是有一根bone始终无法记录关键帧,查找了半天愣是没法解决。正当要放弃的时候我在菜单栏动画栏发现了一个地方不对劲,凭借多年动画制作经验发现有个地方多了一个勾,原来是我把...

3dmax bones骨骼动画曲线顺滑轨迹乱转解决

3dmax bones骨骼动画曲线顺滑轨迹乱转解决

今天在做项目时需要做一个小鸟眩晕的动画,首先先让小鸟转一个圆,然后我key了三帧奇怪的现象发生了,原本这三帧的效果轨迹线应该是一个规则的圆圈但是现在出现的是一个不规则的8字形如图:为什么会这样我也没具...

spine错误提示Uncaught Error: Animation not found: xxx或者spine is not defined

spine错误提示Uncaught Error: Animation not found: xxx或者spine is not defined

调用spine的webgl运行库时报错Uncaught Error: Animation not found: idle,意思就是提示我找不到对应的动画,但是实际上这个动画是存在的,经过反复测试最终发...

在此计算机上找不到 AutoCAD2016你需要安装AutoCAD2016才可以安装此语言包。

在此计算机上找不到 AutoCAD2016你需要安装AutoCAD2016才可以安装此语言包。

今天安装CAD2016的时候始终无法正常安装,安装到一半就提示在此计算机上找不到AutoCAD2016,你需要安装AutoCAD2016才可以安装此语言包。    在此...

发表评论

访客

看不清,换一张

QQ登录
◎欢迎参与讨论,请在这里发表您的看法和观点。