Radial Motion Blur の使用

マテリアルでの Radial Motion Blur の設定方法について説明します。

前提トピック

このページは以下のトピックへの知識があることを前提にしています。まず以下のトピックの内容についてご確認をお願いします。

PerBoneMotionBlurTopicImage-1.png

Unreal Engine がサポートする標準の モーション ブラー は、オブジェクト サーフェイス上の点がフレームからフレームに直線を移動し、ブラー エフェクトを適用するために前のフレーム時の位置情報を使用します。

ある位置から別の位置へ移動するオブジェクトに便利な機能です。ただしこの方法は、高速で回転する車輪など、1 フレームのうちに 180 度回転するオブジェクトに適用すると視覚的なエラーが生じます。この場合、モーション ブラーは車輪の周囲を移動するのではなく、車輪の片側のポイントからまっすぐに車輪の反対側へ移動することを前提としています。

この問題を解決するために、特別な Radial Motion Blur マテリアルが開発されました。このマテリアルを使用して、線形モーション ブラーの代わりに放射状モーション ブラーを適用することで、オブジェクトが高速で回転しているかのように見せることができます。下の例は、回転するオブジェクトに標準のモーション ブラーを適用した結果 (左) と Radial Motion Blur マテリアルを使用した場合 (右) です。

Motion Blur comparison

この操作ガイドでは、独自のプロジェクトに放射状モーション ブラー マテリアルを設定する手順を説明します。

必要なセットアップ

この操作ガイドでは、機能別 サンプル プロジェクトのアセットを使用します。サンプル プロジェクトを準備していない場合は、 Epic Games ランチャーの [Learn] タブからダウンロードとインストールをしてください。

クリックしてフルサイズで表示。

機能別サンプル プロジェクトでは、Materials_Advanced マップに放射状モーション ブラーの作業用サンプルが入っています。

基本の M_RadialMotionBlur マテリアルをゼロから作成することは複雑なため、このチュートリアルのスコープではありません。基本のマテリアル グラフを確認したい場合は、コンテンツ ブラウザの [Content] > [Example Content] > [Materials] > [Materials] でマテリアル アセットを見つけることができます。

Radial Motion Blur base Material location

このチュートリアルでは、コンテンツ ブラウザの以下のアセットを使用して Radial Motion Blur サンプルをリビルドします。

  • SM_Wheel - スタティックメッシュ

  • SM_Wheel_Blur - スタティックメッシュ

  • MI_RadialMotionBlur - マテリアル インスタンス

ただし、独自のプロジェクトで Radia Motion Blur を使用するには、コンテンツ ブラウザMI_RadialMotionBlur マテリアル インスタンスを選び、右クリックして、コンテキスト メニューで [Asset Actions] から [Migrate] オプションを選択するだけです。

Migrate Assets tool

Migrate Assets ツールは、MI_RadialMotionBlur と基本の RadialMotionBlur マテリアルの両方を自動的にマイグレーションに含みます。このトピックに関する詳細は、「アセットを移行する」のガイドを参照してください。

