整理のための目標のタグ付け
Last updated on February 4, 2026
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services (AGS) チャレンジでは、作成したチャレンジの目標にタグを追加して、プレイヤーがグループ化およびフィルタリングできるようにすることができます。この記事では、AGS Game SDK を使用した AGS チャレンジでの目標のタグ付け、グループ化、フィルタリングの使用方法について説明します。
この記事では、プレイヤーが達成する 20 個の目標を持つ常設固定チャレンジの実装例を使用します。目標はカテゴリに基づいてグループ化され、プレイヤーが目標に関する関連情報を簡単に見つけられるようにします。

前提条件
- AGS Game SDK が Unreal または Unity プロジェクトにインストールおよび設定されていること。
- AGS チャレンジを使用してチャレンジがプロジェクトに統合されていること。
目標にタグを追加する
AGS Admin Portal の目標設定でタグを使用して、次の手順で目標をグループ化できます。
- ゲームネームスペースの AGS Admin Portal で、Engagement > Challenge > Configuration に移動します。
- 目標を整理したいチャレンジを見つけ (新しいチャレンジを作成 することもできます)、その名前をクリックして設定に入ります。
- Goals and Rewards タブをクリックします。
- 名前をクリックして目標を編集するか、新しい目標を作成し、Tags フィールドに必要に応じてタグの名前を入力します。
- 追加したい各タグについて、キーボードの Enter を押します。
ゲームクライアントでタグによって目標をグループ化またはフィルタリングする
設定したタグを持つチャレンジのすべての目標のリストを取得するには、次のコードを使用できます。
- Unreal Engine
- Unity
const FString& ChallengeCode = TEXT("specific-challenge-code");
const TArray<FString> Tags = { "Hard", "Medium" };
AccelByteOnlineSubsystemPtr->GetApiClient()->Challenge.GetScheduledChallengeGoals(
ChallengeCode, THandler<FAccelByteModelsGetScheduledChallengeGoalsResponse>::CreateLambda([]
(const FAccelByteModelsGetScheduledChallengeGoalsResponse& Response)
{
for (auto ChallengeGoalData : Response.Data)
{
FString TagList{};
for (auto Tag : ChallengeGoalData.Tags)
{
if (!TagList.IsEmpty()) TagList.Append(TEXT(":"));
TagList.Append(Tag);
}
UE_LOG(LogTemp, Warning, TEXT("Goal Name: %s Description: %s IsActive: %hhd Tags: %s"),
*ChallengeGoalData.Name, *ChallengeGoalData.Description, ChallengeGoalData.IsActive, *TagList)
}
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
UE_LOG(LogTemp, Warning, TEXT("[%d]: %s"),
ErrorCode, *ErrorMessage);
}), Tags);
const string challengeCode = "specific-challenge-code";
string[] tags = { "Hard", "Medium" };
AccelByteSDK.GetClientRegistry().GetApi().GetChallenge().GetScheduledChallengeGoals(challengeCode, result =>
{
if (result.IsError)
{
// Things to do when Error happens
Debug.LogWarning($"Failed to GetChallengeGoals {result.Error.Code} : {result.Error.Message}");
return;
}
Debug.Log($"GetScheduledChallengeGoals Success");
foreach (var item in result.Value.Data)
{
string collectedTags = "";
foreach (var tag in item.Tags)
{
collectedTags += item.Tags + " ";
}
Debug.Log($"Goal Name: {item.Name} Description: {item.Description} IsActive: {item.IsActive} Tags : {collectedTags}");
}
, tags
});