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開発ツールの説明、Indie-us Gamesの中村氏がコマ落としを担当

    レンダリングワークフローでは、少ない操作で大量のカットを素早くレンダリングする方法について解説された。UE4にはムービーレンダーキューと呼ばれるレンダリングに適した機能が備わっているが、実際の現場では何百カットもレンダリングをしなければならない。そこでレンダリングキュー自動作成ツールを開発。作業時間の短縮を実現した。

    さらにバッチレンダリングツールのStartUpRenderも開発し、複数カットの一括レンダリングも可能に。作業者が常に画面に張り付いていなければならないという状況から解き放った。

    レンダリングキュー自動生成ツールのワークフロー

    MayaなどのDCCツールからアニメーションのFBXを出力する際にメタデータを含んだ情報を一緒に出力する。それをUE4のレンダーキュー作成ツールで解析し、その情報を基にキューを自動設定してレンダーキューデータを保存。最後にWindowsでStartUpRenderを起ち上げてレンダーキューデータを選択し、一括レンダリングを開始するというながれとなる。

    メタデータに書き込まれる情報の例。FBX出力時にJSONファイルを出力するツールを開発した。カット名、作業工程名、バージョンはMayaのデータ名から自動的に判断、レンダリング解像度はMayaで設定した値を参照している
    UE4のレンダーキュー作成ツール

    まず任意のシーケンサーを選択すると、シーケンサーの名前から使用レベルとJSONファイルが選択される。そしてキューの作成をクリックすると、JSONファイルに記載されている情報を基に、レンダリング解像度や出力先が設定されたレンダーキューがつくられる。実質的に、シーケンサーの選択とキューの作成ボタンのクリックの2ステップでレンダーキューが作成できる。

    StartUpRender

    StartUpRenderはレンダリングキューを大量に作成した後に一括でレンダリングするための機能だ。UE4をコマンドラインから起ち上げてレンダリングを走らせるため、ツール自体はWindowsで実行している。

    こちらも作業は、レンダリングしたいキューを複数選択してスタートレンダーボタンを押すだけ。これによって毎カットのレンダリングに作業時間を取られることなく、円滑な制作ができるようになった。

    様々な条件でレンダーエレメンツが出力可能に

    続いてのレンダーエレメンツは、コンポジットに必要な素材を柔軟に出力できるようにすることを目的とした。一般的なUE4からのレンダーエレメンツの出力のみでコンポジットを進めていると、ポストプロセスマテリアルだけでは対応できない素材が必要になってしまうからだ。

    上に並んでいるキャラマスク、背景のカラーマスク、エフェクトのみの素材は、アセット単位で情報をもったり、シーンの状態を変えたりしなければ再現できない

    様々な要素のレンダリングに対応するため、アセットやキャラ単位でマスクなどの処理を加える場合は、カスタムデプスを設定。それに反応するようなマテリアルのしくみをつくった。

    プロジェクト設定でカスタム深度ステンシルパスをEnabled with Stencilする。これによってカスタムデプスをステンシルIDとして機能させることができる。次にIDを設定したいアセットを選択して、Render Custom Depth PassにON。Custom Depth Stencil Valueに任意の値を設定する。

    手前のキャラは1、奥のキャラは2にCustom Depth Stencilを設定

    次にマスク用のマテリアルを作成。コンポジットでカラーマスクとして利用できる。

    同じマテリアルを流用して、反応するIDを変更したもの。RGBの3種では足りないマスクもシーンの状態を変えずに増やせる

    シーンの状態を変更する場合、一般的にはムービーレンダーキューの設定にコンソールコマンドを入れる方法があり、ライトを消したり、アンチエイリアスの設定を変えたりなど、コンソールコマンドだけでもアイデア次第で様々な状態に変更できる。

    この機能だけでも充分に優れているが、今回はコンソールコマンドを一箇所で管理したいという意図があり、またマテリアルパラメータの変更などコンソールコマンドだけでは対応しきれない箇所も存在した。そのためコンソールコマンドなどを記述したゲームモードのBlueprintを用意して、ゲームオーバーライドで設定するという方法を選んだ。

    エフェクトのみを出力するためのゲームモードの例。コンソールコマンドでライトや環境反射を強制的にOFFに。それだけではEmissiveが仕込まれているオブジェクトが表示されてしまうためパラメータを仕込み、BlueprintでEmissiveをオフにする制御も加えた

    UE4開発ツールやコマ落とし機能も

    後半はグラフィニカの映像制作で実際に使用したツールを紹介。これらのツール類は「簡単に使えることがコンセプト」であり、いずれも少ない手順で操作できるように開発された。

    これらのツールはBlueprintと一部にPythonを利用した。Blueprintだけでつくる強みとしては、特別な設定を行わずにファイルをコピーするだけで使用できる点があり、アセットのマテリアルの自動設定、配置されたアセットのコントロール、シーケンサーの操作など、多彩な機能が実現できた。

    細かな部分にはPythonが活かされている。例えばPosipeツールでは位置情報をファイルに保存できるが、Blueprintにはファイル保存ダイアログを開く機能が存在しない。そのためPythonのTkinterモジュールを用いて保存ダイアログを開き、ファイルを保存するようにした。

    上記のツール群はシンプルながら効果は大きく、ワークフローの効率化や、ほかのDCCツールとの連携強化に繋がり、Pythonを組み合わせることで応用範囲が広がることがわかった。

    先ほど解説したレンダーキュー作成ツールや、StartUpRender機能の作業風景も紹介。StartUpRender機能によって独自レンダリングモードができたため、その機能を利用してネットワークレンダリングも可能に。多数のカットの一括レンダリングや分散レンダリングもでき、単純なコマンドだが応用範囲が広い。

    ネットワークレンダリングにはBackburnerを使用した。ただコマンドがシンプルなのでBackburner以外のソフトも使うことができ、例えばJenkinsなどを導入すればネットワークレンダリングを完全に自動化できるだろうと展望を語った。

    注意点としてはレンダリングマシンの構成を一致させる必要があるとコメント。CPUやビデオカードが一致していないとレンダリング結果も一致しないことが今後の課題になるだろう。

    最後に紹介したコマ落とし機能は、「コマ落とし」という特殊なアニメ技法について、グラフィニカと話し合いの上でIndie-us Gamesが開発した、アニメーションのコマ数を秒間8コマや12コマなどの任意の値に落として、ストップモーションのような効果を与える機能である。

    Blueprint上での実装は非常にシンプル。Poseable Meshはまったく同じ動きをするアニメーションを簡単につくれる
    この作業によってPoseable Meshの側で更新タイミングを変更可能。1フレームあたりのアニメーションのコマ数を自由に変えられる
    そのまま再生してしまうと画面上に2つのSkeletal Meshが出現してしまうため、上記の設定への変更が必要になる

    これらの作業によって、シーケンサー上でPIEもしくはシミュレートで実行するとコマが落ちたアニメーションが生成される。課題については、After Effectsのタイムリマップの情報を出力し、その中間ファイルとして読み取ることで半自動化を実現すること、さらにEditor Utility Blueprintをつくることで、より確認しやすい環境を構築することを挙げた。

    講演動画

    講演資料

    関連記事

    インディーゲーム『くちなしアンプル』『マヨナカ・ガラン』シナリオの魅力を引き出すビジュアルをUE4で表現~UNREAL FEST EXTREME 2022 SUMMER(1)

    TEXT_高橋克則 / Katsunori Takahashi
    EDIT_小村仁美 / Hitomi Komura(CGWORLD)、山田桃子 / Momoko Yamada