ここ一か月ほど、OmniverseのRetroverseコンテストのモデリングにつめておりまして、
締め切り直前の2021/10/25くらいに提出しました。
以下のコンテストです。
https://www.nvidia.com/ja-jp/omniverse/retroverse-contest/
ゲームやパソコンに初めて触れたシーンをOmniverse Createで表現しよう、という内容のコンテストです。
目的は、子供のころの自分の記憶/体験が活かせるのと腕試しのため。
今回はどのようなツールをどのような目的で使ったか、というのをまとめることにしました。
使用したツール
Omniverse Create 2021.3.6に最終的に持って行きました。
モデリング部分では以下のツールを使用しました。
- モデリング : Shade3D/3DCoat
- テクスチャ : Affinity Photo/Affinity Designer
- テクスチャ(タイリングテクスチャ, 3Dペイント) : Substance Designer/Substance Painter
- テレビ内のゲーム画面(ドット絵) : EDGE ( https://takabosoft.com/edge )
モデリングしたもの
Shade3D側で小物としてのアセット(ゲーム機含む)、建物、建具、
3DCoat側で和菓子やお皿、机(座卓)、のアセットをモデリングしました。
Shade3D側
以下はShade3D(Ver.17 Standard)でのキャプチャです。
アセットは1つ1つを1ファイルに保存しています。
レンダリングは「DOKI for Shade3D(OSPRay)」( http://www.ft-lab.ne.jp/shade3d/DOKI/ )を使用しています。
これにより、PBRマテリアルの表現を確認してます。
OmniverseにはUSD形式で持って行くため、「USD Exporter for Shade3D」( https://github.com/ft-lab/Shade3D_USDExporter )プラグインを使用しました。
このプラグインはOmniverseのOmniPBRに対応しています。
そのため、Shade3DでのDOKI for Shade3Dでのレンダリング結果のほぼそのままをOmniverseで再現できます。
また、建物自体もShade3Dでモデリングしました。
ただし、USDでエクスポートしてOmniverseに渡したのは建物の壁や床/天井などで、
建具は別のアセットとして分けてモデリングし、Omniverse上で配置しました。
以下は実際にエクスポートした建物です。建具はここでは入れていません。
なお、コンテストは期間が約1カ月であったため(実質の作業時間は2週間ほど)、
ある程度スキップする必要がありました。
そのため、玄関、和室、廊下廻りのみのモデリングとして、外壁も省いています。
内装のみです。
以下はOmniverse上での建具の配置テストです。
3Dペイント
Shade3Dでモデリングしたアセットはいったんfbxでエクスポートし、
Substance Painterで3Dペイントでテクスチャを作成しています。
一部はSubstance Designerでタイリングテクスチャを作成しました。
Substance Painterで作成したテクスチャを再びShade3Dにインポートしてレンダリング確認後、
USDでエクスポートしました。
3DCoat側
和菓子は法線マップによる凸凹があるため、3DCoatでスカルプトしました。
また、机(座卓)やお皿もテクスチャ込みで3DCoatを使用してます。
これは3DCoat内のModeling機能を参加させておきたかったため。
以下は煎餅。
お皿。
机(座卓)。
3DCoatからはUSD形式の出力はできないため、fbx形式で出力しOmniverse側でUSDにコンバートしてからインポートしました。
和菓子はOmniverse上でセットとして、お皿の上にお菓子類を配置してUSDに保存しています。
テレビのゲーム画面
ファミコンの解像度である横256ドット×240ライン(TVの表示範囲に入るのは上下から8ドットずつ差し引いた224ライン)を作成するため、
ゲーム画面はドット絵で描いてます。
ドット絵作成はEDGE( https://takabosoft.com/edge )を使用しました。
EDGEで16×16ピクセルで1キャラ分を作成。
これは実際のファミコンのキャラクタデザインと同じで、タイル状に並べてパックしてます。
これを1枚のpngとして出力。
このタイルを使い、Affinity Photoでゲーム画面として並べていきました。
Omniverse Createでのアセットの配置
Shade3Dで作成した建物をOmniverse Createに読み込み、これに対して建具や個々のアセットを配置していきました。
一部のマテリアル(外のブロック塀、土塀、カセット、テレビのスクリーン)は、Material Graphを使用しています。
他、一部スクリプトで作業を効率化した部分もあります。
シーンは全体のルートとなるUSDから、参照(Reference)として階層化して構成しています。
このコンテストの作品作りを通して様々なツールを使用し、Omniverseのいろいろな機能を使い、勉強になりました。
Tipsがいろいろありますので、これらは追々ブログで記載していければと思っています。