Radial Motion Blur

Radial Motion Blur の設定方法について説明します。

Windows
MacOS
Linux

PerBoneMotionBlurTopicImage-1.png

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

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

MotionBlurError.png

この操作ガイドでは、独自のオブジェクトに Radial Motion Blur マテリアルを設定する手順を説明します。

必要なセットアップ

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

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

Radial Motion Blur の作業用サンプルがすでに設定されている Materials_Advanced でサンプルをビルドしていきます。ただし、独自のプロジェクトで Radia Motion Blur を使用するには、コンテンツ ブラウザMI_RadialMotionBlur マテリアル インスタンスを選び、右クリックして、[Asset Actions] から [Migrate Assets] オプションを選択するだけです。

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

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

手順

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

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

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

    RadialMotionBlur_iniSettings.png

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

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

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

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

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

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

  5. このスタティックメッシュ アクタの [Details (詳細)] パネルで Blueprint/Add Script をクリックして、このアクタに基づいて新しいブループリントを作成します。「BP_StaticMesh_MotionBlur」と名前を付けて「Content/Blueprints」フォルダに保存します。アクタは新しい 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」という名前を付けます。

    MotionBlur_AddMotionBlurMesh.png

  8. [Details (詳細)] パネルで MotionBlur メッシュのスタティックメッシュを SM_Wheel_Blur に設定します。ベース メッシュにぴったり合うように回転させて、MI_RadialMotionBlur マテリアルが適用していることを確認してください。

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

結果

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

MotionBlur_FinalResult.png

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

PerBoneMotionBlur_MISettings.jpg

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

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

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

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

MotionBlur_OtherShapes.png

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

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback