実績 UI の高度なグループ化とフィルタリング
Last updated on February 4, 2026
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services (AGS) の実績サービスを使用すると、実績設定にタグを追加できます。タグは実績をグループ化するために使用され、ゲーム内で表示したい実績をフィルタリングするために使用できます。構造化され整理されたグループで実績を提示することで、プレイヤーに最高の体験を提供でき、関連情報を簡単に確認できます。
このガイドでは、グループ化とフィルタリングのために実績タグを利用する方法を学習します。
目標
- 実績設定に関する理解と概要を提供する。
- AccelByte SDK を使用して実績を利用する方法を説明する。
前提条件
- AGS 管理ポータルへのアクセス。
- AccelByte Unreal、Unity、または Extend SDK(以下の権限を含む):
- Client ID
- Client Secret
- AccelByte Achievement API ドキュメントへのアクセス。
- 必要な情報を設定するための AccelByte Statistics API へのアクセス(オプション)。
タグで実績をグループ化する
実績設定でタグを利用して実績をグループ化できます。以下の手順に従って、実績設定にタグを追加できます:
-
管理ポータルのサイドバーで、Engagement > Achievements > Configuration に移動します。

-
Achievements ページで、Add Achievement ボタンをクリックします。
-
Add New Achievements フォームで、Code、Name、Description、Icons などの必要な情報を入力します。
-
グループ化の場合、Tag フィールドに実績に関連するコンテキスト情報を追加できます。これらのタグは、実績設定をクエリするために使用されます。
備考最大5つのタグを追加できます。
-
Add をクリックします。新しい実績が実績リストに追加されます。
タグで実績をフィルタリングする
既に設定した特定のタグを持つ関連する名前空間内のすべての実績のリストを取得するには、次の関数を使用できます:
- Unreal Engine
- Unity
- C# Extend SDK
- Go Extend SDK
- Java Extend SDK
- Python Extend SDK
FString Language = FString("en");
EAccelByteAchievementListSortBy SortBy = EAccelByteAchievementListSortBy::LISTORDER;
int32 Offset = 0;
int32 Limit = 50;
FString TagQuery = TEXT("kill,totalwin")
bool bIsGlobal = false;
auto ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();
auto AchievementApi = ApiClient->GetAchievementApi().Pin();
AchievementApi->QueryAchievements(Language, SortBy, THandler<FAccelByteModelsPaginatedPublicAchievement>::CreateLambda([](const FAccelByteModelsPaginatedPublicAchievement& Result)
{
// Do something if QueryAchievements is successful
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if QueryAchievements has an error
}), Offset, Limit, TagQuery, bIsGlobal);
var achievement = AccelByteSDK.GetClientRegistry().GetApi().GetAchievement();
var language = "EN";
// tag1|tag2
var tagBuilder = TagQueryBuilder.Start("tag1");
tagBuilder.Or("tag2");
achievement.Query(language, AchievementSortBy.NONE, result =>
{
// Do something
}, tagBuilder: tagBuilder);
string language = "en";
string[] tags = new[] { "kill", "totalwin" };
var response = sdk.Achievement.Achievements.PublicListAchievementsOp
.SetOffset(0)
.SetLimit(50)
.SetSortBy(PublicListAchievementsSortBy.ListOrder)
.SetTags(new List<string>(tags))
.Execute(sdk.Namespace, language);
if (response != null)
{
//do something when success
}
achievementsService := &achievement.AchievementsService{
Client: factory.NewAchievementClient(&repository.ConfigRepositoryImpl{}),
TokenRepository: &repository.TokenRepositoryImpl{},
}
namespace := "mygame"
language := "en"
limit := int64(50)
offset := int64(0)
sortBy := achievements.AdminListAchievementsListOrderConstant
tags := []string{"kill","totalwin"}
input := &achievements.PublicListAchievementsParams{
Namespace: namespace,
Limit: &limit,
Offset: &offset,
SortBy: &sortBy,
Language: language,
Tags: tags,
}
result, err := achievementsService.PublicListAchievementsShort(input)
final Achievements achievementsWrapper = new Achievements(sdk);
String language = "en";
List<String> tags = Arrays.asList("kill","totalwin");
ModelsPublicAchievementsResponse response;
try {
response = achievementsWrapper.publicListAchievements(PublicListAchievements.builder()
.namespace("<namespace>")
.language(language)
.offset(0)
.limit(50)
.sortBy(PublicListAchievements.SortBy.ListOrder.toString())
.tags(tags)
.build());
} catch (Exception e) {
// Do something when failed
return;
}
if (response == null) {
// Null response from server
} else {
// Do something when success
}
import accelbyte_py_sdk.api.achievement as achievement_service
import accelbyte_py_sdk.api.achievement.models as achievement_models
result, error = achievement_service.public_list_achievements(
limit=50,
offset=0,
sort_by="listOrder",
tags="kill|totalwin",
language="en",
namespace=namespace, # optional, gets the value from the global instance if unspecified
sdk=sdk, # optional, gets the global instance if unspecified
)
if error:
exit(error)