使用蒙皮网格

蒙皮是将 3D 网格绑定到骨架的过程,该骨架由连接骨骼的分层集合组成,您可用于对网格进行动画处理。Kanzi 使用着色器来实现蒙皮。请参阅 着色器 (Shaders)。

处理蒙皮的着色器设置骨骼计数,并且会影响单个顶点的骨骼数量。

如果在您的 Kanzi Studio 项目中,蒙皮网格未按预期工作:

  • 使用在 Log 窗口中打印的消息作为更改第三方工具中网格的指南,并重新导入网格。

  • 如果您要蒙皮的网格过于复杂,尝试将其简化。

  • 在您的内容工具中检查骨骼在将顶点映射到骨骼之前是否没有反转矩阵。反转矩阵通常是由于工具在某些轴上翻转或镜像对象而导致的。如果网格中的骨骼具有反转矩阵,请将其移除并重新将顶点映射到骨骼。

添加蒙皮网格

在您可以将蒙皮网格添加到 Kanzi Studio 项目之前,需在第三方工具中创建一个带有蒙皮网格的3D模型,并将其导出为gltf、glb、fbx或dae格式。

要将蒙皮网格添加到您的 Kanzi Studio 项目中,在 Assets 中单击 Import Assets 并导入包含蒙皮网格的 3D 资产。

../../_images/assets-import-assets1.png

当 Kanzi Studio 导入蒙皮网格时,它:

  • 设置蒙皮网格的材质,以使用支持带骨骼网格蒙皮的材质类型。

    默认情况下,VertexPhongSkinned、FragmentPhongSkinned 和 PhysicallyBasedSkinned 材质类型支持蒙皮。

    如果您的项目不包含支持蒙皮的材质类型,Kanzi Studio 会自动将 VertexPhongSkinned 材质类型添加到项目中。

    您可以在材质类型中设置骨架数量。请参阅 设置蒙皮网格的骨架数量。

    ../../_images/skinmesh-in-library.png ../../_images/cluster-material-to-vertexphongskinnedmaterial.png ../../_images/vertexphongskinnedmaterial-properties.png
  • 在 Prefabs 中创建一个以导入文件命名的新 Scene。

    要在 Preview 中显示 Scene 预设的内容,在 Prefabs 中双击该预设。

    Kanzi Studio 在新的 Preview 选项卡中打开预设,并在 Preview 中显示该预设的内容。

    ../../_images/skinningscene-composition.png

设置蒙皮网格的骨架数量

您可以在用于蒙皮网格的材质的材质类型中设置蒙皮网格中的骨架数量。

要设置蒙皮网格的骨架数量:

  1. 在 Library > Materials and Textures > Material Types 中,选择您用于蒙皮网格的材质类型。

    例如,选择 VertexPhongSkinned 材质类型。

    ../../_images/vertexphongskinned-in-library.png
  2. 在 Properties 的 Preprocessor Definitions 中,将 KANZI_SHADER_SKINNING_BONE_COUNT 的 Value 设置为蒙皮网格使用的骨骼数量,然后按 Enter 键。

    例如,如果您的蒙皮网格使用五个骨架,将 Value 设置为 5,然后按下 Enter 键。

    小技巧

    您可以为蒙皮网格使用任意 VertexPhong、FragmentPhong 或 PhysicallyBased 材质类型,方法是将该材质应用到网格,并将 KANZI_SHADER_SKINNING_BONE_COUNT 预处理器定义的 Value 设置为蒙皮网格中的骨骼数量。请参阅 修改默认材质类型。

    ../../_images/phongskinned-preprocessor-defines.png

    如果您使用智能材质,Kanzi 会根据为材质设置的属性自动设置 Preprocessor Definitions。

另请参阅

3D 资产 (3D Assets)

在第三方工具中准备 3D 资产

导入 3D 资产

材质类型和材质

使用材料类型

使用智能材质

着色器 (Shaders)

编辑着色器

使用网格

网格最佳实践