8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GameplayTagのすすめ

Last updated at Posted at 2025-12-06

この記事は Unreal Engine (UE) Advent Calendar 2025 のシリーズ1、6日目の記事です

なにか軽く、かつそれなりに役立つ話題ということで
今回は GameplayTag の活用について書きます

GameplayTag とは?

GameplayTagとは、階層構造を持つラベルとして機能するユーザー定義文字列 です

詳しくは 公式ドキュメント を見るのが手っ取り早いのですが

Character.Enemy.Zombie

Character.Enemy.Skeleton

のように、 . で区切った階層構造を表すことができます

Editor上では、画像のようになっており、UIから選択できる定数として扱えます

image.png

Gameplay Ability System で使うやつだ!
と思う人もいるかと思いますが、それだけにとどまらず、汎用的に使える便利なやつです

文字列定数は String とか Name を使いがちですが、GameplayTagなら定義済みから選ぶのでタイプミスもありません
個別にコメントも付けられるので、マジックナンバー化することも防げます

Switch ノードも存在します
image.png

さらに……「このタグどこで使ってたっけ……?」となった場合も、ReferenceViewerから検索することができます
これはStringやNameではできない明確な利点ですね
image.png

とても便利なので、文字列を渡してSwitchとかEqualで分岐させてる処理あたりから差し替えてみましょう
image.png

TypedGameplayTagsはいいぞ

GameplayTagは便利なのですが、BP内で変数として定義する場合、メタ情報を設定できないので、フィルタリングをすることができません
なので、Tagを選択する際に関係ない全てのタグから、欲しいタグを探す必要が出てきます

そこで、 Typed Gameplay Tags をおすすめします

記事時点でUE5.5のみの対応ですが、UE5.6以降でも使用できます

実のところ、これもC++は必要なのですが、実質5行ぐらい書けばその後がかなり快適になるので、チャレンジしてみましょう

USTRUCT(meta = (GameplayTagFilter = "Character.Enemy", PresentAsType = "GameplayTag"))
struct FMyEnemyTag : public FGameplayTag
{
	GENERATED_BODY()
	END_TYPED_TAG_DECL(FMyEnemyTag, TEXT("Character.Enemy"))
};

これをビルドすると、GameplayTag と同じように MyEnemyTag という型が選べるようになります
型として扱えるので、プログラム内での扱いがよりわかりやすくなるでしょう

image.png

あると便利なヘルパー関数

せっかくなので、もうちょっとだけ頑張って、簡単なヘルパー関数を用意しておくとよいです

この BlueprintAutoCast を設定した関数があれば、GameplayTagからTypedTagへ繋いだときに自動的に変換ノードが挟まるので、利便性がかなり向上します


UCLASS()
class TT_API MyTypedTagConvertLibrary : public UBlueprintFunctionLibrary
{
    GENERATED_BODY()

public:
    UFUNCTION(BlueprintPure, Category = "TypedTag", meta = (CompactNodeTitle = "To EnemyTag", BlueprintAutoCast))
    static FMyEnemyTag Conv_NativeTagToMyEnemyTag(FGameplayTag NativeTag)
    {
        return FMyEnemyTag::TryConvert(NativeTag);
    }
}

image.png

リンク

Gameplay Tagの概要

Fab: Typed Gameplay Tag

8
7
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
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?