スキン ウェイト プロファイル

スキン ウェイト プロファイルを使用して、ローエンド プラットフォームでの表示の正確性を向上させる方法について説明します。

スキン ウェイト プロファイル (SWP) システムでは、スケルタル メッシュ の一部として保存されている元のスキン ウェイト (SW) のサブセットを置き換えることができます。 このシステムのユースケースはさまざまですが、可能なユースケースの 1 つは、動的文字のパーツを無効にする状況または特定のプラットフォームにおける視覚的な忠実度を向上させることができます。

たとえば、下のビデオでは、ローエンド プラットフォームでのパフォーマンスを向上させるために、コートを着たキャラクターの動的パーツを無効にしています。 足を上げると、望ましくないクリッピングが発生します。スキン ウェイト プロファイルを使用すると、よりコストのかかるダイナミクスを使用する代わりに、クリッピングの量を軽減する適切な方法を実現できます。

以下に、動的クロスを使用する場合、スキン ウェイト プロファイルを使用せずにポーズをコピーする場合、およびスキン ウェイト プロファイルを使用して実行する場合の違いを示します。

Cloth.gif

CopyPose.gif

Profile.gif

クロス

ポーズをコピー

プロファイル

設定

スキン ウェイト プロファイルを使用する場合、ランタイム時に使用できるようにするには、エディタ でスキン ウェイト プロファイルをインポートして設定する必要があります。

プロファイルをインポートする

スケルタル メッシュ エディタ 内のプロファイルをインポートすることができ、さまざまなスキン ウェイトを含む FBX ファイル、プロファイルの名前、およびオプションで LOD インデックスを指定する必要があります。

  1. スケルタル メッシュ[Asset Details (アセットの詳細)] パネル内にある [Skin Weights] の下の [Add (+)] ボタンをクリックし、[Import Skin Weight Profile] を選択します。

    ImportSkinWeight_01.png

  2. インポートするスキン ウェイト データを含む FBX ファイルを選択し、[Open] をクリックします。

    ImportSkinWeight_02.png

  3. [Profile Name] (およびオプションで [LODIndex]) を入力し、[Import] をクリックします。

    ImportSkinWeight_03.png

    新しいスキン ウェイト プロファイルは、[Asset Details (アセットの詳細)] パネル内に配列要素として追加されます。

    ImportSkinWeight_05.png

特定の LOD データをインポートする

カスタム LOD を使用する スケルタル メッシュ LOD があり、エンジン内で生成されずに個別にインポートされた場合は、異なるスキン ウェイトを含む一致するファイルをインポートする必要があります。 これらのファイルは、次に示すように、既存の SWP の一部としてインポートすることもできます。

既存の SWP で、ウェイトをインポートする LOD を選択します。

SkinWeightLOD_01.png

スキン ウェイト データを含む FBX ファイルを選択すると、プロファイルの [Source Files] セクションに表示されます。

SkinWeightLOD_02.png

特定の LOD のプロファイルをインポートする

特定の LOD レベルでオリジナルのスキン ウェイトをオーバーライドしたい (またはその必要がある) 場合は、インポート処理中に、インポートしたファイルに含まれるデータの LOD インデックスを指定します。

ImportLODIndex.png

プロファイルを再インポートする

スキン ウェイト プロファイルのソース データを更新した場合は、ファイルを再インポートできます。保存されたファイル パスが存在しない場合は、新しいファイルの場所を指定するよう求められます。

これを行うには、再インポートする SWP の [Reimport] アイコンをクリックします。

ReimportSWP.png

複数の LOD がある場合は、SWP を再インポートする LOD を再インポート メニューから選択できます。

別のファイルを再インポートする

スケルタル メッシュ エディタ 内で [楕円 (...)] アイコンをクリックして新しいファイルを選択すると、別のファイルからスキン ウェイトを再インポートできます。

ReimportDifferentSWP.png

プロファイルを削除する

スケルタル メッシュ エディタ 内のプロファイル、またはプロファイル内の LOD を削除するには、[Remove Profile] ボタンをクリックします。

RemoveProfile.png

削除オプションから、プロファイル内の SWP または LOD 全体を削除できます。

プロファイルをプレビューする

特定の SWP のスキン ウェイトが アニメーション エディタ 内でどのように表示されるかは、ビューポートまたは [Play in Editor] セッション中にプレビューできます。

スキンメッシュ コンポーネント (または子クラス) に対して特定の SWP を設定するには、ビューポートでそのコンポーネントを選択し、プレビューするプロファイルを選択します。

  1. [Character] ボタンをクリックし、[Animation] の下の [Skin Weight Profile] セクションで目的の SWP を選択します。

    PreviewSkinWeight_01.png

    プレビューする SWP を選択すると、ビューポートにデバッグ情報が表示されます。

    PreviewSkinWeight_02.png

    [Details (詳細)] パネルと スキン ウェイト プロファイル 設定を使用して、メイン レベル エディタのビューポート内でスキン ウェイトをプレビューすることもできます。

    PreviewSkinWeight_04.png

