解决unity内置动画系统播放完回到原点问题

今天在逛论坛的时候,无意中解决了一个困扰我巨久巨久的问题(差不多几个月咯,烦死人。。。)那就是在用unity自带的动画系统建立动画之后,你会发现,当你勾选Apply Root Motion的时候,动画播放之后会发生莫名奇妙的改变。
因为这个选项是允许动画改变物体的位移等属性,所以可能使用的时候会发现人物会发生各种位移,而假如不勾选呢?那就会每次播放完动画的时候,会回到你建立动画的地方完成动画,然后再瞬移回来。所以不管哪个选项似乎都不太好弄得样子,那有什么办法解决呢?

今天意外发现了一个方法,那就是假如你想控制某个人物的位移等功能,就可以直接用该物体,而假如想建造该人物的动画,就可以在人物下面创建一个子物体,对子物体建立动画(同时也是在子物体上面挂Animator组件),然后不勾选Apply Root Motion选项(勾选后还是会产生一些莫名其妙的改变),然后就可以惊喜的发现,物体动画正常了!

惊喜过后思考了一下原理,当我们用以前的方法建立动画的时候,动画建立时记录了原来人物在世界坐标的transform,所以当你不勾选的时候,它就会回到建立动画的地方来进行动画,然后回来,因为你的transform也算作了动画的一部分;而使用新的方法之后呢,因为是在子物体上面进行的动画设计,所以transform的坐标是相对于父物体的,这样就不会产生之前的情况。

具体例子:比如说当你想要设计一个人物进行普通攻击,这时候就可以用人物手中的子物体比如武器来进行设计动画。完美解决!

你可能感兴趣的:(unity)