Epic Games Japanが主催するUnreal Engineの公式大型勉強会「UNREAL FEST EXTREME 2022 SUMMER」が、5月23日(月)から5月28日(土)にかけて開催された。本稿では初日に行われたグラフィニカとIndie-us Gamesによる講演「グラフィニカのUE4映像制作のツール・ワークフローの裏側紹介!」の模様をレポートする。
●イベント概要
「UNREAL FEST EXTREME 2022 SUMMER」
日時:5月23日(月)~28日(土)
場所:オンライン配信
www.unrealengine.com/ja/events/unreal-fest-extreme-2022-summer
レンダリングキュー自動作成ツールで作業時間を短縮
グラフィニカはアニメーション制作会社だがゲーム案件も多数手がけており、近年ではゲームのカットシーンを担当することも増えてきた。2021年5月にはIndie-us Gamesと業務提携。互いの技術的知見をもち寄り、将来的には共同制作による作品のリリースを視野に入れながら人的交流を深めている。
今回の講演ではレンダリングワークフロー、レンダーエレメンツ、Unreal Engine 4(以下、UE4)開発ツール説明、コマ落としの4つに分けて、映像制作者が欲しいと思える便利な機能を紹介した。
レンダリングワークフローでは、少ない操作で大量のカットを素早くレンダリングする方法について解説された。UE4にはムービーレンダーキューと呼ばれるレンダリングに適した機能が備わっているが、実際の現場では何百カットもレンダリングをしなければならない。そこでレンダリングキュー自動作成ツールを開発。作業時間の短縮を実現した。
さらにバッチレンダリングツールのStartUpRenderも開発し、複数カットの一括レンダリングも可能に。作業者が常に画面に張り付いていなければならないという状況から解き放った。
MayaなどのDCCツールからアニメーションのFBXを出力する際にメタデータを含んだ情報を一緒に出力する。それをUE4のレンダーキュー作成ツールで解析し、その情報を基にキューを自動設定してレンダーキューデータを保存。最後にWindowsでStartUpRenderを起ち上げてレンダーキューデータを選択し、一括レンダリングを開始するというながれとなる。
まず任意のシーケンサーを選択すると、シーケンサーの名前から使用レベルとJSONファイルが選択される。そしてキューの作成をクリックすると、JSONファイルに記載されている情報を基に、レンダリング解像度や出力先が設定されたレンダーキューがつくられる。実質的に、シーケンサーの選択とキューの作成ボタンのクリックの2ステップでレンダーキューが作成できる。
StartUpRenderはレンダリングキューを大量に作成した後に一括でレンダリングするための機能だ。UE4をコマンドラインから起ち上げてレンダリングを走らせるため、ツール自体はWindowsで実行している。
こちらも作業は、レンダリングしたいキューを複数選択してスタートレンダーボタンを押すだけ。これによって毎カットのレンダリングに作業時間を取られることなく、円滑な制作ができるようになった。
様々な条件でレンダーエレメンツが出力可能に
続いてのレンダーエレメンツは、コンポジットに必要な素材を柔軟に出力できるようにすることを目的とした。一般的なUE4からのレンダーエレメンツの出力のみでコンポジットを進めていると、ポストプロセスマテリアルだけでは対応できない素材が必要になってしまうからだ。
様々な要素のレンダリングに対応するため、アセットやキャラ単位でマスクなどの処理を加える場合は、カスタムデプスを設定。それに反応するようなマテリアルのしくみをつくった。
プロジェクト設定でカスタム深度ステンシルパスをEnabled with Stencilする。これによってカスタムデプスをステンシルIDとして機能させることができる。次にIDを設定したいアセットを選択して、Render Custom Depth PassにON。Custom Depth Stencil Valueに任意の値を設定する。
次にマスク用のマテリアルを作成。コンポジットでカラーマスクとして利用できる。
シーンの状態を変更する場合、一般的にはムービーレンダーキューの設定にコンソールコマンドを入れる方法があり、ライトを消したり、アンチエイリアスの設定を変えたりなど、コンソールコマンドだけでもアイデア次第で様々な状態に変更できる。
この機能だけでも充分に優れているが、今回はコンソールコマンドを一箇所で管理したいという意図があり、またマテリアルパラメータの変更などコンソールコマンドだけでは対応しきれない箇所も存在した。そのためコンソールコマンドなどを記述したゲームモードのBlueprintを用意して、ゲームオーバーライドで設定するという方法を選んだ。
UE4開発ツールやコマ落とし機能も
後半はグラフィニカの映像制作で実際に使用したツールを紹介。これらのツール類は「簡単に使えることがコンセプト」であり、いずれも少ない手順で操作できるように開発された。
これらのツールはBlueprintと一部にPythonを利用した。Blueprintだけでつくる強みとしては、特別な設定を行わずにファイルをコピーするだけで使用できる点があり、アセットのマテリアルの自動設定、配置されたアセットのコントロール、シーケンサーの操作など、多彩な機能が実現できた。
細かな部分にはPythonが活かされている。例えばPosipeツールでは位置情報をファイルに保存できるが、Blueprintにはファイル保存ダイアログを開く機能が存在しない。そのためPythonのTkinterモジュールを用いて保存ダイアログを開き、ファイルを保存するようにした。
上記のツール群はシンプルながら効果は大きく、ワークフローの効率化や、ほかのDCCツールとの連携強化に繋がり、Pythonを組み合わせることで応用範囲が広がることがわかった。
先ほど解説したレンダーキュー作成ツールや、StartUpRender機能の作業風景も紹介。StartUpRender機能によって独自レンダリングモードができたため、その機能を利用してネットワークレンダリングも可能に。多数のカットの一括レンダリングや分散レンダリングもでき、単純なコマンドだが応用範囲が広い。
ネットワークレンダリングにはBackburnerを使用した。ただコマンドがシンプルなのでBackburner以外のソフトも使うことができ、例えばJenkinsなどを導入すればネットワークレンダリングを完全に自動化できるだろうと展望を語った。
注意点としてはレンダリングマシンの構成を一致させる必要があるとコメント。CPUやビデオカードが一致していないとレンダリング結果も一致しないことが今後の課題になるだろう。
最後に紹介したコマ落とし機能は、「コマ落とし」という特殊なアニメ技法について、グラフィニカと話し合いの上でIndie-us Gamesが開発した、アニメーションのコマ数を秒間8コマや12コマなどの任意の値に落として、ストップモーションのような効果を与える機能である。
これらの作業によって、シーケンサー上でPIEもしくはシミュレートで実行するとコマが落ちたアニメーションが生成される。課題については、After Effectsのタイムリマップの情報を出力し、その中間ファイルとして読み取ることで半自動化を実現すること、さらにEditor Utility Blueprintをつくることで、より確認しやすい環境を構築することを挙げた。
講演動画
講演資料
関連記事
・インディーゲーム『くちなしアンプル』『マヨナカ・ガラン』シナリオの魅力を引き出すビジュアルをUE4で表現~UNREAL FEST EXTREME 2022 SUMMER(1)
TEXT_高橋克則 / Katsunori Takahashi
EDIT_小村仁美 / Hitomi Komura(CGWORLD)、山田桃子 / Momoko Yamada