■スローモーション
まずは簡単なところからはじめてみます。DCCツールから編集ツールへ移行するプリレンダリングのワークフローでは、スローモーションのカットを作成する方法は大きく2種類に分けることができます。ひとつはサブフレームをたくさんレンダリングし編集時に再生速度を調整する方法。これはハイスピードカメラで撮影した素材と同じイメージです。もうひとつはそもそものアニメーションをスローで作成してしまう方法です。
どちらの手法も、スローの速度と尺が確定してからではさほど大きな問題にはなりませんが、トライ&エラーを重ねている段階では少なからず余分な作業が発生します。前者は必要なサブフレーム数以上に多くのフレームをレンダリングしてしまうかもしれませんし、後者はスローに切り替るタイミングを変えようとするとアニメーションの修正に手間がかかります。
シーケンサーでは Play Rate Track(fig01)を追加するだけで簡単に再生速度を変えることができます。Play Rateの数値を0~1.0でスロー、逆に1.0以上で早回しも可能です。fig02はPlay Rate Trackを使用したスローモーションのテストです。エフェクトもまとめてきれいにスローに切り替わっています。
fig01. Play Rate Trackの追加
fig02. 途中からスローに切り替わるカットのPlay Rate Trackグラフ
■画ブレ
DCCツールでアニメーションを付ける際にカメラの細かい振動まで付けておくのが最もシンプルな手法かと思います。しかし、ポスト処理のエフェクトに合わせて揺れを調整したい時など、後工程で揺れ具合やタイミングを決定したいこともあるかと思います。この場合プリレンダリングでは揺れ幅をカバーするひと回り大きなサイズでレンダリング画像を出力しておくのが定石です。シーケンサーを使用する場合、カメラアニメーションは揺れ無しの状態でFBX出力し、CameraShakeのブループリントを使用して揺れだけを後から追加することが可能です。完成に近い絵を見ながら揺れを調整することができます。 詳しい手順は下記参考サイトで詳しく解説されていますので確認してみてください。
参考:[UE4] シーケンサーでカメラにブレやアニメーションを加算するアセット historia Inc - 株式会社ヒストリア
fig03. 止めのカメラにBP_CameraShakeの揺れが加算された状態
fig04. CameraShakeのパラメータ
■SceneCapture2Dでトランジション
通常のカット切り替えであればレベルシーケンスを複数並べることでなんら問題なく可能です。また、ブラックアウトやホワイトアウトなど単色のフェードはFade Trackを使えば簡単です。ただし、クロスフェードやワイプなど、複数カメラの映像が同時に画面内に映り込むトランジションは自作する必要があります。ここで役立つのがSceneCapture2Dとポストプロセスマテリアル、そしてマテリアルパラメータコレクション(以下MPC)です。SceneCapture2Dでキャプチャした映像をRenderTargetアクターに格納し自由にマテリアルで扱うことができます。シーケンサーのタイムライン上で制御したい数値はMPCで設定します。MPCのパラメータはマテリアルグラフの外側からグローバルに値を扱うことが可能になります。
fig05、fig06はクロスフェード、ワイプ、スライドの3つのトランジションを作成したサンプルです。難点はカメラのアクターがCineCameraActorでなくSceneCapture2Dだということ。FBX出力したアニメーション期はインポートできますが通常のカメラと全く同じ扱いは出来なくなります。
参考:[Mini Tutorial] Camera Crossfade - Unreal Engine Forums
fig05. トランジションのポストプロセスマテリアルをシーケンサー上で制御
fig06. トランジションサンプルのマテリアルグラフ
トランジションの例ではポストプロセスマテリアルでしたが、通常のマテリアルに使用すればシーン内のモニターにリアルタイムに撮影結果を反映させることができます。ライブ演出を作成するときに大活躍しそうです。
fig07. キャプチャ結果をシーン内モニターにリアルタイムに反映
■ポスプロマテリアルの応用
映像の技法とは少し主旨が逸れますが、その他の2D的な画面効果も同じくポスプロマテリアルで再現してみます。使うものは同じくポスプロマテリアルとMPC、前回も使用したMedia Trackです。fig08~fig10はポストプロセスマテリアルでカットインを作成したサンプルです。稲妻の素材のみ連番画像ファイルで作成されておりMediaTrackでタイミングを同期しています。
マテリアル参考:UMGで必殺技とかのカットイン演出を作ってみる - Qiita
fig08. ポストプロセスマテリアルのカットイン
fig09. カットインサンプルのマテリアルグラフ①
fig10. カットインサンプルのマテリアルグラフ②
ポストプロセスマテリアルで作成したイメージの上に、3Dのキャラクターを配置したい場合はCustomDepth Stencilでマスクを作成します。fig11、fig12はポストプロセスマテリアルで効果背景を作成したサンプルです。マスクの縁のジャギーを抑えるためにBlendable LocationをBefore Tonemappingに変更しなければならないことに注意します。
CustomDepth Stencil参考:UE4 映像制作者向けTips - Let's Enjoy Unreal Engine
fig11. 効果背景の上にキャラクターだけを配置
fig12. 効果背景サンプルのマテリアルグラフ
今回いくつかの表現を試してみて、改めてリアルタイムレンダリングの快適さを感じました。特にスローモーションやシーン内モニターはDCCツール⇔2D編集ツール間で工程にひと手間必要なものだったためより一層メリットを感じられます。後半ご紹介したポストプロセスマテリアルも使い方次第ではかなり多くの表現が可能になります。MediaTrackなどメモリ消費の比較的大きなものはあまり多用すると負荷の原因となりますが、効果的に取り入れていきたい機能です。
---
ジェットスタジオは2001年に発足し現在まで、フルCGの映像を中心にアニメ・ゲーム・パチンコなど様々なコンテンツの3DCG制作を行ってきた会社です。詳細は公式HPやFacebookページをご覧ください。
(関連記事)
【連載】第1回:映像制作におけるUE4のためのキャラクターデータ構成(モデリング編)
【連載】第2回:映像制作におけるUE4のためのキャラクターデータ構成(リギング編)