メインコンテンツまでスキップ

コンテンツ閲覧のための高度なフィルターを設定する

Last updated on September 30, 2026

注釈:本資料はAI技術を用いて翻訳されています。

概要​

開発者による公式コンテンツ、あるいはプレイヤーによるユーザー生成コンテンツ (UGC) など、多くのコンテンツが作成される中で、コンテンツの閲覧は困難で時間のかかる作業になりがちです。AccelByte Gaming Services (AGS) では、プレイヤーが自分のニーズに合わせてコンテンツを選択・フィルタリングできる仕組みを提供しており、これによりプレイヤーは自分の個性、好み、スタイルを反映したコンテンツを選ぶことができます。

このガイドでは、コンテンツにタグ、タイプ、サブタイプを設定する方法と、それらを使ってゲームクライアントからコンテンツをフィルタリングする方法について説明します。

browsing content sample image 01 browsing content sample image 02

目標​

このガイドの目標は、以下の方法を説明することです。

  • 事前定義されたタグ、タイプ、サブタイプを設定する。
  • コンテンツにタグ、タイプ、サブタイプを追加する。
  • コンテンツフィルタリングを実装する。

前提条件​

以下へのアクセスが必要です。

AGS CLI の手順に従うには、AGS CLI をインストールし、これらの機能にアクセスできるアカウントでサインインしてください。詳しくは、インストールとサインイン を参照してください。なお、例では Bash シェルを使用しています。

コンテンツのタグ、タイプ、サブタイプを設定する​

UGC の分類に使用するタイプとタグを作成できます。例えば、車のカスタムデザインでは、タイプとしてVehicle、サブタイプとしてBodyやWheelsを設定できます。タグにはCar、Vehicle、Bodyなどを含めることができます。

事前定義されたタグを設定する​

  1. ゲームの名前空間で、Online > UGC > Tags に移動します。

  2. Tags ページで、+ New Tag ボタンをクリックします。

    New Tag button

  3. Add New Tag フォームで、新しいタグの名前を入力し、Add をクリックします。

    Add New Tag form

    新しいタグがタグリストに追加されます。

    Tags list

事前定義されたタイプを設定する​

  1. ゲームの名前空間で、Online > UGC > Types に移動します。

  2. Types ページで、+ New Type ボタンをクリックします。

    New Type button

  3. Add New Type フォームで、新しいタイプの名前を入力し、Add をクリックします。新しいタイプがリストに追加されます。

    Add New Type form

  4. タイプの Action メニューにある View をクリックして、サブタイプを追加することもできます。

事前定義されたサブタイプを設定する​

  1. ゲームの名前空間で、Online > UGC > Types に移動します。Types ページが表示されます。

  2. タイプのリストから、サブタイプを追加するタイプを見つけ、その横にある View オプションをクリックします。

    Types list

  3. タイプの詳細ページで、+ New Subtype ボタンをクリックします。

    New Subtype button

  4. Add New Subtype フォームで、新しいサブタイプの名前を入力し、Add をクリックします。

    Add New Subtype form

    新しい Subtype がリストに追加されます。

    Subtypes list

コンテンツのタグ、タイプ、サブタイプを更新する​

  1. Admin Portal のサイドバーで、Online > UGC > UGC Lookup に移動します。

  2. UGC Lookup ページでは、コンテンツ名、ID、タイプ、サブタイプ、タグ、共有コード、ユーザー ID を使ってコンテンツを検索できます。

  3. 検索結果から、更新するコンテンツを見つけて開きます。

    Contents search results

  4. コンテンツの詳細ページで、以下のようにコンテンツを更新できます。

    • タイプとサブタイプを変更するには、Type または Subtype フィールドの横にある編集(鉛筆)アイコンをクリックします。

      Edit type or subtype

      Edit Type and Subtype フォームで、必要に応じて値を変更し、Add をクリックして変更を保存します。

      Edit type and subtype form

    • タグを追加するには、Tag フィールドの Add More オプションをクリックします。

      Add more tags

      Add New Tag フォームで、追加するタグを新規作成するか、事前定義されたタグリストから選択し、Save をクリックします。

      Add new tag

クライアント SDK を使ってコンテンツにタグ、タイプ、サブタイプを追加する​

以下の関数を使用すると、コンテンツの作成時にタグ、タイプ、サブタイプなどのプレイヤーコンテンツのメタデータを設定できます。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString ChannelId = "YourChannelId";
FAccelByteModelsCreateUGCRequestV2 UGCRequest = {};
UGCRequest.ContentType = "application/octet-stream";
UGCRequest.FileExtension = "bin";
UGCRequest.Name = "Custom sports body";
UGCRequest.Type = "Vehicle";
UGCRequest.SubType = "Body";
UGCRequest.Tags = { "Red", "Sporty"};

ApiClient->UGC.CreateV2Content(ChannelId, UGCRequest, THandler<FAccelByteModelsUGCCreateUGCResponseV2>::CreateLambda([](const FAccelByteModelsUGCCreateUGCResponseV2& Result)
{
// Do something if CreateV2Content succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if CreateV2Content fails
}));

以下の関数を使用すると、タグ、タイプ、サブタイプなどのプレイヤーコンテンツのメタデータを更新できます。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString ChannelId = "YourChannelId";
FString ContentId = "YourContentId";

FAccelByteModelsModifyUGCRequestV2 ModifyRequest = {};
ModifyRequest.Name = "Custom sports body";
ModifyRequest.Type = "Vehicle";
ModifyRequest.SubType = "Body";
ModifyRequest.Tags = { "Blue", "Sporty", "Body"};

ApiClient->UGC.ModifyV2Content(ChannelId, ContentId, ModifyRequest, THandler<FAccelByteModelsUGCModifyUGCResponseV2>::CreateLambda([](const FAccelByteModelsUGCModifyUGCResponseV2& Result)
{
// Do something if ModifyV2Content succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if ModifyV2Content fails
}));

コンテンツフィルタリング​

コンテンツフィルタリングとは、タグ、キーワード、タイプなどのさまざまな条件に基づいて UGC を検索、並べ替え、表示するプロセスです。コンテンツフィルタリングにより、プレイヤーは自分の好み、興味、スキルレベルに合った UGC を見つけて楽しむことができます。

コンテンツ名でコンテンツを検索する​

コンテンツ名を使ってコンテンツをフィルタリングするには、次の関数を使用します。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FAccelByteModelsUGCFilterRequest Filter = {};
Filter.Name = "Content Name";

ApiClient->UGC.SearchV2Contents(Filter,
THandler<FAccelByteModelsUGCGetPaginatedUGCContentsResponse>::CreateLambda([](const FAccelByteModelsUGCGetPaginatedUGCContentsResponse& Result)
{
// Do something if SearchV2Contents succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if SearchV2Contents fails
}));

タグを使ってコンテンツをフィルタリングする​

高度なタグフィルタリングでは、AND 演算子として &、OR 演算子として |、優先順位を示すために括弧 () を使用できます。例:

tags=sporty
tags=sporty&red
tags=sporty|red
tags=sporty&red|classic
tags=sporty&(red|classic)

論理演算子の優先順位は AND > OR です。そのため、括弧がない場合は AND 演算子が先に評価されます。

オペランドで使用できる文字: 英数字、アンダースコア _、ダッシュ -
演算子で使用できる文字: & | ( )
tags=sporty&red|classic は、tags=sporty,red|classic および tags=sporty&tags=red|classic と等価です。

タグを使ってコンテンツをフィルタリングするには、次の関数を使用します。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FAccelByteModelsUGCFilterRequest Filter = {};
Filter.Tags = { "Sporty", "Red|Classic" };

ApiClient->UGC.SearchV2Contents(Filter,
THandler<FAccelByteModelsUGCGetPaginatedUGCContentsResponse>::CreateLambda([](const FAccelByteModelsUGCGetPaginatedUGCContentsResponse& Result)
{
// Do something if SearchV2Contents succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if SearchV2Contents fails
}));

タイプとサブタイプを使ってコンテンツをフィルタリングする​

タイプとサブタイプを使ってコンテンツをフィルタリングするには、次の関数を使用します。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FAccelByteModelsUGCFilterRequest Filter = {};
Filter.Type = "Content Type";
Filter.SubType = "Content Subtype";

int32 Limit = 1000;
int32 Offset = 0;

EAccelByteUGCContentSortBy SortBy = EAccelByteUGCContentSortBy::CREATED_TIME_DESC;

ApiClient->UGC.SearchV2Contents(Filter,
THandler<FAccelByteModelsUGCGetPaginatedUGCContentsResponse>::CreateLambda([](const FAccelByteModelsUGCGetPaginatedUGCContentsResponse& Result)
{
// Do something if SearchV2Contents succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if SearchV2Contents fails
}), Limit, Offset, SortBy);

コンテンツを並べ替える​

並べ替えフィールドを使用して、ゲーム内で UGC を表示する方法をカスタマイズできます。AGS では、いいね数、作成日時、ダウンロード数、コンテンツ名に基づいてコンテンツリストを並べ替えることができます。

サポートされている並べ替えオプションは以下のとおりです。

  • createdTime、createdTime:desc、createdTime:asc
  • download、download:desc、download:asc
  • like、like:desc、like:asc
  • name、name:desc、name:asc

例えば、最新の UGC を確認したい場合は createdTime:desc を使用して作成日を降順で並べ替えることができます。最も人気のある UGC を確認したい場合は like:desc を使用していいね数を降順で並べ替えることができます。UGC をアルファベット順に表示したい場合は name:asc を使用して名前を昇順で並べ替えることができます。また、download を使用してダウンロード数で並べ替えることもできます。

コンテンツを並べ替えるには、次の関数を使用します。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FAccelByteModelsUGCFilterRequest Filter = {};
Filter.Name = "Content Name";
Filter.Type = "Content Type";
Filter.SubType = "Content Subtype";
Filter.Tags = { "Sporty", "Red|Brown" };

int32 Limit = 1000;
int32 Offset = 0;

EAccelByteUGCContentSortBy SortBy = EAccelByteUGCContentSortBy::CREATED_TIME_DESC;

ApiClient->UGC.SearchV2Contents(Filter,
THandler<FAccelByteModelsUGCGetPaginatedUGCContentsResponse>::CreateLambda([](const FAccelByteModelsUGCGetPaginatedUGCContentsResponse& Result)
{
// Do something if SearchV2Contents succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if SearchV2Contents fails
}), Limit, Offset, SortBy);