シングルテクスチャとUDKの能力で開発者は何が出来るでしょう?才能あふれる3DアーティストTor Frick がインタビューで自身の巧妙な技術について語っています。フリック氏のクールなsci-fi研究環境を今すぐダウンロード!
現代の ゲームプラットフォーム に完璧なパフォーマンスを繰り広げる3D環境を最適化することは至難の業です。複数のプロジェクトでUV、テクスチャ、シェーダーの最適化に取り組んだ後、Tor Frick氏は自身のスキルを試すべく、最低限のメモリ使用による環境作成に挑戦しました。その際の彼の課題は、現実味のあるシーンを256x512テクスチャで作成することでした。
「通常はこのようなシーンではたくさんのテクスチャが使用されます。そして、テクスチャ一つのサイズは256x512よりも大きくメモリ使用量も多くなります。環境作成で使用しない全てのメモリがキャラクターまたはその他の制作に使用出来ることを意味します。このようなメモリのセーブ方法は、見栄えの良いコンテンツを搭載したモバイルデバイスの出荷に特に有益です。」とFrick氏は説明しています。
「テクスチャサイズを最小限に抑え、drawコール回数を削減するために複数のマテリアル使用を回避しました。この課題によってテクスチャを別方向から捉える他あり得ませんでした。通常のテクスチャ使用をせずに、テクスチャとシェーダーを最大限に活用し、普段は考慮もしないUV使用が自身の利点だと考えるように努めました。」
実験とイタレーション
トライアルアンドエラーを表現するために、Frick氏は基本的なルールを再考し、シーンに多様性を持たせるためにアプローチ法を変更したと言います。
例としてFrick氏が挙げたのが、「メタルやプラスチック間、ペイントされた部分のマスクとして法線マップの青チャンネルを使用しました。これによってスペキュラや色などでの区別が可能となりました。後にプロップにつき1色、それに加えてメタルではとても限定的だと気づきました。最初に浮かんだアイデアがが、メッシュにカットを入れて多色の見解を持つポリゴンにその他のマテリアルを使用することでした。でも追加のdrawコールを必要とするので、それは避けたいと思いました。」
「解決法としてUVセットの一つを考え付きました。あるUVグリッド上にある色を変更したいポリゴンを側面へ移動しました。そしてカラーチャンネルのある小さなエリアをマテリアルエディタでスケールアップしたマスクとして使用しました。」
「これがテクスチャとシェーダーに全てを適合させるために考えた、異なる見方のごく一例です。既に持ち合わせたデータ、例えばUV座標やテクスチャチャンネルで多様性を持たせる方法を考案するのは課題に取り組む上での好例と言えます。テクスチャをただ単にディフューズや法線として捉えるのではなく、シーンを良く見せるために必要なもの、最小限のデータでどうやって遂行するかを考えました。(例えばデカールのマスクではなくシェーダーで解決する等)」
「コンテンツ作成作業をこんなにも自由に満喫したのはUDKが初めてです。マテリアルエディタからポストプロセス、レンダリングまでアートパイプラインが持つパワーに少し圧倒されてしまいました。マテリアルエディタを以前見たことはありますが、シェーダー一つにしても秘めている可能性に気づきませんでした。」
過度な最適化は貴重な時間の無駄となるため、新たなアプローチ法を試したいとFrick氏は語りました。 「今回と同様の技術をもとにゲームを作成することは絶対にありません。でもここで習った教訓を活かして更なる知識を積み重ねることは今後ゲームアートを作成する際に役立つと思います。新たなトリックも覚えましたし、初めての壁にもぶち当たり、本当にたくさんのことを学びました。」
「最適化に時間を割くポイントは、最大の利益が受けられるかがポイントです。おそらくこれまでに同じテクスチャを使用して50のアセットを構築しましたが、新たなアセットの構築のパイプラインが断然に早くなります。新しいテクスチャをインポートしたりシェーダーを新規に作成する必要がありません。新しいトリックや最適化を仕掛けると、一つではなく50全てのアセットに影響が出ます。」
「メガバイトひとつひとつの積み重ねには相当の価値があります。毎日の仕事にも大変な価値があります。例えばそのままの見た目を保ちつつ、常にテクスチャの数千キロバイトを環境から使えるようにすると、メインキャラクターに使用できるテクスチャサイズが、1Kから2Kへと飛躍します。」
UDKの貢献度
Frick氏がUDKを選んだ理由に、多様な技術の使用を可能にする気安さと簡便さを挙げています。
「私のものつくりの観点から、UDKは与えてくれるオプションが一番多かったのです。UDKが保持する巨大なコミュニティと情報量も大きなプラス要素となりました。行き詰った時も、ウェブを検索すれば直ぐにヒントが得られましたし、フォーラムの投稿も助けとなりました。」
「これまでに多くの異なるエンジンを使用してきましたが、UDKを使用する一番の利点をあげるなら、素晴らしいパイプラインと使い勝手の良さそして多目的に対応する能力です。」
Frick氏は特別な環境下におけるUE3のシェーダーインスタンスシステムを称讃しました。「システムには大変助けられました。大々的なバリエーションの作成、変数の微調整、シェーダーの機能コントロールに使用しました。」
「ほぼすべてのシーンは同じシェーダーがベースとなっているため、テクスチャのイタレーション後もマスターシェーダーの更新や変更が簡単に出来ました。最終的に全てをロックするまで、定期的にテクスチャの並びを変更していたのでテクスチャチャンネルとUVセットに対し完全コントロールが出来るのは大変助かりました。シーンへの全テクスチャ移動や、手動で変更などを加えることなく全てのインスタンスをトランスファー出来たのです。シェーダーインスタンスのリアルタイム更新が直接ビューポートで出来ることによって、イタレーション時間をかなり削減することが出来ました。」
「全体的なインターフェースも、アクセスが良く探し物が簡単に見つかる点が素晴らしいです。マテリアルエディタも最高です。機能で遊んでみるのがとても楽しいです。マテリアルインスタンスシステムも私のお気に入りの一つです。マテリアルインスタンスには多くを頼る癖があります。例えばこのシーンです。キズメットとマチネはありがたいことにとても使いやすかったです。これら機能のおかげで多くを考えることなくシーンへの光沢や動き、インタラクションの追加が容易に出来ました。」
「UE3のコミュニティサイズもまた大きな助けとなりました。開発者によるクレバーな解決法を読むことによってインスピレーションを得られます。自分がまだ知らない巧妙なトリックを学べるので現在でもたくさんのチュートリアルを見ています。UDNも手放すことの出来ない素晴らしいリソースで、問題解決や最新エンジン情報の収集に活用しています。」
「Epicとの連携も最高でした。信じられないほどの学びが得られ、以前は考えもしなかったアート作成の新たな側面に気づかせてもらいました。アートプロセス全体にこれほどまでのコントロールを得られることによって、イマジネーションが広がりました」
EpicもまたFrick氏の功績に感銘を受け、彼のプロジェクトを支援しました。作成されたさまざまなコンテンツをUnreal Engineコミュニティで共有してくださったことにお礼申し上げます。