9月23日(木)から9月25日(日)で開催された「あにつく2022オンライン」より、Day1の「グラフィニカの開発したツールで紹介する、UE4でのカットシーン制作ワークフロー」のイベント内容をご紹介します。
本ページは【後編】からのご紹介となりますので、【前編】をまだご覧いただけていない方は、こちらから先にご覧ください。当日のウェビナー映像も公開しておりますので、合わせてご覧ください。
PPMの改良機能とツール群紹介
本項目は、グラフィニカでDAを務めている酒井氏から説明します。グラフィニカで開発したPPMパラ掛けツールの機能や改良点を簡単に紹介していきます。
内容としては、
・PPMパラ掛けツールについて
・UI操作・プリセット機能の改善
・複数のパラ掛けの対応
・ステンシルIDでのマスク分け
の順番に説明していきます。
パラ掛けとは
まずは、パラ掛けについて簡単に説明します。パラ掛けとはポストプロセスの一種で、画面に対してグラデーションなどのエフェクトを適用させて、さまざまな効果を与えることを指します。効果には乗算やスクリーンなどの種類があり、アニメ映像ではよく使われている表現技法の1つです。
UEでパラ掛けを行う際は、カメラに設定できるポストプロセスマテリアルを利用します。また、シーケンサー上ではパラメーターを操作するためにパラメーターコレクショントラックを利用します。本セミナーを通して出てきたPPMとは、ポストプロセスマテリアルの略のことです。
大量にある各カットごとのパラ掛けを手動で設定するのは大変な作業です。そこで、UE上で簡単にパラ掛けするためにPPMパラ掛けツールが作られました。ツール上では、パラ掛け用マテリアルの追加や適用、色の調整、グラデーション具合、合成モードなどを簡単にコントロールできます。
このパラ掛けツールは1年半ほど前から開発していて、以前のバージョンでは「使いづらい」や「出来ないことが多い」などの意見が多々あったため、機能の改良を行いました。UI操作の改善の他に、要望のあった機能の追加なども行っています。
UI操作・プリセット機能の改善
旧バージョンでは、ツール側の更新にボタン操作が必要で煩わしいものでした。新しいバージョンでは、簡単操作でパラメーターの変更ができるようになっています。
カラーピッカーを例に説明します。以前のバージョンでは、カラーピッカーを開くたびにUIが縦に引き延ばされていたため、使いにくさが目立っていました。新しいバージョンではポップアップするように変更し、UI表示の不具合を改善しました。
以前のバージョンでは、1つのデータテーブルを利用してプリセットを管理していました。しかし、そのせいで複数人で作業した際にコンフリクトが起きてしまっていたため、プリセットが1つずつ保存されるように改善しました。
追加機能の1つには、複数レイヤーのパラ掛けに対応したこともあります。以前のバージョンでは1カット1レイヤーのパラ掛けしか設定できませんでしたが、複数のマテリアルを操作パネルで簡単に設定できるように改良しました。
複数のパラ掛けができるようになったため、ステンシルIDを利用したマスク機能も追加しました。これにより、パラ掛けする部分の使い分けができるようになりました。
ステンシルIDでのマスク分け
ステンシルIDとは、UE上で設定できるカスタムデプスマスクのことで、アクターごとに設定できます。DCCツールでいうオブジェクトに設定するマスクIDのようなものです。
上の画像は、実際の作業の様子です。選択したオブジェクトにステンシルIDを設定することで、パラ掛けの部分の使い分けができるようになっています。
これらの改良機能によって使いづらさが改善され、操作性が向上しました。また、複数のパラ掛けが可能になるなど、絵作りの範囲が以前よりも広がりました。
しかしながら、ツール自体にはまだ改善の余地があります。
例えば、現状ではPhotoshopで行っているような画面上でのピックをしたグラデーションのコントロールができません。そのため、グラデーションの調整はパラメーターからしか行うことができません。将来的には、画面を直接操作できるような仕組み作りを計画しています。
PPM以外の開発ツールの紹介
PPMパラ掛けツール以外にもグラフィニカで開発したツールがいくつかあります。ここでは、それらの開発したツールを紹介します。
SceneConv
SceneConvはMayaシーンからABCやFBX、カメラ情報、シーン情報などを書き出すツールです。簡単操作でシーンから書き出すことができ、書き出す際にはベイクなどの必要な処理も自動で行います。
SequenceMaker
SequenceMakerでは、その名の通りシーケンスをボタン1つで作成できます。読み込みたいFBXやABCファイルを選ぶとシーケンスを作成し、読み込んだFBXなどを自動でバインドします。
QueueMaker
UEのエディターでは、レンダリングするためにレンダーキューを作成する必要があります。キューを作成するのは手間がかかるため、簡単にキューを作成できるツールを開発しました。シーケンスを選び、作成ボタンを押すだけで簡単にキューを作成できます。
作成される各キューには解像度やレンダリングフォルダ、ファイル名などが自動で設定されるため、作業者が1つずつ入力する必要はありません。
SetSeqFrame
こちらのSetSeqFrameは、シーケンスエディター上に並べられたシーケンスのタイムレンジを設定したり、並んだシーケンスを整理するツールです。選択したシーケンスのフレームの長さを変えることができます。また、シーケンス内部のサブシーケンス類のフレームも自動で変更されます。
次に、シーケンスをきれいに並べ替える機能です。エディター上で重なってしまったシーケンスを重ならないように並び替えています。標準実装にはこのような機能がなかったため、シーケンスの調整に役立たせることができました。
CAMpe
CAMpeは、カメラコンポーネントの設定を簡単にコピー&ペーストできるツールです。さらに、カメラコンポーネント設定をプリセットとして保存できます。また、プリセットを保存し、カメラに適用する機能もあります。カメラ設定を他で再利用したい場合などで役立ちます。
CineCameraFbxExporter
CineCameraFbxExporterは、名前の通りシーケンストラック内にあるシネカメラアクターをすべてFBXで出力するツールです。UEで調整したカメラワークをDCCツールで再利用するために作られました。手作業でも書き出せますが、1つずつ書き出すのは大変なためこのツールが役に立っています。
Posipe
Posipeは大量のアセットをMayaからUEのエディターにコピペ感覚で配置するツールです。また、反対にUEのエディターからMayaにもコピペできます。グラフィニカのワークフローでは、キャラクターやカメラワークに合わせてMayaとUEのエディターの両方でカットごとにアセット位置を調整する必要があり、このツールが使用されました。
大量に配置された岩や小石などのアセットを選択してコピーします。UEのエディター上ではペーストするだけでアセットを配置できます。また、UEのエディターで位置を調整したアセットをMayaにコピーすることもできます。
その他、UEのエディター上でフォリッジ配置された草木などのアセットもコピーが可能で、そのままMayaに配置できます。相互にアセットの位置を調整できるため、カット毎のアセット位置の微調整に役立ちます。
StartUpRender機能とアプリ
こちらは、UEのエディターを直接操作することなくレンダリングを行えるアプリです。UEのエディターの操作をせずにレンダリングができるため、エディター操作の知識がなくても扱えます。
使用方法も簡単で、キューの一覧からレンダリングしたいキューを選び、レンダリングを開始するだけです。こちらのツールは、バックバーナーを利用したネットワークレンダリングにも対応しています。
実際のネットワークレンダリングの様子です。アプリの使用方法はさきほどと変わらず、レンダリングしたいものを選んでサブミットするだけです。アプリ側でレンダリングジョブをサブミットすると、レンダーサーバー側でレンダリングが開始されます。今回は1台だけですが、複数台あれば分散レンダリングも可能です。
また、ネットワークレンダリングはバックバーナー以外のソフトウェアでもできます。例えば、ジェンキンズ(Jenkins)でもネットワークレンダリングすることができます。
現職PPMを使用したポスト処理
本項目は、グラフィニカで映像演出をしている堀内氏から説明します。前項目で紹介したパラ掛けツールをアーティスト側で実際に使用しながら、ポストフィニッシュする流れを説明していきます。
まずはフレアをつけていきます。カメラを選択して、PPMをカメラに追加を選び、カメラにポストプロセスマテリアルを適用します。続いてトラック作成を選択して、PPMのパラメーターを制御するトラックをシーケンサーに作成します。これで準備ができたため、パラメーターを調整していきます。
こちらはフレアのため、光源に合わせて位置を調整します。方向プリセットがあるため、おおまかに方向を合わせてから微調整していきます。次に、演算方法を選択します。今回はスクリーン合成のため、背景に合わせて色を調整してなじませていきます。
続いて、2つ目のパラ設定をしていきます。こちらでは、パラで暗い部分を占めてより強調していきます。画面全体の効果は設定できたため、続いてはキャラクターだけにパラ掛けをしていきます。パラに適用したいキャラのステンシルIDを設定することで、そのキャラだけに効果を掛けることができます。さきほどと同じようにパラメーターを調整していきますが、今回は足元を暗くしてなじませていきます。
一通り作業が終わった後にPPMの設定をそれぞれプリセットとして保存し、同じシーンの他のカットに再利用していきます。また、カットによってはカメラワークに合わせてキーフレームアニメーションを付けることも必要になります。
ゲームエンジンでの作業は全てのカットがプロジェクトに存在しているため、前後のカットを確認しながら作業を進めることができます。従来のコンポジットの工程と比べて、より効率的に作業できます。
処理を加える前と加えた後を比較した画像です。今回は効果が分かりやすいようにパラ掛けしか行っていませんが、従来のポストプロセスを併用するとよりリッチな絵作りをすることができます。最終調整時にパラ掛けを行うことで、ライティングのコスト軽減につながる可能性もあります。
アニメ制作においてのゲームエンジン
今回の作業を通じて、改めてアニメ制作現場でのゲームエンジンの使用にあたってのポイントを考えていきます。ポイントとして挙げられるのは以下の3点です。
・ゲームエンジンの概念や機能の正しい理解
・3D空間での作業
・バージョン管理
これまでの作画やセルルックでのやり方とは異なっているため、これらを理解できていないとゲームエンジンのメリットを活かしきれず、むしろ作業効率やクオリティを下げることになりかねません。
それらを踏まえると、以下の4点の要素も大事になります。
・従来のワークフローや作業分担の見直し
・画面を構成する要素の分解
・作業分担の再定義
・力業に頼らない
これらを押さえておくことが、アニメ制作でゲームエンジンをうまく使うためのポイントになると考えています。
Q&A
Q1.このワークフローは、基本的にはUEでコンポジットする想定のワークフローでしょうか?
はい、その通りです。ゲームのカットシーンでも最低限使える仕様として設計しました。プリレンダリングにおいては、Alembicやコンポジットを外部ソフトで行うための複数のレンダリングエレメントの出力にも対応しています。映像用途においては、よりカスタマイズができるワークフローとして調整を行っています。
Q2.レンダリングツールは、社外のネットワークでもネットワークレンダリングができるのでしょうか?
社外のネットワークでも可能ですが、外部サービスのレンダーファームなどの場合は現在は対応していません。