検証用の不適切表現フィルターを有効化する
注釈:本資料はAI技術を用いて翻訳されています。
はじめに
この記事では、プレイヤーの表示名とユーザー名を検証するために、ネームスペースで不適切表現フィルターを有効化する方法について説明します。
- 不適切表現フィルター機能は、現在プレイヤーのユーザー名と表示名のみを検証します。
前提条件
- デフォルトの不適切表現フィルターデータベースに不適切な言葉を追加していること。デフォルトの不適切表現を登録および管理するを参照してください。
- 指定された不適切表現フィルターExtend Appを作成して設定しているか、独自のカスタムサーバーをセットアップしていること。
- Admin Portalでカスタム不適切表現フィルターを作成していること。カスタム不適切表現フィルターを作成および管理するを参照してください。
表示名検証用の不適切表現フィルターを有効化する
- AGS Admin Portalで、ゲームのネームスペースに移動します。
- サイドバーメニューで、Game Setupをクリックし、Profanity Filter > Configurationsに移動します。
- Configurationsページで、サービスのリストセクションに移動します。
- 不適切表現フィルターをサポートしているサービスが表示されます。現在、プレイヤーのユーザー名と表示名のみを検証します。
- statusトグルをオンにします。
- Profanity filterトグルを有効化した後、Profanity databaseドロップダウンから使用するデータベースフィルターを選択します。不適切表現フィルター用のデータベースを選択できます。
- Default。デフォルトの不適切表現を登録および管理するを参照してください。
- Custom filters。カスタムフィルターを作成するを参照してください。

表示名検証用の不適切表現フィルターを有効化する
プレイヤーの表示名を検証するために不適切表現フィルターを有効化するには、次の手順に従います。
-
AGS Admin Portalで、サイドバーメニューのAdmin Task > IAM Input Validationを選択します。
-
Display Nameセクションで、Profanity filterトグルをオンにします。
-
Profanity filterトグルを有効化した後、Profanity databaseドロップダウンから使用するデータベースフィルターを選択します。不適切表現フィルター用のデータベースを選択できます。
- Default AGS database filter。デフォルトの不適切表現を登録および管理するを参照してください。
- Custom filters。カスタムフィルターを作成するを参照してください。

-
Saveをクリックします。
ユーザー名検証用の不適切表現フィルターを有効化する
プレイヤーのユーザー名を検証するために不適切表現フィルターを有効化するには、次の手順に従います。
-
AGS Admin Portalで、サイドバーメニューのAdmin Task > IAM Input Validationを選択します。
-
Usernameセクションで、Profanity filterトグルをオンにします。
-
Profanity filterトグルを有効化した後、Profanity databaseドロップダウンから使用するデータベースフィルターを選択します。不適切表現フィルター用のデータベースを選択できます。
- Default AGS database filter。デフォルトの不適切表現を登録および管理するを参照してください。
- Custom filters。カスタムフィルターを作成するを参照してください。

-
Saveをクリックします。
クライアントSDKで不適切な言葉フィルターを実装する
ユーザー検証エンドポイントは、UnityとUnreal SDKの両方でUserクラス内に含まれています。
ユーザー入力を検証する
- Unreal SDK
- Unreal OSS
- Unity SDK
このエンドポイントを有効にするには、FUserInputValidationRequestモデルを指定してパラメータ関数に渡します。AGSにはUsername、DisplayName、またはUniqueDisplayNameを含むいくつかの検証があります。レスポンスが有効な場合はtrueを返します。それ以外の場合は、エラーメッセージとともにfalseを返します。
FUserInputValidationRequest UserInputValidationRequest{};
UserInputValidationRequest.Username = "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にはUsername、DisplayName、またはUniqueDisplayNameを含むいくつかの検証があります。レスポンスが有効な場合はtrueを返します。それ以外の場合は、エラーメッセージとともにfalseを返します。
UserInterface = StaticCastSharedPtr<FOnlineUserAccelByte>(OnlineSubsystem->GetUserInterface());
FUserInputValidationRequest UserInputValidationRequest{};
UserInputValidationRequest.Username = "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、Username、Password、UniqueDisplayNameを受け付けます。フィールドが未使用または不要な場合は、nullのままにできます。
Models.ValidateInputRequest request = new Models.ValidateInputRequest()
{
DisplayName = displayName,
Username = username
};
Result<Models.ValidateInputResponse> validateResult = null;
AccelByteSDK.GetClientRegistry().GetApi()
.GetUser()
.ValidateUserInput(request, result =>
{
if (result.IsError)
{
// API呼び出しでエラーが発生した場合に実行するコード
}
// API呼び出しが成功した場合に実行するコード
validateResult = result;
});