这些步骤的作用是为了确保使用 PuppetMaster 插件时,角色的物理和动画系统能够正确地协同工作。以下是每个步骤的详细解释:
-
将人形角色模型拖动到场景并附加
BipedRagdollCreator.cs
组件:- 这个步骤是为了创建一个布娃娃(Ragdoll)物理模型。点击“Create a Ragdoll”按钮会自动生成布娃娃的骨骼和碰撞器,点击“Done”按钮完成设置。
-
角色添加
PuppetMaster.cs
组件,然后单击“Set Up PuppetMaster”按钮:- 这个步骤是为了将 PuppetMaster 系统应用到角色上。PuppetMaster 会生成角色的副本,并设置必要的物理和动画组件。删除原来的角色是为了避免重复的物理和动画计算。
-
把角色
Animator
组件的Culling Mode
改为Always Animate
:- 这个步骤确保角色的动画在任何情况下都能被更新,即使角色不在摄像机视野内。这对于保持动画和物理同步非常重要。
-
在
Behaviours
物体下创建空物体并附加BehaviourPuppet.cs
组件:- 这个步骤是为了添加行为控制组件,
BehaviourPuppet
组件可以控制角色在不同情况下的行为。复制官方例子的值可以确保设置正确。
- 这个步骤是为了添加行为控制组件,
-
修改层级,把 PuppetMaster 名称的物体设置成木偶层和动画层的碰撞器区分开:
- 这个步骤是为了确保物理碰撞器和动画碰撞器在不同的层级上,以避免不必要的物理交互。
-
在 PuppetMaster 名称物体上添加
LayerSetup.cs
组件,并把动画物体拖动赋值Character Controller Layer
:- 这个步骤可以替代第五步,通过
LayerSetup
组件自动设置层级。
- 这个步骤可以替代第五步,通过
-
模型上的所有
Skinned Mesh Renderer
组件的Update When Offscreen
打钩:- 这个步骤确保角色的网格渲染器在角色不在摄像机视野内时仍然更新,以保持动画和物理同步。
-
非人形模型使用 PuppetMaster 布娃娃:
- 这个步骤是为了将非人形模型转换为可配置关节(Configurable Joints),以便 PuppetMaster 可以正确处理它们。
-
RagdollEditor.cs
布偶娃娃编辑器:- 这个步骤是为了调整布娃娃碰撞器的位置和旋转,以确保物理模拟的准确性。调整好后可以移除该组件。