当您把 MAYA、3DSMAX 等软件中正确设置的骨骼动画导入到 UDK 后,您可能会遇到一个奇怪的问题:本来正常的动画在 UDK 没有正常运作,出现诸如位移、漂浮不定、变形等问题。下图展示了该类问题的一种现象:

如上图所示,角色很明显莫名其妙地“漂”到了地面上方(我没有对 SkeletalMesh 设置任何偏移量),这显然不是希望的结果。下面来讲讲如何修复这个问题 .

其实这个“诡异的问题“解决起来可以说是相当的简单…简单到当我知道解决方法时几乎欲哭无泪…

问题出在一个选项上,一个位于 Animset 编辑器 — AnimSet 属性——名为 “Anim Rotation Only” 的选项。Anim Rotation Only 默认处于勾选 ( True ) 状态,UDN对于该选项的解释为:“如果该项为true,将仅使用中动画集的动画的旋转动画,忽略任何骨骼,除非这些骨骼在 Use Translation Bone Names ( 使用平移骨骼名称 ) 数组中”。

我们需要做的就是将该选项的勾勾去掉,使骨骼动画和 IK 恢复到正常状态,下图是 Anim Rotation Only 处于 False 时的截图:

没有再“诡异的漂浮”。此时骨骼动画/IK也将运作正常。

注意:修改Anim Rotation Only选项时您可能会在预览窗口看到这样一个提示(点小图看大图):

“…will be broken in game …displaying RAW animation data only.”这个警示是说需要进行动画压缩,否则在游戏中无法体现因Anim Rotation Only变更的动画效果。有关动画压缩请参阅UDN上的动画压缩主题

一些废话:我接触UDK大概有三个月的时间了,在学习使用过程中大大小小的问题可谓是层出不穷,问题可能已经困扰了你几天甚至几个星期,而在解决时往往仅是一行代码或一个选项就搞定…当真是折腾无止境,能如此充实的给你一种时时刻刻在挑战的感觉…或许也正是像 UDK 这样的软件之魅力所在吧?