■<2>物理ベースアセットの作成とシーンリニアワークフロー
物理ベースシェーダをSubstance Designerで用意
シーンリニアワークフローに関しては本誌を含め、様々なメディアで説明されているのでここでは詳しい解説は省略するが、ごく簡単に言うと「リニア環境下で作成したものを同じカラースペース内で、同じガンマ曲線を使って出力すること」となる。ここでポイントとなるのはシェーダだ。物理ベースレンダラはプリレンダーではすでにかなり普及しているのだが、ゲームエンジンではどうなのか?ここ数年リアルタイム環境下でも物理ベースシェーダは使われるようになっており、実装されているケースは多い。
今回の場合はSubstance Designerから出力したシェーダを使い、シェーダが共有されている。「基本的には物理ベースのアセットでないと正しいライティング反応をしませんよね。アルベドカラーチャートでは色、光の色をはがして、フラットライティングを入れます。その後にプロシージャルベースのものだったら理論値の、物理ベースの設定を入れたものを使ってアセットを構築します。そうすると複数のソフトを使っても、物理ベースのレンダリング上であればどれも同じルックになるはずです」と尾小山氏。今回は尾小山氏とwiseが取り組んできた検証の様子も交えながら紹介しよう。
・物理ベースのアセット作成
実制作の前にwiseにて行われたテストの様子。実際に存在する電話機を写真撮影してリファレンスとし、それを今回のワークフロー上でSubstance Designer、V-Ray、Unreal Engineの3つを使って再現を試みている。「僕らが言う物理ベースというのは、光を変えたときにその光に対して正しく反応しているように見える、というのが必要十分条件です」と尾小山氏。結果としてこの4枚の画を見たとき、ほぼ同じ結果が生まれており、どのようなレンダラであっても「物理ベースであれば同様の結果が得られる」という答えが出ている。前述のようにSubstance Designerがハブとして機能しているところがポイントだ。
・神獣の作成
神獣はプリレンダー用とリアルタイム用のモデルはほぼ同じものを使っている。ただ、リグは直接もち込むことができないため、ボーンにアニメーションをベイクして読み込んでいる。このあたりはゲームと同様の使い方だ。このほかリアルタイム用とプリレンダーでの大きなちがいとして「シミュレーション系のデータはもっていけない」とのこと。というのもゲームエンジン自体が基本的に「シミュレーションはリアルタイムで」という前提があるためで、必要があればそれ専用に組み直さなければならない。今回の場合、神獣の背中にあるチェーンの動きは Unreal Engine内でコリジョンさせているが、布の動きはバーテックスにアニメーションをベイクした状態でUnreal Engineにもち込んでいる。
・アセット制作のパイプライン
このパイプラインが今回の作戦のキモとなっている。Substance Designerをハブとして、そこからV-Ray、Unreal Engine、その他の物理ベースのレンダラ(それがリアルタイムであれ、プリレンダーであれ)にデータが受け渡される。「複数環境の中で成立するということが重要なんです。物理ベースであれば、他のレンダラでも同じ結果になるはず。光のシミュレーションは同様のアルゴリズムで行なっているから、プリレンダーは同様の結果が得られると想定される。そのためハイブリッド化もできるんです」(尾小山氏)