6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Epic Games Japan #4Advent Calendar 2019

Day 12

[UE4] GeneralPurposeTweakを利用してエディターからシェーダーへ変数を渡す

Last updated at Posted at 2019-12-11

シェーダー開発を行う上で、エディターから設定した値をシェーダーに渡したいケースがあるかと思います。
しかし受け渡しのコードを書くとなるとエンジンビルドも必要になりますし、少し手間がかかります。
そんなときに、GeneralPurposeTweakというコンソールコマンドに値を渡すと、
コマンド入力した数値をシェーダー側で利用することが可能です。

GeneralPurposeTweakの設定方法

以下のようにアウトプットログでコマンドを実行するとfloatの数値を渡すことが可能です。
[ウィンドウ] > [デベロッパーツール] > [アウトプットログ] > **r.GeneralPurposeTweak [数値]**を入力
2019-12-05_18h35_51.png

Shaderからの利用方法

Shader側からは、View.GeneralPurposeTweakとして値を呼び出すことが可能です。
.usf内で以下のように分岐させることでデバッグなどを行うことが可能です。
2019-12-05_18h48_26.png

他のパラメーターを追加したい場合

独自のコンソールコマンドを追加したい場合は以下ドキュメントをご確認ください。
C++ のコンソール変数 | Unreal Engine ドキュメント
https://docs.unrealengine.com/ja/Programming/Development/Tools/ConsoleManager/index.html

さいごに

あくまで一時的な変数とすべきですが、開発時には非常に便利なので有効活用しましょう。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?