ステップ

  1. Unreal Editor が終了していることを確認します。プロジェクト フォルダの中の「Config」フォルダへ移動し、DefaultEngine.ini を探します。

    画像を拡大するにはクリックします。

  2. テキスト エディタで DefaultEngine.ini を開いて、[/Script/Engine.RendererSettings] セクションに r.CustomDepth=3 を追加します。

    Custom Depth 3

  3. Radial Motion Blur は スタティックメッシュ が 2 つ必要です。1 つは Radial Motion Blur に適用し、もう 1 つはダミーとして Radial Motion Blur をカバーします。ダミー メッシュは、ぼやけるオブジェクトだけをカバーするのではなく、回転中に動く空間も完全にカバーする必要があります。また、元となるオブジェクトのジオメトリと交差することなく、できる限りしっかりと動きで広がる空間をラップする必要があります。

    画像を拡大するにはクリックします。

    上の画像の例では、ブラーを適用するメッシュには標準のメッシュが適用されています。一方「ダミー」メッシュは黄色いワイヤーフレームで視覚化されたハルを回りにラップしています。スタティックメッシュにぴったりフィットし、スタティックメッシュを貫通していないことに注意してください。独自のメッシュを使用することも可能ですが、この操作ガイドでは SM_WheelSM_Wheel_Blur を使用します。保存場所は機能別プロジェクトの [Content] > [ExampleContent] > [Materials] > [Meshes] です。

    SM_Wheel Static Mesh location

  4. SM_Wheel をシーンにドラッグして新しい StaticMeshActor を作成します。

    画像を拡大するにはクリックします。

  5. このスタティックメッシュ アクタの [Details (詳細)] パネルで [Create Blueprint from Selection (選択からブループリントを作成)] ボタンをクリックして、このアクタから派生させた新しいブループリントを作成します。ブループリントに BP_StaticMesh_MotionBlur という名前を付けて「ブループリント」フォルダに保存します。スタティックメッシュは新しい Blueprint Actor タイプに変換され、ブループリント エディタ が自動的に開きます。

    画像を拡大するにはクリックします。

  6. ブループリント エディタ 内で Components Panel を確認し、メッシュの StaticMeshComponent を選択します。[Details (詳細)] パネルの [Rendering][Advanced (詳細設定)] セクションを展開します。[Render Custom Depth Pass (カスタム深度パスをレンダリング)] を True に設定し、[Custom Depth Stencil Value (カスタム深度ステンシル値)] を 5 に設定します。

    クリックしてフルサイズで表示。

  7. [Components] パネルの [Add Component (コンポーネントを追加)] ボタンをクリックします。ドロップダウン リストから [Static Mesh (スタティックメッシュ)] を選択して、新しいスタティックメッシュ コンポーネントをベースとなるメッシュの子として追加します。このメッシュに「MotionBlur Mesh」という名前を付けます。

    Add Static Mesh component

  8. [Details (詳細)] パネルで MotionBlur メッシュのスタティックメッシュを SM_Wheel_Blur に設定します。ベース メッシュにぴったり合うように x 軸で 90° 回転させます。[Materials] セクションに MI_RadialMotionBlur マテリアル インスタンスがあることを確認します。

    クリックしてフルサイズで表示。

結果

MI_RadialMotionBlur マテリアル インスタンスが適用されると、ベース メッシュは高速で回転しているかのように表示されます。以下の画像は、通常の固定状態のスタティックメッシュ (左) とベース メッシュを囲むダミー メッシュに RadialMotionBlur を適用したメッシュです。

MotionBlur_FinalResult.png

ベース メッシュやアクタを回転させなくても、このエフェクトが得られることに注目してください。RadialMotionBlur マテリアルだけでオブジェクトが回転している幻想を作りだすことができます。このエフェクトは、MI_RadialMotionBlur マテリアル インスタンスの中にある Angle パラメータと RimRadius パラメータを使って調節することができます。

Radial Blur aterial Instance

次の 2 つの画像は、[Angle] マテリアル入力と [RimRadius] マテリアル入力で調整して得られるラジアル ブラーの視覚効果を示しています。

この Angle パラメータは、ラジアル ブラーの強度の制御に使用します。高くするほど、オブジェクトが高速で回転しているように見えます。

RimRadius パラメータは、ラジアル ブラーによって付与されるぼかしを制限したいときに使用します。RimRadius の設定は、ラジアル ブラーに使用されるメッシュの半径と一致するようにしてください。

作成した新しいアクタ タイプを再利用して、Radial Motion Blur エフェクトを使用するすべてのオブジェクトの種類を作成することができます。ベース メッシュとダミー メッシュの両方に使用したスタティックメッシュを変更して、必ずダミー メッシュが RadialMotionBlur マテリアルのマテリアル インスタンスを使用するようにしてください。ダミー メッシュが回転した時にベース メッシュによってスウィープされる領域に可能な限りぴったりフィットする必要があることを忘れないでください。

Radial Motion Blur on multiple shapes

別のオブジェクトに異なる設定をするには、RadialMotionBlur マテリアルを元に新しいマテリアル インスタンスを作成し、好きな設定をします。マテリアル インスタンスの作成方法の詳細については、「マテリアル インスタンスの作成および使用方法」を参照してください。

タグ
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル