[Omniverse] Retroverseコンテストに応募しました

  • by

ここ一か月ほど、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で16x16ピクセルで1キャラ分を作成。
これは実際のファミコンのキャラクタデザインと同じで、タイル状に並べてパックしてます。

これを1枚のpngとして出力。

このタイルを使い、Affinity Photoでゲーム画面として並べていきました。

Omniverse Createでのアセットの配置

Shade3Dで作成した建物をOmniverse Createに読み込み、これに対して建具や個々のアセットを配置していきました。

一部のマテリアル(外のブロック塀、土塀、カセット、テレビのスクリーン)は、Material Graphを使用しています。
他、一部スクリプトで作業を効率化した部分もあります。

シーンは全体のルートとなるUSDから、参照(Reference)として階層化して構成しています。

このコンテストの作品作りを通して様々なツールを使用し、Omniverseのいろいろな機能を使い、勉強になりました。
Tipsがいろいろありますので、これらは追々ブログで記載していければと思っています。