【Unity3D】导入FBX模型使用Legacy动画的Scale缩放问题

时间:2024-04-04 10:34:31

3dsmax做的含FBX动画模型导入进Unity3D之后总需要对其缩放Scale调整一番,毕竟模型是在3dsmax中做出来的,不可能和Unity3D中的场景完全匹配。

我们自然而言地会对模型的Scale属性进行调节,以放大或者缩小从而适应当前场景的大小。于是,问题就来了,在播放动画的时候,部分模型,会让我们惊讶地发现,明明我的Scale调好了,但在动画播放的时候,又回到原来大小了。如下图所示,就是这种坑爹的现象:

【Unity3D】导入FBX模型使用Legacy动画的Scale缩放问题

在运行的过程中,你会发现,自己调好的Scale莫名其妙地变回(1,1,1)。

【Unity3D】导入FBX模型使用Legacy动画的Scale缩放问题

于是,你就开始怀疑是不是这个模型本身的动画有控制大小的东西,但经历一番调查之后,你发现,有时候,部分模型就是没有控制大小,但它就是这么坑爹。如下图所示,这个在3dsmax中生成的简单动画模型,各个关键帧完全只是对其Rotation进行修改,关于Scale并没有作任何动画。

【Unity3D】导入FBX模型使用Legacy动画的Scale缩放问题

那么关于问题,其实就是,在Unity3D你并不应该用Scale来调节这些FBX模型的大小,至少如果你发现你的FBX模型出现这种坑爹情况,你应该在这个模型的预设中,Model属性Meshes下的Scale Factor调整大小,默认的基数是0.01,如果你要放大10倍,设置成0.1就好了。

【Unity3D】导入FBX模型使用Legacy动画的Scale缩放问题

这样在播放动画的时候,就与你看得时候是一致的,不会出现上述的坑爹问题了。带上transform.Translate()等Unity3D本身就有的移动行为,配合animation.Play()也没事!

【Unity3D】导入FBX模型使用Legacy动画的Scale缩放问题