プラグインに新規グローバル シェーダーを作成する - ブループリントの設定

プラグイン コードでシェーダーをテストするためにブループリントを設定する

Windows
MacOS
Linux
On this page

プラグインの動作が検証されたので、このステップではブループリントを使ってグローバル シェーダーを呼び出す方法を説明します。

  1. 機能の仕方を確認するために コンテンツ ブラウザ を右クリックして、親クラスとして名前のついた アクタ のある新規 Blueprint クラス を作成します。

    HT_ShadersInPlugins_11.png

  2. 次に、「RT_00」 という名前の レンダー ターゲット および MAT_RT という名前のマテリアルを新規作成します。

    HT_ShadersInPlugins_12.png

  3. MAT_RT マテリアルを開いて、RT_00 レンダー ターゲットをマテリアル グラフに追加し、 Main Material ノードの Base Color 入力に接続し、[Apply][Save] ボタンを押します。

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

  4. 次に、DrawUVDisToRenderTarget ブループリントを開き、以下の変数とノードをイベントグラフに作成 / 追加します。

    変数

    デフォルト値

    K1

    1.0

    K2

    1.0

    inc

    1.0

    ノード

    デフォルト値

    W

    N/A

    S

    N/A

    Event Tick

    N/A

    Draw UVDisplacement to Render Target

    FOV、Aspect Ratio、Overscan Factor に 1 を入力します。

    Make FooCameraModel

    N/A

    Clear Render Target 2D

    N/A

    HT_ShadersInPlugins_14.png

  5. Draw UVDisplacement to Render Target が提供されたレンダー ターゲットをラップするか簡単に実演するには、Draw UVDisplacement to Render Target ノードの K1 入力と K2 入力に入力した値をボタンの押下で増加 / 減少できるようにブループリントを設定する必要があります。以下の画像に合わせてイベントグラフのノードを設定すれば完成です。

    Copy Node Graph

    ブループリント コードをブループリントに直接コピー&ペーストすることができます。

    レンダー ターゲットを必ず Output Render Target に入力してください。何も表示されなくなります。

  6. 必要なブループリント ロジックを設定したら、必ずブループリントを コンパイル および 保存 して、コンテンツ ブラウザ から レベル にブループリントをドラッグします。完了したら、ブループリントを選択し、[Input][Auto Receive Input][Disabled] から [Player 0] へ変更します。

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

  7. 次にフロアを選択し CTRL + W を押して複製し X 軸で -90 度 回転させます。マテリアル MAT_RT をそこにドラッグすれば Draw UVDisplacement to Render Target の効果を確認することができます。

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

  8. すべてを設定したら、[Play] ボタンを押して、[W] キーと [S] キーを押して Draw UVDisplacement to Render Target ノードに入力されたレンダー ターゲットを以下の動画のようにワープします。

最終結果

レンダー ターゲット内のコンテンツをブループリントから変形して、面白い形状に自由に作成できるようになりました。次は、新しいプラグインを作成、または既存のプラグインを編集してどんな種類の画像とエフェクトを作成することができるのか見てみましょう。

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