Motion Vector をUnrealで使用してスローモーションを作る


こんにちは、篠島です。前回はMotion Vectorの出力の仕方を説明したが、今回はそのMotion Vectorを使ってUnreal内でスローモーションを作る方法を紹介します。

 

情報元のSideFXのリンクです。
https://sidefx.com/tutorials/create-motion-vectors-for-time-warping-image-sequences/

今回のサンプルファイル(uasset)です。
MotionVector.zip

 

まずはテクスチャを用意してUnrealに読み込みます。
前回紹介したモーションベクターと、GameDev Texture Sheetsでレンダリングしたカラー用のテクスチャです。

 

Unreal上でMotion VectorテクスチャのCompression SettingsをVector Displacement(RGBA8)にします。

 

そしてシェーダーが下の様になります。一番重要なのがFlipBook_MotionVectorsノードです。このノードによってフレーム間のテクスチャを補完します。これにパラメーターのノードをくっつけています。

 

マテリアルのBlend ModeはTranslucentにします。

 

マテリアルのインスタンスを作成して実際にパラメーターを調整します。
Time Multiplierによって再生速度を変更します。
Motion Vector Intensityで、モーションベクターテクスチャでの効果を調整できるのですが、ここは1/24(0.04166….)を指定すると良いそうです。

 

最終結果です。
左が普通の速度で、右側がスローモーションです。GIFのせいでちょっとカクカクしてますが実際はかなりスムーズです。

 

 

いろいろ試しましたが、Motion Vector用のテクスチャが無くてもFlipBook_MotionVectorsによって綺麗にスローモーションができました。Motion Vectorが無いとフレーム間をゆっくりブレンドしているだけなのですが、意外とかなりスムーズです。