GAMESH

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

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

Unity Root Montion详解

admin4年前 (2022-03-23)工作10131725

  在游戏开发中我们常见的动画文件一般分为两种,一种是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动画本身,而不是脚本来控制。


此处为隐藏内容,请点击下面广告后查看隐藏内容!

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

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

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

分享给朋友:

相关文章

3dmax动作库添加分类教程

3dmax动作库添加分类教程

插件附带一个数据库管理工具,可以增删查改access数据库!打开软件点击open 打开插件目录下的anim.mdb数据库打开后如图这里的结构表feilei代表分类1   fenle...

最近在做腾讯的一款NBA游戏

最近在做腾讯的一款NBA游戏

这个项目接触快三周了但是目前一个都没通过,目前我尚不清楚这款游戏全称是啥,他们猜测是nba2k,但我觉得可能不是,不过这些都是猜测!游戏模型面数不高我估量着是一款移动平台的游戏,但也不排除端游!不过没...

3dmax导向器加柔体制作船划过水面的涟漪

3dmax导向器加柔体制作船划过水面的涟漪

今天使用3dmax导向器加柔体制作船划过水面的涟漪,只需要三分钟便可以完成这个简单的效果建立一个平面,用于制作水面创建一条曲线,用作船的移动路径创建一个球体替代船只,然后在菜单栏选择动画-》约束-》路...

3dmax各种问题解决方案

3dmax各种问题解决方案

做动画已经几年了,一年中大部分的时间都在跟3dmax打交道!每天总会遇到许多奇葩的问题,然后这里我就根据自己经验总结一些决绝解决办法,希望对大家有帮助!   1.0  &...

2D骨骼动画工具SPINE

2D骨骼动画工具SPINE

Spine 是一款针对游戏开发的 2D 骨骼动画编辑工具。 Spine 旨在提供更高效和简洁 的工作流程,以创建游戏所需的动画。在 Spine 中通过将图片绑定到骨骼上,然后再控制骨骼实现动画。 2D...

unity打包android出现Required API level 26

unity打包android出现Required API level 26

今天编译安卓的时候遇到了Required API level 26.,提示我所需的sdk版本需要为26,试着点击更新,但是提示了Unable to install additional SDK pla...

评论列表

发表评论

访客

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