Unity3D 4 - 导入的动画 fbx 模型干扰物理
Posted
技术标签:
【中文标题】Unity3D 4 - 导入的动画 fbx 模型干扰物理【英文标题】:Unity3D 4 - imported animated fbx model interferes with physics 【发布时间】:2013-01-19 12:07:29 【问题描述】:我有一个 .fbx 格式的导入模型,带有预烘焙的动画。我想将物理应用于模型,但是播放动画似乎会干扰物理
当动画播放时,模型不会“坠落”/碰撞,但如果我在检查器中取消选中“动画”,我的模型会对应用于游戏对象的物理刚体/网格碰撞器做出正确反应,但在我切换的那一刻回到动画上,模型会回到原来的起始位置(但会正确播放动画)
我做错了什么?
编辑:这是我所说的“动画”复选框:
【问题讨论】:
【参考方案1】:我有点不确定您指的是这个“动画”复选框,但我有一些预感可以探索。
Unity 的物理和碰撞有很多种风格,但并不是所有的都能很好地融合在一起。刚体适用于任何与物理相关的东西,但它附带了大量的字符串。例如,刚体的唯一碰撞与其他刚体 (see bottom)。听起来你想将你的物理东西作为玩家或敌人或其他东西移动。 RigidBodys 在这方面好坏参半。
刚体组件需要使用的设置是“.isKinematic”。启用此选项会关闭刚体的物理模拟,而角色控制器或其他任何东西都将作为默认设置。查看此脚本以切换物理,以便您的角色可以推动东西:http://answers.unity3d.com/questions/17566/how-can-i-make-my-player-a-charactercontroller-pus.html
要记住的另一件事是,您的模型不应在动画中在世界范围内变换。任何转换都需要由您的游戏行为来处理。
【讨论】:
感谢您的回复。不确定您的意思是我的模型不应该在动画中在世界范围内变换?似乎动画本身包含了某种物理力或变换,我的场景中有另一个模型,动画“当场”移动,我可以让它平移/与物理碰撞,没问题,它仅在使用此特定模型时,我才遇到奇怪的行为。顺便说一句,我已经用我正在谈论的动画复选框的屏幕截图更新了我的问题。 似乎你已经明白了,但基本上我的意思是运动动作应该“就地”发生,这听起来就像你正在做的那样。请记住将您的解决方案标记为此类!【参考方案2】:我能够通过遵循this advice 并制作一个空的游戏对象作为容器来解决它,将刚体/网格对撞机/脚本添加到容器游戏对象中,然后将我的模型添加为那个游戏对象。这样脚本中应用的变换就会应用到容器上,动画不再影响模型的移动!
【讨论】:
如果您使用的是新的动画师,那么您可以使用头像遮罩并确保地平面为红色。这将保持动画形式移动模型 FWIW,我在 Unity 5 中遇到了类似的问题,其中动画影响了我导入的特定模型的物理,但没有其他模型。事实证明,我不得不取消选中有问题的 Animator 上的“Apply root motion”。以上是关于Unity3D 4 - 导入的动画 fbx 模型干扰物理的主要内容,如果未能解决你的问题,请参考以下文章
Unity3D导入FBX模型使用Legacy动画人型动画的Scale缩放问题
Unity 3D 导入三维模型||Unity 3D 动画系统简介(Mecanim)