バリデーション用の不適切表現フィルターを有効化する
Last updated on April 7, 2026
注釈:本資料はAI技術を用いて翻訳されています。
はじめに
この記事では、スタジオ namespace で不適切表現フィルターを有効化してプレイヤーの表示名を検証する方法を説明します。
備考
- 不適切表現フィルター機能は現在、プレイヤーの表示名のみを検証します。
前提条件
- デフォルトの不適切表現データベースを使用するには、デフォルトの不適切表現フィルターデータベースに不適切表現単語を追加していることを確認してください。デフォルト不適切表現データベースを管理する を参照してください。
- 独自の不適切表現フィルターチェックをカスタマイズするには、指定された不適切表現フィルター Extend アプリを作成・設定しているか、独自のカスタムサーバーを設定していることを確認してください。カスタム不適切表現フィルターを作成・管理する を参照してください。
表示名バリデーション用の不適切表現フィルターを有効化する
プレイヤーの表示名を検証するための不適切表現フィルターを有効化するには、以下の 2 つの方法で設定できます。
Profanity Management メニューから有効化する
- AGS Admin Portal で、スタジオ namespace に移動します。
- サイドバーメニューで、Tools & Utilities > Profanity Management > Profanity Database に移動します。
- 設定ページで List of Services セクションに移動します。
- 不適切表現フィルターをサポートするサービスが表示されます。
- status トグルをオンにします。
- Profanity filter トグルを有効化した後、Target database ドロップダウンから使用するデータベースフィルターを選択します。不適切表現フィルターのデータベースを選択できます。
- Default: デフォルト不適切表現データベースを管理する を参照してください。
- Custom: カスタムフィルターを作成する を参照してください。

Input Validation メニューから有効化する
- AGS Admin Portal で、スタジオ namespace に移動します。
- サイドバーで、Identity & Access > Account & Profile Setup > Input Validation に移動します。
- Display Name セクションで、Profanity filter トグルをオンにします。
- Profanity filter トグルを有効化した後、Profanity Filter Database オプションから使用するデータベースフィルターを選択します。不適切表現フィルターのデータベースを選択できます。
- Default AGS database: デフォルト不適切表現データベースを管理する を参照してください。
- Custom: カスタムフィルターを作成する を参照してください。

- Save をクリックします。
クライアント SDK で不適切表現フィルターを実装する
ユーザー検証エンドポイントは、Unity SDK と Unreal SDK の両方の User クラスに含まれています。
ユーザー入力を検証する
- Unreal SDK
- Unreal OSS
- Unity SDK
このエンドポイントを有効にするには、FUserInputValidationRequest モデルをパラメーター関数に指定します。AGS には DisplayName や UniqueDisplayName などのいくつかのバリデーションがあります。レスポンスが有効な場合は true を返します。そうでない場合は、エラーメッセージとともに false を返します。
FUserInputValidationRequest UserInputValidationRequest{};
UserInputValidationRequest.DisplayName = "badwordsexample";
FUserInputValidationResponse UserInputValidationResponse{};
auto ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient(TEXT("YOUR_KEY"));
auto UserApi = ApiClient->GetUserApi().Pin();
UserApi->ValidateUserInput(UserInputValidationRequest, THandler<FUserInputValidationResponse>::CreateLambda([&](const FUserInputValidationResponse& Response)
{
UE_LOG(LogAccelByteUserServiceTest, Log, TEXT("Success"));
}), FErrorHandler::CreateLambda([&](int32 ErrorCode, const FString& ErrorMessage)
{
UE_LOG(LogAccelByteUserServiceTest, Warning, TEXT("Error Code: %d, Reason: %s"), ErrorCode, *ErrorMessage);
}));
このエンドポイントを有効にするには、FUserInputValidationRequest モデルをパラメーター関数に指定します。AGS には DisplayName や UniqueDisplayName などのいくつかのバリデーションがあります。レスポンスが有効な場合は true を返します。そうでない場合は、エラーメッセージとともに false を返します。
UserInterface = StaticCastSharedPtr<FOnlineUserAccelByte>(OnlineSubsystem->GetUserInterface());
FUserInputValidationRequest UserInputValidationRequest{};
UserInputValidationRequest.DisplayName = "badwordsexample";
FUserInputValidationResponse UserInputValidationResponse{};
auto ValidateUserInputDelegate = UserInterface->AddOnValidateUserInputCompleteDelegate_Handle(FOnValidateUserInputCompleteDelegate::CreateLambda([&](
const FUserInputValidationResponse& Response, bool bWasSuccessful, const FOnlineError & OnlineError)
{
if (bWasSuccessful)
{
UE_LOG(LogAccelByteUserInterfaceProfanityFilterTest, Log, TEXT("Success"));
}
else
{
UE_LOG(LogAccelByteUserInterfaceProfanityFilterTest, Warning, TEXT("Error. Code: %s, Reason: %s"), *OnlineError.ErrorCode, *OnlineError.ErrorMessage.ToString());
}
}));
UserInterface->ValidateUserInput(LocalUserNum, UserInputValidationRequest);
// ValidateInputRequest は DisplayName、UniqueDisplayName、Password を受け付けます。フィールドが未使用または不要な場合は null のままにできます。
Models.ValidateInputRequest request = new Models.ValidateInputRequest()
{
DisplayName = displayName
};
Result<Models.ValidateInputResponse> validateResult = null;
AccelByteSDK.GetClientRegistry().GetApi()
.GetUser()
.ValidateUserInput(request, result =>
{
if (result.IsError)
{
// API 呼び出しにエラーがある場合に実行するコード
}
// API 呼び出しが成功した場合に実行するコード
validateResult = result;
});