Maya で作成した LOD を Unity に対応
Tutorial
·
Beginner
·
+10XP
·
35 mins
·
Unity Technologies

このワークフローでは、Maya を使って複数の LOD メッシュを自動的に作成し、それらをグループ化します。また、既存の様々なメッシュの LOD グループも作成します。最後に、LOD と LOD グループを含む FBX ファイルを Unity にエクスポートします。
Languages available:
1. Maya で作った LOD を Unity に対応
2. Maya で作成した LOD を Unity に対応
本チュートリアルは、Unity 2019 LTS と Maya 2019 を使用して検証されています
LOD (Level of Detail) とは、Unity の機能の一つで、オブジェクトにハイカウントからローカウントまでの複数のポリゴンの密度を持たせることができます。Unity は、オブジェクトとカメラの距離に応じて、ポリゴンの密度の低いメッシュと高いメッシュを切り替えます。LOD を使用すると、目で見たときと同じように、カメラに近いときはポリゴン数が多く、遠いときはポリゴン数が少なく表示され、作業量が最適化されます。通常、1 つの LOD グループには 2〜3 の LOD が含まれますが、カメラまでの距離が変わったときにスムーズに移行するために、さらに LOD を追加することもあります (画像 01)。

画像 01:Maya からエクスポートした FBX に LOD グループを設定した Unity のキャラクターの表示。
このワークフローでは、Maya を使って複数の LOD メッシュを自動的に作成し、それらをグループ化します。また、既存の様々なメッシュから LOD グループを作成します。最後に、LOD と LOD グループを含む FBX ファイルを Unity にエクスポートします。
3. Maya を使った LOD メッシュの生成とそのグループ化
Maya には、LOD を作成してグループにまとめる簡単な方法があります。ハイポリメッシュをベースに様々な低解像度メッシュを生成し、それらを LOD グループに配置してから Unity にエクスポートすることができます。
Maya は生成された LOD に自動的に数字順の名前を付けます。ポリカウントが最も大きい LOD は LOD_0 と名付けられ、オブジェクトがカメラに最も近い位置にあるときにアクティブになります。グループ内の各 LOD には、順に大きな番号が付けられ、最も大きな番号の LOD が最も低いポリカウントになるようになっています。この方法で LOD を作成できるのは、リギングされたキャラクターや、リギングを必要としないアセットです。
1. Maya でハイポリのモデルを開き、選択します。モデルの選択は、メインビューポートまたはアウトライナーで行います。
2. メインウィンドウから Edit > LOD (Level of Detail) > Generate LOD Meshes の順に選択し、Options のボックスをクリックします。

画像 02:メインウィンドウの Edit メニューから Generate LOD Meshes を選択します。
3. リギングされたキャラクターのスキンの新しい LOD を、同じリギングされたスケルトンにアタッチしたままにするには、Copy Skin Weights オプションをチェックします。
4. Reduction Method のドロップダウンメニューが Percentage になっていることを確認します。
5. LOD Levels セクションでは、Number of LOD levels の隣にあるドロップダウンメニューから、作成する LOD メッシュの数を選択します。これは、すでにシーンにあるハイポリメッシュに加えて作成されます。既存のハイポリメッシュは変更されず、LOD グループに追加されます。
6. 必要に応じて、各 LOD のジオメトリの削減率を調整します。
7. その他、LOD に必要な設定を調整します (画像 03)。

画像 03:LOD の最適な設定を示す「Generate LOD Meshes」オプションウィンドウ。
8. Generate ボタンをクリックすると、LOD が生成され、グループ化されてウィンドウが閉じます。(注:新しい LOD メッシュが生成されて配置されるので、必要に応じて正確に入れ替えることができます。)
9. Window menu > Outliner と選択して Outliner ウィンドウを開きます。
10. LOD グループを展開して LOD の階層構造を確認し、シーンの内外でドリー操作を行います(マウスのスクロールホイールでカメラのドリーツールを操作します)。カメラがオブジェクトに近づいたり遠ざかったりすると、Outliner で各 LOD の可視性が変化するのがわかります。
11. 通常、ビューポートには 1 つのメッシュしか表示されません。Outliner ウインドウから LOD グループを選択し、Attribute エディターで表示したいメッシュの LOD 表示のドロップダウンを Show に変更することで、すべてのメッシュを表示することも、個別に表示することもできます。すべての LOD を重ねて表示したくない場合は、他の LOD を必ずオフにしてください。また、LOD が正しく動作するように、それらを「uselod」に戻してください (画像 04)。

