Language:
Page Info
Engine Version:

FBX スケルタルメッシュ パイプライン

FBX インポート パイプラインでは スケルタルメッシュ がサポートされています。 そのため、アニメートされたメッシュを 3D アプリケーションからアンリアルに取り込んでゲームに使用するワークフローが簡単になっています。メッシュをインポートする他に、必要に応じて、アニメーションとモーフターゲットも、 すべて同一ファイル内に FBX 形式を使用して転送することができます。また、 3D アプリケーションでメッシュに適用されたマテリアルで使用されるテクスチャ (ディフューズと法線マップのみ) がインポートされるとともに、 マテリアルが自動的に作成され、インポートされたメッシュに適用されます。

以下は、FBX を使用してスケルタル メッシュをインポートするためにサポートされる機能です。

現時点では、各スケルタルメッシュに対し、単一アニメーションのみを単一ファイルへインポートすることが可能です。ただし、 複数のモーフターゲットをひとつのファイルで、 スケルタル メッシュ に対し、転送可能です。

このページでは、スケルタル メッシュをインポートする FBX コンテンツ パイプラインの使用法についてテクニカルな概説をします。 開発環境で FBX コンテンツ パイプラインを使用する場合に役立つ情報やコツについては FBX ベストプラクティス のページを参照してください。

UE4 の FBX インポート パイプラインでは、FBX 2016 を使用します。エクスポート中に他のバージョンを使用すると、互換性がなくなる場合があります。

本ドキュメントで、 [Import Asset (アセットをインポート)] ボタンを使用するという記述が出てきた場合は、OS のファイル ブラウザから FBX ファイルをクリックしてドラッグすることもできます。

このページでは、 Autodesk Maya と Autodesk 3ds Max の両方の情報を載せています。以下でどちらかを選択すると、それに関連した情報のみが表示されるようになります。

3D Art Tool を選択してください。

Autodesk Maya

Autodesk 3ds Max

一般設定

単一のメッシュと複数パーツのメッシュ

スケルタル メッシュ は、切れ目のない単一のメッシュで構成するか、 または、同一のスケルタルにすべてスキニングされた複数の独立したメッシュで構成することが可能です。

multipart.png

複数のメッシュを使用すると、 LOD をそれぞれ独立して処理することができるとともに、 モジュラー キャラクター システムで使用するために各部分を独立してエクスポートできます。このようなやり方で スケルタル メッシュ を作成してもパフォーマンスに負荷はかかりません。 個々のパーツは、アンリアル エディタにインポートされるとすべて統合されます。

リグ構築

リグ構築とは、メッシュをボーン / ジョイント (関節) のスケルタル階層にバインディングする (結びつける) ことを言います。これによって、基礎となるスケルトンのボーン / ジョイントが、メッシュの頂点に影響を与え、動くとメッシュを変形させることができるようになります。

Maya の場合、UE4 Install Path\Engine\Extras\Maya_AnimationRiggingTools\MayaTools に アニメーション&リグツール があります。これらのツールには、 Maya 向けのキャラクターの詳細なリグ構築およびアニメーション ソリューションが含まれています。

スケルトン

Maya を使用する場合、 Joint Tool (ジョイント ツール) を利用すると、 スケルタル メッシュ のためのスケルトンを作成することができます。Maya での本ツールの使用とリグの作成に関しては、 数限りなくチュートリアルが存在します。Maya のヘルプもテーマに応じて 様々な情報があります。

3dsMax でどのようにスケルタル階層を作成するかは、ユーザー次第です。標準的な Bones Tools も充分機能するので使用できますし、 あるいは、オブジェクトの階層を独自に作成して、完全にカスタマイズしたジオメトリと制御を実現することもできます。 とにかく、いろいろな方法があるため、ゲームキャラクターのためにアニメーション リグを作成する方法について 解説しているチュートリアルは、多数出回っています。3dsMax のヘルプを参照しても、このツールがどのように機能するかについて詳細に知ることができます。

max_rig.png

バインディング

Maya では、 Smooth Bind コマンドを使用してメッシュをスケルトンにバインディングします。プロセスは、 スケルタル メッシュ が単一の完結したメッシュで構成されているか、複数のメッシュ パーツから構成されているかにかかわらず同一です。

  1. バインディングするメッシュを選択します。

  2. Shift キーを押しながらスケルトンのルートジョイントを選択します。

  3. Skin > Bind Skin メニューから [Smooth Bind(スムーズバインド)] を選びます。

    maya_skin_3.jpg

  4. これで、各ジョイントのためのメッシュの頂点がもつウェイトを調整することによって、どの頂点がどのボーンによってどの程度影響を受けるかを決めることができるようになりました。これには Paint Skin Weights Tool (スキン重み付けペイントツール) を使用するか、他の好みの方法を用いることができます。

3dsMax では、 Skin モディファイアを使用してメッシュをバインディングしなければなりません。プロセスは、 スケルタル メッシュ が単一の完結したメッシュで構成されているか、複数のメッシュ パーツから構成されているかにかかわらず同一です。

  1. バインディングするメッシュを選択します。

    max_skin_1.png

  2. Modifier List から_Skin_ モディファイアを追加します。

    max_skin_2.jpg

  3. Skin モディファイアのパラメータ欄で、 skin_add_button.jpg ボタンをクリックして、メッシュに影響を与えるボーンを追加します。[Select Bones(ボーン選択)] ウィンドウが開きます。

    max_skin_3.jpg

  4. [Select Bones] ウインドウからボーンを選択し、 [Select] ボタンをクリックしてボーンを追加します。

    max_skin_4.jpg

  5. モディファイアの Bones リストにボーンが表示されます。

    max_skin_5.jpg

  6. これで、各ボーンのためのメッシュの頂点がもつウェイトを調整することによって、どの頂点がどのボーンによってどの程度影響を受けるかを決めることができるようになりました。これにはエンベロープを使用して、直接頂点のためのウェイトを入力するか、他のお好みの方法を用いることができます。

    max_skin_6.png

回転軸

アンリアル エンジンのメッシュの回転軸は、あらゆるトランスフォーム (平行移動、回転、スケーリング) が 実行される際の中心点を決定します。

pivot.png

スケルタル メッシュ の回転軸はつねにスケルトンのルートボーン / ジョイントに位置します。つまり、 スケルトンのルートがシーン内のどこに位置しているかは問題になりません。3D モデリング アプリケーションからエクスポートされると、 回転軸の原点は常に (0、0、0) となります。

pivot_root.png

三角分割

アンリアル エンジンのメッシュは、三角分割されなければなりません。これは、グラフィックスのハードウェアがトライアングルしか扱わないためです。

tris.jpg

メッシュを確実に三角分割する方法はいくつかあります。

  • トライアングルのみを使用してメッシュをモデリングする - これは、仕上がりを最大限に制御できるため、最善の方法です。

  • 3D アプリケーションでメッシュを三角分割する - エクスポートする前にクリーンアップおよび修正できるため良い方法です。

  • インポーターがメッシュを三角分割できるようにする - クリーンアップはできませんが単純なメッシュには機能するため、悪くはない方法です。

  • FBX エクスポーターがメッシュを三角分割できるようにする - クリーンアップはできませんが単純なメッシュには機能するため、悪くはない方法です。

注意: FBX エクスポーターがメッシュを三角分割できるようにすることによって、Split Non-Matching Triangles (不一致なトライアングルの分割) にチェックが入っている場合、 完全にランダムなスムージングとなります。FBX による三角分割されたメッシュを Maya にインポートして戻し、さらに再エクスポートすることによって、正しいスムージングが表示されるようになります。

どのような場合でも、 3D アプリケーション内でメッシュを手動で三角分割することによって、 エッジの方向と配置を制御する方法が最善となります。自動的に三角分割を実行させると、望ましくない結果となる場合があります。

tris_bad.jpg

法線マップの作成

メッシュの法線マップは、たいていのモデリング アプリケーション内で直接作成することができます。そのためには、低解像度のレンダリング メッシュと高解像度の詳細メッシュを作成します。

SideBySide.jpg

高解像度の詳細メッシュのジオメトリは、法線マップの法線を生成するために使用します。Epic 社内では XNormal をプロセスに導入するワークフローを採り入れていますが、UE4 でレンダリング処理すると多くの場合、法線の質がはるかに良くなります。詳細は 法線マップ作成ガイド をご覧ください。

マテリアル

外部アプリケーションでモデリングされたメッシュに適用されるマテリアルは、メッシュとともにエクスポートされて、 アンリアル エディタの中にインポートされます。これによって、プロセスは簡略化されます。テクスチャを別個にアンリアル エディタにインポートする必要がなく、 マテリアルを作成したり適用したりする必要もありません。FBX パイプラインを使用すると、インポート プロセスによってこれらの動作すべてが実行可能となります。

また、これらのマテリアルは特殊な方法でセットアップする必要があります。特に、メッシュが複数のマテリアルをもつ場合や、メッシュ上でマテリアルの順序が重要となる場合にその必要が生じます。 (マテリアルの順序が重要となる場合としては、マテリアル 0 を胴体にして、マテリアル 1 を頭部にしなければならない キャラクター モデルなどがあります)。

エクスポートのためにマテリアルをセットアップする詳細については、 FBX マテリアル パイプライン ページをご覧ください。

頂点カラー

スケルタル メッシュ の頂点カラー (1 セットのみ) を、 FBX パイプラインを使用して転送することができます。特別な設定は必要ありません。

vertex_color.jpg

3D アプリケーションからメッシュをエクスポートする

スケルタルメッシュ は、個別にエクスポート、もしくは複数のメッシュを単一の FBX ファイルにエクスポートすることができます。複数の スケルタル メッシュ が、目的のパッケージ内で複数のアセットに分離されます。

  1. ビューポートでエクスポートすべきメッシュとジョイントを選択します。

    meshAndJointsSel.png

  2. [File] メニューから Export Selection を選択します (選択に関係なくシーンの全てをエクスポートする場合は Export All (すべてをエクスポート))。

    maya_export_2.jpg

  3. メッシュをエクスポートする FBX ファイルの位置と名前を選択して、 [FBX Export] ダイアログで、適切なオプションをセットします。さらに、 maya_export_button.jpg ボタンをクリックして、メッシュを含む FBX ファイルを作成します。

    maya_export_3.jpg

  1. ビューポートでエクスポートすべきメッシュとボーンを選択します。

    max_export_1.png

  2. [File] メニューから [Export Selected] (選択したものをエクスポート) を選択します (選択に関係なくシーンの全てをエクスポートする場合は [Export All] )。

    max_export_2.jpg

  3. メッシをエクスポートする FBX ファイルの位置と名前を選択し、 max_save_button.jpg ボタンをクリックします。

    max_export_3.jpg

  4. [FBX Export] ダイアログボックスで、適切なオプションをセットし、 max_ok_button.jpg ボタンをクリックして、メッシュを含む FBX ファイルを作成します。

    max_export_4.jpg

メッシュのインポート

  1. コンテンツ ブラウザimport_button.png ボタンをクリックします。開いているファイル ブラウザからインポートしたい FBX ファイルを選択します。注意: ドロップダウン リストから import_fbxformat.jpg を選択して、不要なファイルをフィルタリングすることができます。

    import_file.jpg

    インポートしたアセットのパスは、インポート中の コンテンツ ブラウザ の現行位置によって決まります。インポートを実行する前に、必ず適切なフォルダへ移動してください。インポートが完了したら、インポートしたアセットを新規フォルダへドラッグすることもできます。

  2. [FBX Import Options (FBX インポート オプション)] ダイアログから適切な設定値を選択します。既存のスケルトンを共有しないメッシュをインポートする場合は、デフォルト値で十分です。全設定値の詳細は、 FBX インポート オプションのリファレンス セクションを参照してください。

    SkeletalMeshFBXOptions.png

    インポート中のスケルタルメッシュが既存のスケルトンを共有する場合は、[Select Skeleton (スケルトン選択)] ドロップダウン メニューをクリックして、リストからそのスケルトン アセットを選択します。

    FBX Skeletal Mesh Skeleton Browser

  3. Import Button ボタンをクリックしてメッシュをインポートします。プロセスが成功すると、その結果、メッシュ (オプションを有効にした場合はマテリアル、テクスチャも) が コンテンツ ブラウザ に表示されます。

    ImportedCharacter.png

    インポートされたメッシュをペルソナで表示することで、プロセスが期待したとおりに実行されたかを判断できます。

スケルタルメッシュのLOD

スケルタル メッシュ では、 LOD がインゲームで使用されることによって、 カメラから遠ざかるにつれてメッシュの影響を制限することができます。つまり、一般的に、各 LOD のトライアングル数が減少すればするほど、 適用されるスケルトンおよびマテリアルは単純になっていきます。

FBX パイプラインを使用してこれらの LOD メッシュをエクスポート / インポートできます。

LOD 設定

