関連ブログ
- [UE4][UE5]開発環境の容量を少しでも減らす 2024.08.14UE
- [UE5] PushModel型のReplicationを使い、ネットワーク最適化を図る 2024.05.29UE
- [UE5]マテリアルでメッシュをスケールする方法 2024.01.17UE
CATEGORY
2017.08.02UE4UE/ C++
ブループリントを使用してる方ではあればこのような少し変わったピンを見たことがあるのではないでしょうか?
[GetInputAnalogKeyState]
指定のキー(またボタン)のアナログ値を返す関数
[HasTag]
TagContainerの中に指定のタグが含まれてるかを判定する関数
例に上げたものはそれぞれ[FKey][FGameplayTag]という構造体で定義されてるものですが、普通に作成しただけでは画像のようなピンは表示されないのですが
少しだけC++を使用することで専用ピンが作ることが可能なので今回はそれの紹介をしたいと思います。まずは[FKey]のようなクリックされたら選択できる候補がリスト上に表示されるようにしてみたいと思います。
それでは早速実装してみたいと思います。
まずはピンをカスタマイズするとき使用される構造体をRunTimeモジュールで定義します。
今回は例としてuint8の変数1つを所持した構造体を定義しました。
もちろんこれを使用してもピンは普通の構造体と変わりません。
ピンの編集にはSGraphPin(Engine\Source\Editor\GraphEditor\Public\SGraphPin.h)というクラス継承することで専用のウィジェットを作成することができます
ただしエディタ時のみに使用するクラスなので、プロジェクトのエディタモジュール側に定義します。
ちなみにエディタモジュールの実装に関してはこちら(https://historia.co.jp/archives/3097)の記事を参考にして下さい。
次に先程作成したピンをFGraphPanelPinFactory(Engine\Source\Editor\UnrealEd\Public\EdGraphUtilities.h)を継承したクラスで生成するようにします。
これもエディタ時のみに使用するクラスなので、プロジェクトのエディタモジュール側に定義します。
そして作成したクラスをモジュールで登録をします。
以上で終了になります。では実際に見てみましょう
今回はBPノードピンの編集を行いましたが変数化した場合など詳細画面で表示された値は以前のままByteとして表示されてしまいます。また機会があれば今度は詳細画面で表示される値を編集してみたいと思います。
最後まで読んでいただきありがとうございました。