株式会社 KORAT でさまざまなコンテンツの3DCG製作、ディレクションを担当しておいでの 高野 怜大氏に、Unity, Unreal Engineなどのゲームエンジンを用いたゲーム制作のワークフローでの「MODO」の活用スタイルをご紹介いただいております。
text by 高野 怜大
今回はツールパイプラインについて説明しようと思っていましたが、読者の方から「最終的なゲームエンジンでのルック」についてご質問いただきましたので、それにお答えする意味も含め Unreal / Unity マテリアルの説明を先に行いたいと思います。確かに今制作しているアセットが最終的にどのようにゲームエンジンで表示されるのか気になりますよね。
DCCツール (※1) で作成したモデルをそのままゲームエンジンに読み込んで、まったく異なる材質が表示されてしまったことはありませんか。
これは根本的にDCCツールとゲームエンジンのマテリアル (※2) の計算方式が異なっているためです。
● DCCツール 疑似的にリアルに見える計算方法が多く採用されています。 3DCGの歴史をさかのぼると、まだ3DCGが一般的で無かったころはスペックの低いコンピュータで絵作りをする必要があり、自然界の様々な現象を疑似的に表現する計算方法が主流でした。歴史のあるDCCツールにはこの流れが受け継がれています。 |
● ゲームエンジン 物理ベースの計算方法が採用されています。 コンピュータ(ハードウェア)の機能を活かし、材質や光源など現実世界と同じ設定でリアルな表現が可能です。 |
このようにDCCツールとゲームエンジンでは計算の方法(アプローチ)が異なるため、結果となる絵が異なるのです。
MODOにはゲームエンジンと同じマテリアルが用意されており、物理ベースの計算方式で材質の設定を行うことができます。
MODOでの表示とゲームエンジンでの表示に違いが無いので、ゲームエンジン側での作業負荷を軽減することができます。
MODOで設定したゲームエンジン用のマテリアルは、MODOの「ゲームツール」レイアウトから簡単に出力することが可能です。
ここからはMODOからUnreal Engineへデータを渡す流れを通し、具体的なMODOでのゲームマテリアルの設定方法とデータ出力について説明します。
今回はこのモデルデータに対して、ゲームマテリアルを設定します。
まず3Dビューポートのビュータイプを「アドバンスト」に変更します。
「アドバンスト」にするとゲームマテリアルで設定した材質の表示をゲームエンジンの表示に合わせることができます。
次に設定したマテリアルの情報をゲームエンジンに持っていく事の出来る「Unreal Material」を追加して材質を設定します。
シェーダーツリーで
「レイヤー追加」 > カスタムマテリアル > Unreal Material
を選択して追加します。
「Unreal Material」のプロパティを見てみましょう。
Unreal Materialは「Base Color」、「Metalic」などのプロパティを持っており、MODOの「アドバンスト」ビューを見ながら調整したこれらの情報をそのままUnrealのMaterialに反映させることができます。
次はこのモデルにテクスチャを割り当て、Unreal用の設定を行います。
今回はベイク機能や3Dペイントの機能を使って作成したテクスチャファイルを使用します。
これらのテクスチャの要素はそれぞれ以下のように設定します。
ではこのモデルのテクスチャをゲーム用に設定します
ColorとNormalのテクスチャはすでにモデルに使用されていますので、画像編集ソフトで作成したMASテクスチャをMODOに読み込みます。
シーン内でテクスチャに使用する画像ファイルは画像パレットで管理することができます。
「クリップの追加」 > (画像の読み込み)
を選択し、MASテクスチャの画像ファイルを指定します。
MASテクスチャが画像パレットに読み込まれました。
次にMASテクスチャをモデルにセットします。先ほど読み込んだテクスチャはクリップブラウザですぐにアクセスすることができます。
シェーダツリーパレットで
「レイヤー追加」 > 画像 > (クリップブラウザを使用)
を選択します。
クリップブラウザで先ほど読み込んだMASテクスチャを選択します。
モデルのマテリアルグループへのテクスチャのセットが完了しましたが、現在のテクスチャは「ディフューズの色」や「法線」といったMODO用の設定(エフェクト)になっています。これをUnreal用のエフェクトに変更します。
「ディフューズの色」に設定されているColorテクスチャを「Unreal Base Color」に変更します。
エフェクトの「ディフューズの色」をクリックしします。
Unreal > Unreal Base Color
を選択します。
次は「法線」に設定されているテクスチャを「Unreal Normal」に変更します。
Unreal > Unreal Normal
を選択します。
MASテクスチャは、まずRedのチャンネルを「Unreal Metallic」に変更します。
テクスチャのプロパティで、スウィズルをONにし、チャンネルに「Red」を指定します。これで、このテクスチャはRedチャンネルの情報のみ有効となります。
エフェクトの欄をクリックします。
Unreal > Unreal Metallic
を選択します。
次に設定する「Unreal Ambient Occlusion」用のテクスチャは先ほどと同じMASテクスチャのGreenチャンネルを使用します。
再度読み込んでも良いのですが、手早く右クリックで複製して再利用します。
プロパティでチャンネルを「Green」に変更します。
エフェクトの欄をクリックします。
Unreal > Unreal Ambient Occlusion
を選択します。
これで材質の設定は完了です。
次は、Unrealへのデータ出力になりますが、その前にUnrealがMODOで設定したゲームマテリアルを読み込めるよう準備を行います。
Unreal でMODOのゲームマテリアルを読み込むためには、Unrealに「MODO Material Importer」プラグインを追加する必要があります。
「MODO Material Importer」はマーケットプレイスで無償で提供されておりますので、ダウンロードしてUnrealに追加しておきます。
マーケットプレイスでは「MODO」のキーワードで検索すればすぐにヒットするでしょう。
これでUnreal側の準備は完了です。
Unrealマテリアル、Unrealテクスチャを設定したMODOのモデルを出力します。
まず「ゲームツール」レイアウトに変更します。
「出力&プリセット」タブを確認します。
ここにはFBXを出力する際の設定やプリセット、実際の出力ボタンといった関連機能が集約されています。
プロジェクトのプリセット
データの出力先などの情報をプリセットとして登録することができます。
異なる案件が同時進行しているような場合でも、あらかじめプロジェクトとして登録しておけば、すぐに出力先を変更することができます。
FBXプリセット
FBXの出力設定をプリセットとして登録することができます。
Unreal 用、Unity 用にそれぞれStatic, Animated の設定が登録されています。出力するモデルの用途や種類に合わせてプリセットを変更するとよいでしょう。もちろんさらにプリセットを追加することもできますので、アニメーションのみ出力するようなプリセットを登録してもよいでしょう。
今回は、アニメーションが設定されていない小道具のオブジェクトをUnrealに書き出しますので、 「Unreal Static」を選択します。
これで基本的な設定が完了です。
※もし、もっと細かい設定を調整する場合には「プロジェクトプリセットを編集」から変更し、プロジェクトのプリセットとして登録しておくとよいでしょう。
「別名で出力」を押し、Unrealのプロジェクトのコンテンツフォルダを指定して保存します。
Unrealを確認するとコンテンツフォルダ内へのファイル追加(更新)に伴い、アップデートが行われMODOで出力したファイルが読み込まれます。
コンテンツフォルダに読み込まれたアセットをUnrealのレベルにドラッグ&ドロップして読み込んでみます。
MODOで作成したアセットが同じような見た目で、Unrealに再現することができました。
いかがだったでしょう。
今回はMODOからUnrealへデータの出力する流れを通し、ゲーム用の材質の設定、FBXの出力についてご紹介しました。
MODOのゲーム用の材質の設定を使用することによりゲームエンジンでのルックをあらかじめ予想しながら、MODOで作業を進めることができます。
異なるソフト間でのデータのやり取りは気をつかうところではありますが、細かな設定をプリセットとして登録しておけばミスを減らすことが出来、その分クリエイティブな作業に集中できるのではないかと思います。
ではでは
|
高野 怜大
2002年から GameAsset、VideoPromotion をはじめとする各種コンテンツの3DCG製作、ディレクションを担当。
|
<< 前の記事 次の記事 >> |