ランタイム ブループリント エクスポーズ API

ランタイム時に、提供されている (公開されたブループリント) API を使用してスキンメッシュ コンポーネント (または任意の子クラス) の SWP を設定できます。

名前

ブループリント ノード

説明

Set Skin Weight Profile

SetSkinWeightProfile.png

これにより、指定された名前 (存在する場合) に従って特定の SWP が設定されます。

Clear Skin Weight Profile

ClearSkinWeightProfile.png

これにより、以前に設定されたすべての SWP がクリアされます。

Unload Skin Weight Profile

UnloadSkinWeightProfile.png

これにより、強制的にアンロードされ、指定された名前のスキン ウェイト バッファが削除されます。

Get Current Skin Weight Profile

GetCurrentSkinWeight.png

現在設定されている SWP の名前を返します。それ以外の場合は 「None」 です。

Is Using Skin Weight Profile

IsUsingSkinWeightProfile.png

プロファイルが設定されているかどうかを返します。

スケーラビリティ

システムには、デフォルト設定の SWP を実行時にロードする機能があります。これは、静的または動的パスの 2 つのパスを使用して実行できます。

静的パス

静的 パスを使用して、スケルタル メッシュ データのシリアル化中に、デフォルト プロファイルが設定されているかどうかがチェックされ、設定されている場合はロードされます。 オリジナルのスキン ウェイト バッファのデータをデフォルト プロファイルのデータで上書きします。 つまり、静的パスを使用してデフォルトの SWP がロードされると、それ以降は変更を適用できず、スケルタル メッシュがリロードされるまでオリジナルのデータは失われます。

ユーザーが動的パスに変更しようとしたり、SWP を手動で設定しようとすると、システムがエラーを発生します。

動的パス

動的 パスは、静的パスと同様に、シリアル化中にデフォルト プロファイルがロードされます。ただし、オリジナルのスキン ウェイト バッファをオーバーライドする代わりに、新しいスキン ウェイト バッファが作成されます。 サブシステムがバッファーを要求するたびに、オリジナルではなくオーバーライドされたものを返します。このシステムの利点は、ランタイム時に切り替えることができることです。これは、静的パスとは異なる点です。

デフォルト プロファイル

スケルタル メッシュ エディタ[Details (詳細)] パネル内で既定値の SWP プロファイルを割り当てたり、プラットフォーム単位または LODIndex 単位でオリジナルのスキン ウェイトをオーバーライドしたりできます。

DefaultProfiles_02.png

上の画像では、1 つの SWP が [Desktop] のオーバーライドとして割り当てられ、別の SWP が [Mobile] に設定されています。

SWP をデフォルト プロファイルとして割り当てる場合、追加のプロファイルをデフォルトとして割り当てることはできません。

DefaultProfiles_01.png

デフォルトのプロファイルが割り当てられている場合、[Default Profile from LODIndex] で設定されている [LODIndex] の下にある [LOD] によって、スケルタル メッシュのスキン ウェイトがプロファイルのスキン ウェイトでオーバーライドされます。

DefaultProfiles_03.png

ランタイム時のコンソール コマンド

次のコンソール コマンドは、SWP システムのプレビュー中のランタイム時に使用できます。

名前

説明

a.SkinWeightProfile.LoadByDefaultMode

ランタイム時の最適化を有効 / 無効にして、オリジナルのスキン ウェイトを置き換えるデフォルトのプロファイルでオーバーライドします。特定のプラットフォームまたはデバイスのメモリを最適化するために使用できます。

説明

0

静的は無効です。

1

静的は有効です。

2

動的は無効です。

3

動的は有効です。

a.SkinWeightProfile.DefaultLODOverride

スケルタル メッシュのデフォルトのスキン ウェイトをオーバーライドするデフォルトのスキン ウェイト プロファイルの LOD インデックスをオーバーライドします。

説明

-1

無効です。

0

LOD インデックスは「0」です。

N

LOD インデックスは N (N はロードする LOD) です。

a.SkinWeightProfile.AllowedFromLOD

スキン ウェイト プロファイルを適用できる LOD インデックスをオーバーライドします。

説明

-1

無効です。

0

LOD インデックスは「0」です。

N

LOD インデックスは N (N はロードする LOD) です。

このページは Unreal Engine の前のバージョン用です。現在リリースされている Unreal Engine 5.3 に対して更新は行われていません。
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル