スキンメッシュの使用

スキニングは、接続されたボーンの階層セットで構成されるスケルトンに3Dメッシュをバインドし、メッシュをアニメーション化するために使用するプロセスです。Kanzi は、スキニングを可能にするためにシェーダーを使用します。シェーダー を参照してください。

スキニングを処理するシェーダーは、ボーンの数と単一の頂点に影響を与えることができるボーンの量を設定します。

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 キーを押します。

    例えば、スキンメッシュが5つのボーンを使用している場合、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アセットのインポート

マテリアルタイプとマテリアル

マテリアルタイプの使用

スマートマテリアルを使用する

シェーダー

シェーダーを編集する

メッシュの使用

メッシュベストプラクティス