Language:
Page Info
Skill Level:
Engine Version:

3.ブループリントの設定

必要なマテリアルとレンダー ターゲットを作成し設定したら、次はブループリントを新規作成し、流体サーフェス アクタとして機能するように設定します。

ブループリントの作成と変数の設定

  1. コンテンツ ブラウザを右クリックして、[Create Basic Asset (基本アセットの作成)] セクションの [Blueprint Class] オプションをクリックします。

    HFP_BP_Setup_00.png

  2. [Pick Parent Class] ウィンドウから [Actor] を選択して、「WaterSurface_BP」と名前を付けます。

    FS_Water_BP_Creation.png

  3. WaterSurface_BP をダブルクリックして開き、以下の変数型を追加します。

    FS_Var_Creation.png

  4. 次に、変数を次のデフォルト値に設定します。

    変数名

    変数型

    デフォルト値

    WaterMeshAsset

    Static Mesh

    SM_Plane1000_512 (コンテンツ サンプル マップに含まれる)

    WaterMaterial

    Material Interface

    WaterMaterial

    HeightState

    Integer

    0

    TimeAccumulator

    Float

    0.0

    WaterMID

    MaterialInstanceDynamic

    N/A

    UpdateRate

    Float

    60.0

    TouchingCharacter

    Actor

    N/A

    LastTouchingActorPosition

    Vector

    0, 0, 0

    InteractionDistance

    Float

    1.0

    MouseDown

    Bool

    Un-Checked

ブループリント関数の作成と設定

必要な変数でブループリントを作成したら、次は関数を作成します。次のセクションでは、この 3 つの関数と設定方法について説明します。

必ずブループリントをコンパイルおよび保存して使えるようにしてください。

  • GetHeightRT 関数は、後で使用できるように、レンダー ターゲットの高さを取得および格納します。この関数を作成する前に、次のデータを使って関数の入力と出力を設定してください。

    • 入力:

      • 名前:インデックス

      • 型:整数

    • 出力:

      • 名前:Heigh RT

      • 型:Texture Render Target 2D

      Copy Node Graph

      FS_Get_Height_Function.png

      3 のレンダー ターゲットのいずれかを Return ノードの Height RT 入力に必ず追加してください。

  • GetLastHeight は、最後に取得した流体サーフェスの高さを後で使うために格納しておく関数です。この関数を作成する前に、次のデータを使って関数の入力と出力を設定してください。

    • 入力:

      • 名前:CurrentHeightIndex

      • 型:整数

      • 名前:NumFramesOld

      • 型:整数

    • 出力:

      • 名前:Heigh RT

      • 型:Texture Render Target 2D

      Copy Node Graph

      FS_Store_Last_Height.png

  • Trace From Camera は、Height Field Painter ブループリントで使用したトレースと同じものです。この関数は、入力と出力の変数を設定する必要はありません。

    Copy Node Graph

    HFP_BP_Setup_05.png

ブループリントのコンストラクション グラフの設定

コンストラクション グラフは、流体シミュレーションを正しく機能させるために必要なスタティックメッシュとマテリアルの両方を作成し設定します。次のセクションでは、この 3 つの関数と設定方法について説明します。

必ずブループリントをコンパイルおよび保存して使えるようにしてください。

  • コンストラクション グラフを使って、流体サーフェスに必要なスタティックメッシュを作成し、その後で動的マテリアル インスタンスを作成して水面をシミュレーションするスタティックメッシュに適用します。

    Copy Node Graph

    FS_Con_Script.png

ブループリントのイベント グラフの設定

イベントグラフは、このエフェクトを正しく追加および機能させるために必要なすべてが入っている場所です。次のセクションでは、イベント グラフの各セクションの機能、および最終的なブループリントをワールドに配置した場合の影響について説明します。

ブループリントは必ずコンパイルおよび保存して、使える状態にしておきましょう。

  • Clear all render targets of data は、ブループリントの初回実行時にアーティファクトの発生を確実に防ぐために、含まれている可能性のある以前のデータのレンダー ターゲットをすべてクリアします。

    Copy Node Graph

    FS_Clear_All_RT.png

    この 3 つのレンダー ターゲットのそれぞれを Return ノードの *Height RT** 入力に必ず追加してください。

  • Check to see if Left Mouse Button is held down は、ユーザーがマウスの左ボタンを押しているかどうかを確認します。ユーザーがマウスの左ボタンを押していれば MouseDown が true、そうでなければ false に設定されます。

    Copy Node Graph

    FS_Check_If_Left_Mouse.png

  • Take Damage Force セクションは、衝撃イベントをシミュレートしているサーフェスをオフセットできるように、ヒットされたスタティックメッシュの位置を見つけて ForceSplat マテリアルをそのセクションに適用します。

    Copy Node Graph

    FS_Take_Damage_Force.png

  • Begin & End Overlap セクションは、プレイヤーがワールドに配置された流体サーフェス アクタに触れているかどうかを確認するセクションです。

    Copy Node Graph

    FS_Begin_End_Overlap.png

  • Shoot when mouse is down は、ユーザーがマウスの左ボタンを押しているかどうかをティックごとに確認します。マウスの左ボタンが押されていると、Trace From Camera 関数が呼び出されて、カメラの中心からワールドの中へトレースします。

    Copy Node Graph

    FS_Shoot_When_Mouse_Is_Down.png

  • Touching Character Force は、プレイヤーが流体サーフェスに触れた時に、流体サーフェス アクタに適用しているフォースの適用と更新を行います。

    Copy Node Graph

    FS_Touching_Char_FOrce.png

  • Fixed timestep, so fluid speed is framerate independent は、流体サーフェスを伝わる波動伝搬がプロジェクトのフレームレートに結びついていない独自のフレームレートをもっていることを確認します。基本的に、流体サーフェスの波の速度は、レベル内で起きていることの影響を受けなくなります。

    Copy Node Graph

    FS_Fixed_Time_Step.png

  • Cycle Active heightfield は、流体サーフェスに発射物が当たる、または接触した時に、サーフェスがより動的に見えるようにするために、サーフェスに対してさまざまなレンダー ターゲットを周期的に繰り返します。

    Copy Node Graph

    FS_Cycle_Active_Heightfield.png

  • Apply fluid surface simulation kernel, which propagates waves は、流体サーフェス アクタ上で波動伝搬処理をすることで、時間経過と共に波が消えていくように見せます。

    Copy Node Graph

    FS_ApplySim.png

  • Compute Surface Normal は、さざ波をもっと見やすくするための法線を流体のサーフェスに適用します。

    Copy Node Graph

    FS_Compute_Surface_Normal.png

ブループリントの設定はこれで完了です。次のセクションでは、UE4 で使用する設定について説明します。