通常、 LOD を扱うには、完全な詳細度をもつベースメッシュから最も低い詳細度をもつ LOD メッシュまで、 さまざまな複雑度のモデルを作成します。これらのモデルはすべて一列に並び、同一の回転軸をもつ同一の空間を占めなければなりません。 また、同一のスケルトンにスキニングされる必要があります。また、 3D アプリケーション内にある複数の独立したメッシュを使用して、スケルタル メッシュを作ることが可能です。 これらの各パーツは、他のメッシュとは別の LOD をもつことができます。したがって、各種 LOD の中で単純なバージョンを使用するパーツもあれば、 高詳細バージョンを使用し続けるパーツもあります。各 LOD メッシュでは、マテリアル量が異なるなど、 完全に異なるマテリアルを割り当てることができます。したがって、ベースメッシュでは複数のマテリアルを使用して、カメラの近くでは望ましい詳細度を実現し、 低い詳細度のメッシュは、あまり目立たないため単一のマテリアルを使用することができます。

  1. ベースとなる LOD から最後の LOD まで、順番にメッシュをすべて (ベースに加えてLOD) 選択します。複雑度に応じて正しい順序で追加されるようにするためにこれは重要です。次に、[Edit] メニューから [Level of Detail] > [Group] コマンドの順に選択します。

    maya_lod_group.jpg

  2. これで、すべてのメッシュが LOD グループのもとにグループ化されているはずです。

    maya_lod_contents.jpg

  1. メッシュをすべて選択して (ベースと LOD - 順番は重要ではありません) [Group] メニューから [Group] コマンドを選択します。

    max_lod_group.jpg

  2. ダイアログ ボックスが開くので、新しいグループ名を入力し、 max_lod_ok_button.jpg ボタンをクリックしてグループを作成します。

    max_lod_group_name.jpg

  3. max_utilities_button.jpg ボタンをクリックして [Utilities] パネルを表示し [Level of Detail] (詳細度 (LOD)) ユーティリティを選択します。**注意:max_utility_more_button.jpg をクリックして、リストから選択しなければならない場合があります。

    max_lod_utility.jpg

  4. グループを選択したら、 max_lod_create_button.jpg ボタンをクリックして、新たな LOD セットを作成し、選択されたグループ内にあるメッシュをそれに追加します。メッシュは、その複雑度に応じて自動的に順序付けされます。

    max_lod_contents.jpg

マルチパーツ LOD

マルチパーツ スケルタルメッシュ の LOD の設定は、フルのメッシュのために LOD を設定する場合と同じ方法をとります。 ただし、LOD を有する各パーツのために、LOD グループが作成されることになります。これら個々の LOD グループを設定するプロセスは、 上記で概説したプロセスと同じです。

LOD のエクスポート

スケルタル メッシュの LOD をエクスポートするには、次のようにします。

  1. エクスポートすべき LOD グループとジョイントを選択します。

    meshAndJointsSel.png

  2. ベースメッシュに使用したエクスポート手順と同じ手順に従います (上のメッシュのエクスポート セクションで記述しています)。

  1. エクスポートすべき LOD セットとボーンを含むメッシュのグループを選択します。

    max_export_1.png

  2. ベースメッシュに使用したエクスポート手順と同じ手順に従います (上のメッシュのエクスポート セクションで記述しています)。

LOD のインポート

スケルタル メッシュ の LOD は、LOD SettingsPersona にある [Mesh Details(メッシュの詳細)] パネルから簡単にインポートできます。

  1. Persona でLOD を適用する スケルタル メッシュ を開き、[メッシュ] タブに進みます。

  2. [Mesh Details] パネルでスクロールダウンし、[LOD Settings] セクションを探して[LOD Import] オプションをクリックします。

    LOD_Import.png

  3. 開いているファイル ブラウザからインポートしたい FBX ファイルを選択します。

    ImportFileBrowser.png

  4. インポートされた LOD が [Mesh Details] パネルに追加されます。

    LOD_Added.png

  5. 各 LOD で、[Screen Size] 設定に LOD を使用するタイミングが示されます。

    LODs_Set.png

    注意: 値が小さくなるほど、遠く離れた時に LOD を使用し、値が大きくなるほど近くで LOD を使用します。 上の画像では、スケルタルメッシュ に近いときに LOD0 を使用しています。さらに離れたときには、 LOD1 を使用しています。

  6. LOD をインポートまたは追加するときは、その LOD に対して Reduction Settings (縮小設定) も調整できます。

    LOD_ReductionSettings.png

アンリアル エディタから FBX にエクスポートする

アンリアル エディタにすでにインポートされている スケルタル メッシュ は、 コンテンツ ブラウザ から FBX ファイルに再度エクスポートすることができます。

クックされたパッケージに含まれているアセットは、エクスポートできません。これは、クックアウトされたソースデータが、エクスポートのプロセスで必要なためです。

  1. コンテンツ ブラウザ で、エクスポートする スケルタルメッシュ を選択します。

    SelectSkeletalMesh.png

  2. スケルタルメッシュ右クリック[Asset Actions] > [Export] の順に選択します。

    ExportMenu.png

  3. ファイル ブラウザが表示されるので、エクスポートするファイルの場所と名前を選択します。注記: FBX File (*.FBX) をファイルタイプとして選びます。

    export_file.jpg

物理アセット

Physics Asset Tool (PhAT) の使用方法に関する詳細は、 物理アセット ツール を参照してください。

アニメーション

FBX コンテンツ パイプラインを使用してアニメーションを作成、インポートする方法の詳細については、 FBX アニメーション パイプライン のページを参照してください。

モーフターゲット

FBX コンテンツ パイプラインを使用してモーフターゲットを作成、インポートする方法の詳細については、 FBX モーフターゲット パイプライン のページを参照してください。