为什么我测出来的欧拉角跳动很大?

Unity提供的动画系统的主要功能:

这一部分的Manual主要是介绍了以下内容:



Unity提供的强大的动画系统,也被称为mecanim

Mec源自法语,意思是Guy,也就是说,Mecanim最开始就是Unity为了人形模型设计的动画系统,Mecanim可以处理动画重定向,控制muscle,这个时候就是用Animator组件来控制人形动画,用Animation组件控制其他非人形动画。

后来Mecanim就逐渐发展到现在的也包括非人形动画了,而原有的Animation组件被弃用了。

  • 简单易用的工作流,可以轻松设置动画相关的属性
  • 支持用不同的逻辑操纵不同身体的部位
  • 动画状态机和工作流的支持
  • 动画相关特点,比如人物动画重定向、Avatar Mask等


如下图所示,前面都已经提过了,需要提及的重点就是后面的Update Mode、Culiing Mode和方框里面的东西:



在Animator窗口中,选中一个或多个Clip,按F,能自动调整到合适的窗口,而如果按A,则可以自动调整到预览所有Clip的合适的窗口。

Any State状态可以代表任意的状态,当我们希望某个条件发生时物体不论在何种状态都转移至另一种状态时可以用到,比如角色死亡,相当于用这个Any State全称其实是If it is at any state,如下图所示,state A是死亡动画,白色的箭头上有角色生命值为0的条件



文章最开始介绍了,就不再提了

  • Layers的顺序重要吗?



这篇文章太长了,单开一篇文章讲一讲Playables API吧,我写的文章

Quaternion又称四元数,由x,y,z和w这四个分量组成,是由爱尔兰数学家威廉·卢云·哈密顿在1843年发现的数学概念。四元数的乘法不符合交换律。从明确地角度而言,四元数是复数的不可交换延伸。如把四元数的集合考虑成多维实数空间的话,四元数就代表着一个四维空间,相对于复数为二维空间。

关于四元数的性质、与旋转的关系、球型线性插值的介绍,请阅读,在此不多做介绍。下面主要介绍的是Unity中的四元数-Quaternion。

在Unity中,用Quaternion来存储和表示对象的旋转角度。Quaternion的变换比较复杂,对于GameObject一般的旋转及移动,可以用Transform中的相关方法实现。

如何改变一个游戏对象旋的转状态,我们可以通过改变其Transform进行欧拉角的变换次序,例如假设p(x,y,z)是游戏对象上的一个点,绕x轴旋转a角,绕y轴旋转b角,绕z轴旋转c角,这样就可以得到旋转之后的状态p'(x',y',z')。Unity的实现过程是很简单的,一句代码就可以搞定。但是具体的实现过程确实很复杂的,详情请阅读。

77 //a对应的屏幕的垂直方向,b对应的屏幕的水平方向。

  现在对应着手指的滑动距离,然后调整参数radius,就可以实现比较顺滑的旋转效果,真机实现的效果就不展示了。

我要回帖

更多关于 有时感觉心脏跳动很大 的文章

 

随机推荐