画像 04:LOD Group の設定が表示されている Attribute エディターと、LOD Group が展開されて子 LOD が表示されている Outliner ウィンドウ
注:TheLOD Start Percentage の値は、Screen Height Percentage を変更するもので、LOD Group がカメラフレーム内で占める画面の高さの割合に基づいて、グループの LOD を表示します。Maya でこの値を変更すると、これらのパーセンテージが LOD Group にどのような影響を与えるかをプレビューすることができますが、これらのパーセンテージは、ファイルをインポートした後に Unity の LOD Group 設定には引き継がれません。
これで、LOD を含むグループが Maya からエクスポートされ、Unity にインポートされる準備が整いました。
4. 既成の LOD メッシュで LOD グループを作成する
異なるレベルのメッシュを自動的に生成せずに LOD グループを作成することができます。このオプションは、ハイポリのメッシュをローポリのメッシュにリトポロジーしている場合や、ローポリのメッシュの様々なレベルにリトポロジーしている場合に可能です。追加するオブジェクトはすべてシーン内の同じ位置になければならず、通常はグリッドの中心または原点になります。
1. Maya では、ポリカウントの大きいものから小さいものの順にオブジェクトを開いて選択します。最も簡単な方法は、Outliner ウィンドウ (Windows > Outliner と選択) を使用することです。LOD Group に追加するジオメトリを、解像度の高いモデルを最初に、解像度の低いモデルを最後に選択します。オブジェクトは選択された順に LOD Group に追加され、名前が付けられます。
2. メインウィンドウから Edit > LOD (Level of Detail) > Create LOD Group の順に選択し、Options ボックスをクリックします (画像 05)。

画像 05:メインウィンドウの Edit メニューから Generate LOD Group を選択
3. Setup LOD Options ウィンドウで、Screen Height Percentage オプションがチェックされていることを確認します (画像 06)。

画像 06:Unity での使用に必要な最適な設定を示す Setup LOD Group Options ウィンドウ。
4. Setup LOD ボタンをクリックすると、グループが作成され、ウィンドウが閉じます (画像 07)。

画像 07:Maya の LOD と LOD Group の最終結果を表示
LOD グループは Maya で作成され、グループを作成する前にシーンで選択されたオブジェクトが含まれます。メッシュの選択が間違っていたり、順番が間違っている場合は、Outliner や Attribute エディターでメッシュの名前を変更して、正しい順番にすることができます。
5. Unity への FBX のエクスポートと LOD Group コンポーネントの追加
Unity で LOD Group 付きのリグやアセットを使用するには、Maya を使用して、LOD Group を使用しているシーン全体を FBX ファイルとしてエクスポートします。
1. File > Send to Unity > All を選択して Maya のシーンをエクスポートします。また、Unity FBX Exporter の統合がインストールされている場合は、File > Unity > Export の順に選択します (注: ファイルをエクスポートする前に、Unity のプロジェクトフォルダーを探す必要がある場合があります)。
2. Unity エディターに切り替えるか(開いていれば)、エクスポートされた FBX ファイルのために Unity でプロジェクトを開きます。
3. Project パネルでインポートした FBX ファイルを選択し、インポート設定を調整します。
4. Inspector パネルで、モデル、リグ、アニメーション、マテリアルに必要なプロパティを変更します。
5. オブジェクトをシーンに追加し、シーン内でオブジェクトを選択すると、Inspector パネルにプロパティが表示されます。
6. Add Component ボタンをクリックします。
7. Component Browser (コンポーネントブラウザー) の検索ボックスに「LOD」と入力し、検索結果から LOD Group を選択します。これで、選択したゲームオブジェクトに LOD Group コンポーネントが追加されます(画像 08)。

画像 08:コンポーネントブラウザーで LOD Group を検索します。
8. バーに表示されている LOD(Culled セクション以外)の 1 つをクリックし、Renderers セクションの Add ボタンをクリックします。
9. オブジェクトブラウザーで、LOD レベルのラベルをダブルクリックして、レンダラーとして割り当てます。(レンダラーとは、LOD レベルを表すメッシュを含むゲームオブジェクトで、LOD Group の子です) ハイポリバージョンを LOD0、ローポリバージョンを LOD1、LOD2...... と割り当てていきます。各 LOD には任意のオブジェクトを選択できますが、これらは適切なレンダラーです (画像 09)。

画像 09:Inspector パネルで特定の LOD の Add ボタンをクリックした後、Select Renderer ウィンドウから LOD メッシュを選択します。
10. カメラのアイコンをクリックして左右にドラッグすると、各 LOD Group の変更点が表示されます。
11. 各グループのパーセンテージの値は、バーの間の縦線を左右にドラッグして調整します。バーに表示されているパーセンテージは、カメラがオブジェクトに近づいたときにどのレベルが有効になるかを決定します (画像 10)。

画像 10:2 つの詳細レベルの間で垂直バーをドラッグすると、オブジェクトがハイポリからローポリバージョンに変化するタイミングを調整できます。
12. LOD レベルを追加するには、バーの任意の場所を右クリックし、コンテキストメニューから Insert Before を選択します。
13. LOD レベルを削除するには、バーを右クリックして Delete オプションを選択します。
LOD Group のオプションを設定したら、シーン内でオブジェクトを近づけたり遠ざけたりして、LOD の変化を確認することができます。
6. まとめ
Unity プロジェクトで使用するために、Maya で LOD と LOD グループを作成するのは非常に簡単です。キャラクターやオブジェクトに LOD を作成すると、オブジェクトのカメラからの距離に応じてポリカウントのレベルを調整することができます。Maya で LOD や LOD グループを作成および調整する方法を理解し、その LOD を Unity にインポートすることで、プレイヤーのコンピュータの負荷を軽減し、最適化を図ることができます。