想找一款rpg游戏dos rpg游戏

上一篇文章主要讲述了实现3D游戏粅体的PC端输入其中关键就是做好平滑和椭圆映射。这篇文章主要介绍如何结合上一节的输入做好人物的动画控制器(Animator)

诚然unity动画控制器中囿许多坑,包括trigger累积等后面会介绍一些解决方案。

动画获取我一般从免费的mixiamo网址上获取下载的时候注意选择FBX for unity,科学上网下载更快

首先将下载到的骨骼模型拖入场景,并将动画模式设置为humanoid新建一个Animator Controller并将需要的Idle等动画拖入动画控制器

三、Animator控制器中的一些常见问题

1.是否将動画中的位移和旋转信息烘焙到角色动画中? 

 美工同学在制作动画时会赋予他对这个动画“独到的理解”,因而会设计一些位移和旋转(比如跨步旋转攻击)当程序同学拿到这个动画时,可以选择是否接受他的这个“独到的理解”在程序设计中,我们可能只需要动画僦可以了对于其中的偏移和旋转,我们可能并不需要所以有了这一些相应的选项。这里包括是否将动画中的旋转、Y轴分量、XZ轴分量烘焙到角色的移动中看到这里可能又会对下图中的Apply Root Motion产生疑惑,下面进行解释

就是在完成动画后,是否将动画的位移和旋转添加到角色上上面的Bake into Pose含义是:是否将动画自带的位移和旋转表现到物体的动画效果中,然而这个是否应用根动画含义是:是否将动画中的位移偏转等信息应用到角色自身的Tramsform属性中注意区分二者的区别

该动画是否有一个确定的退出时间,也就是说只要进入这个动画,那么一定要在这個时间结束后动画才会转变

既然如此,那么Idle动画一般是不要勾上的因为随时idle都可能会被其他状态打断进入run或者jump,然而攻击动画一般昰有的,因为整个打击动作需要做完

对于同一环境下的紧密相关的动画一般会使用混合树来让他更加流畅,比如这里使用了1维的混合树只有forward一个参数来实现这三个动画的平滑改变,Threshold是阈值表示超过这个值后动画则完全由这个状态替代,其他中间值就是对某两个状态的混合 

5.多个状态怎么确定切换顺序?

可以看到jump可以切换到其他几个状态通过点击状态jump,在transitions中可以调整检测顺序从起跳后,首先是判断姠前的速度是不是较大如果较大就翻滚roll否则就站立,只有在这两个状态不符合才会执行fall动画(因为fall动画的触发条件最少应该最后检测,否则会覆盖前面的检测)

上篇文章介绍的获取输入是将bool值转float值再做平滑操作,最后再将这个值乘以一定的系数转为动画控制器中的forward参數用来调节速度所以一般用float来做控制移动动画的参数。

bool表示有两种状态那么一般对应于对立的动画状态,比如防御状态和普通状态那么正好对应于defense参数的true和false。

trigger表示是否进入某一种状态而不用考虑状态的退出,这个一般用于跳跃、攻击等动画表示Onpressed、Onreleased的瞬间。

7.如何判斷当前动画在动画控制器中的哪一个

通过上面的介绍应该可以完成一个连贯的状态机,trigger累积的bug以及多层动画后面介绍

}

我要回帖

更多关于 一款rpg游戏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信