3Dマップモデル自動生成

こんにちは、KLabGames RRR(リアルタイム・レンダリング・リサーチ)グループのnaoieです。

3D背景モデル製作において、岩/木/石/草などの汎用的に利用する素材を作ることがあります。これらはそのフィールドの環境を示すバロメータです。 木が生えていると言う事は雨が降って水があり、大地に豊富な栄養があるということ。 逆に枯れていれば、季節の変わり目もしくは過去に大きな戦や呪いによって環境が変化してしまった。 岩石地帯であれば、近くに火山があって過去多くな噴火があった場所、硫黄泉があり植物が映えないなどを視覚的に表現するために利用できます。

ただ、これらの素材は汎用素材なのにもかかわらず、必要になった際に必ず作っていませんか? または、低スペック向けに作ったけど、高スペックのバージョンが必要になり、アップグレードしなくてはいけないなど、制作において流用する際の障壁が数多くなります。

そこで今回は、そういった管理/調整コストを最大限に削減し、幅広い動作環境で汎用的に利用できるモデルの制作フローを紹介させて頂きます。

1. ハイメッシュモデルの制作

まず、ZBrushなどで形状密度の高いモデルを作ります。 PCの動作に無理のないポリゴン数で、形状やディテールを製作していきます。 大体、200万Polyで製作しています。
Highモデル

2. LODAの製作

今回紹介する最大のポイントです。LODAというモデルを作ります。 これはハイメッシュモデルに複数のアトリビュート付加(タイプ"Rock" "Stone"やID番号)UV展開を施したモデルです。このモデルをライブラリ化します。
make_LODA

そのLODAから任意のポリゴン数にリダクションされたLODチェインを作成します。 Houdiniを利用して、リダクションするポリゴン数を指定して各LODモデルを出力します。
モデル・スケールダウン

こうすることで様々なプラットフォームに合ったポリゴン数にリダクションし、利用することが出来ます。

次に作成したモデルに対して割り当てるマテリアル/テクスチャを作成します。

3.マテリアルの作成

マテリアル・スケールダウン高スペック 高スペックのプラットフォームではマテリアルは、3枚のテクスチャを使ったPBR表現を採用します(上)。 低スペック・モデルのマテリアルでは、PBRの表現が焼きこまれている1枚のテクスチャを使用してます(下)。表現の焼き込みはSubstance Painterで自動的に行うことができ、動的なライト表現はできなくなるますが、低スペック・モバイルの制約を考えると、クオリティの高い表現は可能です。 マテリアル・スケールダウン低スペック

表示結果

こちらがUnity内の結果です。

▼高スペック版
UnityHighSpec

▼低スペック版
UnityLowSpec

まとめ

日常の作業内容に疑問を持ち、改善の為に動くことが大切です。 リダクションはすべてHoudiniで自動化することでかなりの工数削減となります。 SubstancePainterを利用することで、リアルでもスタイライズでも様々な表現に対応することが出来ます。

高スペックと低スペックでのテクスチャの差異はライティングです。 現在はテンプレートのHDRIを利用している為、多少色味とライトアングルが載っています。 このあたりは、さらにベイク用のHDRIを作製する事で、差異無くまとめることが出来ます。

汎用的な物は広く有益に使える物としてライブラリ化すれば、会社の資産も増えますし、少しでもクリエイティブな事に時間を割けるようになります。

この取り組みは今後も続けていきますので、新たなフロー検証などを続々と発表できるように準備していきます。

最後まで読んでいただきありがとうございました。

参考文献(社外資料)

このブログについて

KLabのクリエイターがゲームを制作・運営で培った技術やノウハウを発信します。

おすすめ

合わせて読みたい

このブログについて

KLabのクリエイターがゲームを制作・運営で培った技術やノウハウを発信します。