株式会社 KORAT でさまざまなコンテンツの3DCG製作、ディレクションを担当しておいでの 高野 怜大氏に、Unity, Unreal Engineなどのゲームエンジンを用いたゲーム制作のワークフローでの「MODO」の活用スタイルをご紹介いただいております。
text by 高野 怜大
前回はMODOの「ベイク機能」の概要とベイクウィザードの簡単な使い方を紹介しました。
今回はもう少し具体的なワークフローとして、
「最初に素材となるハイレゾリューションのモデルデータがあり、それをゲームアセット用のローレゾリューションに加工する」
というフローの中で、どのように「ベイク機能」が使うのかを紹介したいと思います。
以下の図が今回紹介する作業の流れです。
ゲーム制作の中では、映像作品で使用されたモデルを流用したり、スカルプトアーティストが作成したモデルや3Dスキャンされたデータを利用することがあります。
しかしそのようなモデルデータはポリゴン数が多かったり、材質の設定がゲームエンジンでの利用を考慮されておらず、そのままの状態ではゲームエンジンで利用できないことがほとんどです。
こういった場合、リトポロジの機能を使用して、ハイレゾリューションのモデルを元にローレゾリューションのモデルを再構築し、ハイレゾリューションからローレゾリューションへのテクスチャベイクで法線マップを作成してローレゾリューション上に細かいディテールを表現します。
それでは作業の工程を順番に説明します。
今回はハイレゾリューションの岩のモデルを、ゲームアセット用のローレゾリューションのモデルに再構築します。このモデルは約30万の三角ポリゴンで構成されています。
まずリトポロジの作業を行います。この作業には「トポロジ」レイアウトを使用します。
このレイアウトにはリトポロジ関連のツールが集約されており、リトポロジの作業を集中して行うことができます。
今回のリトポロジには「自動リトポロジ」ツールを使います。テクスチャの設定がシビアだったり、精度の高いモデルが要求されるような場合には、「トポロジ」ツールなどを使用して手動でモデルを再構築しますが、背景に使用するような有機的なモデルであれば「自動リトポロジ」ツールを使って作業時間を短縮させることができます。
ハイレゾリューションのアイテムを選択し、「自動リトポ」ボタンをクリックして「自動リトポロジ」ツールを起動させます。
すると「自動リトポロジ」の設定ダイアログボックスが表示されますので、値を調整します。
「自動リトポロジ」は数回行います。いろいろなモデルで「自動リトポロジ」を試してみたのですが、一度に「自動リトポロジ」でローレゾリューションにするよりも数回に分けて段階的にレゾリューションを減らした方が期待に近い結果を得ることができるようです。
まず一回目の「自動リトポロジ」でモデル全体が4角ポリゴンで構成されるようにします。 「四角形のみ」のチェックボックスをONにしてください。
「相対ポリゴンターゲット数」は80%くらいの高い値に設定しておきます。
OKボタンを押して「自動リトポロジ」を実行します。
するとリトポロジーの計算が実行され、アイテムリストに新しく「 <元のメッシュアイテム名>_retopo」というメッシュアイテムが作成されます。
このモデルのトポロジを見てみましょう。全て四角形ポリゴンで構成された流れのあるトポロジが生成されているのが確認できます。
それでは二回目の「自動リトポロジ」を実行します。
二回目は、ポリゴン数を少なくするのが目的なので「相対ポリゴンターゲット数」に小さい値を指定して実行します。
「自動リトポロジ」を数回に分けて適用してポリゴン数を少なくした状態です。
※四角ポリゴンで約350枚(三角ポリゴンで700枚)までに減らしました。
これで元のハイレゾリューションのモデルから「自動リトポロジ」でローレゾリューションのモデルを生成する工程は完了です。
次はこのローレゾリューションのモデルのUVを展開します。
ローレゾリューションの岩のモデルに対して、ベイクしたテクスチャをマッピングできるようUVを展開します。
作業には「UV編集」レイアウトを使用します。
このレイアウトにはUV編集のためのツールが集約されており、UV編集の作業を集中して行うことができます。
アイテムリストでローレゾリューションの岩のモデルを選択し、リストにあるUVマップの「新規マップ」をクリックします。
UVマップの名称を入力し、OKボタンをクリックするとUVマップが新しく作成されます。このUVマップにローレゾリューションの岩のモデルのUVを展開します。
今回のUV展開には「アンラップ」ツールを使用します。まず3DビューポートでUVのシームとなるエッジを選択します。
「アンラップ」ツールを起動させてUVビューをクリックすると、自動的にUVが展開されます。赤い部分はUVが重なっている部分です。「アンラップ」ツールのプロパティ「反復回数」の値を調整します。
「反復回数」の値の調整で重なりの無いきれいなUVマップを作成することができました。今回はこれでOKとします。もし、もっと細かくUVを調整する場合には、このレイアウトにある様々なツールを使ってUVを編集するとよいでしょう。
モデルの準備が整いましたので、次はこのモデルへカラーマップや法線マップをベイクします。
ベイクを行う前に、ノーマルマップがきれいに出力されるようケージとなるモーフマップを用意します。
ここからの作業はすべてゲームツールレイアウトで行います。
アイテムリストでローレゾリューションのメッシュアイテムを選択し、リストにあるモーフマップから「新規マップ」をクリックします。
表示されるダイアログボックスでモーフマップの名称を設定してOKボタンをクリックすると、ケージ用のモーフマップが作成されます。
ウィンドウ左の「頂点マップ」タブにある「モーフプッシュツール」をクリックして起動させます。
「モーフプッシュツール」を使うと、ベイクの際の距離を視覚的に確認しながら設定することができます。
3Dビューポートを左右にドラッグすると、モーフプッシュツールの「距離」が増減してポリゴンの法線方向に押し出されるようなモーフを作成することができます。
モーフを適用したモデルが元のハイレゾリューションのモデルを覆うくらいの大きさになるよう調整します。
もしベイクするモデルがもっと複雑でモーフの様子が分かりにくいような場合には、「ケージビュー設定」を調整して見やすい表示にしましょう
「ケージビュー追加」ボタンをクリックします。
「ケージビュー設定」ボタンをクリックし、パネルで細かい表示の設定を調整します。
最後の準備として、ローレゾリューションのモデルにマテリアルグループを作っておきます。このマテリアルグループの中にベイクで生成されるテクスチャが入ります。
これで準備完了です。
それでは最後にベイクウィザードを使ってハイレゾリューションのモデルからローレゾリューションのモデルにテクスチャベイクします。
ゲームツールレイアウトのベイクウィザードを起動し、通常のテクスチャベイクと同じように設定をおこないます。
このステップでのポイントは「UV」、「ケージ」、「ターゲットマテリアル」です。
UVはローレゾリューションのモデルのUVマップを指定し、ケージは先程作成したモーフマップを指定します。
ターゲットマテリアルは、出力したテクスチャの反映先なので、ローレゾリューションのマテリアルグループを指定します。
設定が終わったら、次のステップへ進みます。
このステップでは、ソースとターゲットを指定します。
今回は、ハイレゾリューションからローレゾリューションへのベイクなので
ソース:ハイレゾリューションのメッシュアイテム
ターゲット:ローレゾリューションのメッシュアイテム
となるようチェックして、次のステップへ進みます。
このステップは既に用意されているレンダー出力を用いてベイクする要素を指定する工程ですが、それは次のステップでも選択できるので今回は何も指定せず次に進みます。
ここではベイクするテクスチャを指定します。今回は「ディフューズの色」と「法線」を書き出したいので、「テクスチャ出力を追加」からそれぞれ選択して追加します。
設定が終わったら、「ベイクのみ」をクリックしてベイクを実行します。
レンダリングが始まり、ハイレゾリューションモデルの表面がローレゾリューションモデルへベイクされます。
レンダリングが終わったら、シェーダーツリーを見てみましょう。 ローレゾリューションのマテリアルグループに新たにテクスチャが読み込まれているのが確認できます。
このようにベイクウィザードを使えば、ハイレゾリューションのモデルからローレゾリューションのモデルへのテクスチャベイクも簡単に行うことができます。
一つのゲームの中で使用されるアセットは非常に数が多く、別のアセット用のモデルを同じ設定でベイクしたり、同じモデルに対して設定を調整しながらベイクしたい場合もあるでしょう。
ベイクウィザードで行った一連の設定はベイクアイテムとして保存することができ、何度でも再利用できます。
「ベイクのみ」ボタンを長押しするか右クリックするとポップアップメニューが表示されます。「ベイクアイテムの作成のみ」をクリックして実行します。
するとシェーダーツリーに「Bake Item」が作成され、プロパティから先ほどベイクウィザードで設定した項目にアクセスすることができます。
このベイクアイテムを選択してプロパティの「選択をベイク」または「全てをベイク」をクリックするだけで、同じ設定でテクスチャベイクを行えます。
今回は具体的なワークフローの中でどのようにベイク機能(ベイクウィザード)を利用するのかを紹介しました。
次回はベイク先となるローレゾリューションモデルの、UV展開するためのツールを詳しく紹介したいと思います。
ではでは
|
高野 怜大
2002年から GameAsset、VideoPromotion をはじめとする各種コンテンツの3DCG製作、ディレクションを担当。
|
<< 前の記事 次の記事 >> |