関連ブログ
- [UE4][UE5]開発環境の容量を少しでも減らす 2024.08.14UE
- [UE5] PushModel型のReplicationを使い、ネットワーク最適化を図る 2024.05.29UE
- [UE5]マテリアルでメッシュをスケールする方法 2024.01.17UE
CATEGORY
2020.09.24UE4UE/ C++
執筆バージョン: Unreal Engine 4.25 |
みなさんはGameplayTag(※1)は使用してますでしょうか?
以前のブログでもご紹介しました「GameplayAbilitySystem」(※2)でも大活躍のGameplayTag!
もちろん私が参加する開発中プロジェクトでも大活躍!は、してるのですが
あっちでGameplayTag!こっちもGameplayTag!と続け、いざGameplayTagを設定するかと編集しようとしたら
ずらーっと大量のGameplayTagが…もちろん検索も可能なので名前がわかっていれば絞り込みも可能ですが
設定するものがある程度決まっているなら項目は少ないほうがラクなのは確かです。
今回はC++を使用して予めGameplayTagのフィルタリングをし、必要なものだけ表示できるようにするための機能を紹介します。
では早速コードを…
変数、関数にそれぞれ
をすることで該当するGameplayTagのみが表示されるようになります。
次では実際にサンプルプロジェクトでGameplayTagのフィルタリングをしてみました
サンプルプロジェクトのタグには
がありそれぞれの子どもに「gameplayTag1 ~ 10」を追加しました。
「hogeTag」「hugaTag」がルートに存在しこれの「hugaTag」を指定するようにすることで ↓ のように
「hugaTag」と指定されたGameplayTagのみが表示されるようになりました。また、予め絞り込みができるだけでなく「hogeTag」と入力しても候補には表示されず指定することができなくなります。
これにより設定時のヒューマンエラーなども未然に防ぐことが可能になりますね。
この指定方法はGameplayTagの階層指定も対応しています。今度は「hogeTag.testA」と指定してみました。
のように指定した「hogeTag.testA」以下のGameplayTagのみ表示されるようになります。
「hogeTag」が表示されてませんがもちろん指定すれば親のタグ名もある状態で設定されます。
残念ながらBP上で追加した変数や関数のGameplayTag、GameplayTagContainerではフィルタリングする方法はなさそうでした。
頑張って検索検索!
今回の機能を使わなくとも特にGameplayTagを使用する分には何も問題ありません。
が、覚えておくといつか役に立つ日があるかもしれません。
少しでも皆様の開発に役立てばと思います。
ここまで読んでいただきありがとうございました。
※1:GameplayTagについての参考記事
https://docs.unrealengine.com/ja/Gameplay/Tags/index.html
https://qiita.com/advent-calendar/2019/ue4-gameplaytag
※2:ブログについて