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

Vivox 認証サービス

Last updated on July 15, 2026

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

Overview

AccelByte Gaming Services (AGS) Extend Service Extension を使用すると、Vivox 認証サービスを実装でき、AGS、Vivox、ゲームクライアント間のシームレスな連携が可能になります。この Vivox 認証サービスは、ゲームクライアントが Vivox とやり取りするために必要な署名付き Vivox トークンを生成します。各トークンの有効期限は 90 秒であるため、ゲームクライアントは定期的にサービスへ新しいトークンをリクエストする必要があります。

Prerequisites

  1. Windows 11 WSL2、Linux Ubuntu 22.04、または macOS 14+ に以下のツールがインストールされていること。

    a. Docker(Docker Desktop 4.30+/Docker Engine v23.0+)

    • Linux Ubuntu の場合:

      1. Ubuntu リポジトリからインストールするには、sudo apt update && sudo apt install docker.io docker-buildx docker-compose-v2 を実行します。
      2. ユーザーを docker グループに追加します: sudo usermod -aG docker $USER
      3. 変更を反映させるため、ログアウトして再度ログインします。
    • Windows または macOS の場合:

      Windows または macOS への Docker Desktop のインストール方法について、Docker のドキュメントに従ってください。

      docker version

      ...
      Server: Docker Desktop
      Engine:
      Version: 24.0.5
      ...

    b. extend-helper-cli

  2. AGS Admin Portal 環境へのアクセス権限。

    • ベース URL: <your environment's domain URL>

      • AGS Public Cloud カスタマーの例: https://spaceshooter.prod.gamingservices.accelbyte.io
      • AGS Private Cloud カスタマーの例: https://dev.customer.accelbyte.io
    • まだ持っていない場合は、ゲームネームスペースを作成します。ネームスペース ID を控えておいてください。

    • 以下の権限を持つ confidential クライアントタイプで OAuth クライアントを作成します。

      • AGS Private Cloud カスタマーの場合:
        • ADMIN:ROLE [READ]
        • ADMIN:NAMESPACE:{namespace}:NAMESPACE [READ]
      • AGS Public Cloud カスタマーの場合:
        • IAM > Roles (Read)
        • Basic > Namespace (Read)

      Client IDClient Secret を保管しておいてください。

  3. Vivox の設定情報。

    • Vivox アプリケーション固有の発行者名(issuer name)
    • Vivox ドメイン名
    • Vivox 署名キー

Clone the app repository

git clone https://github.com/AccelByte/extend-vivox-authorization-service-csharp

Deploy in AGS

AGS で Extend アプリをデプロイするには、Admin Portal で以下の手順を実行します。

  1. Extend アプリを作成する
  2. Extend アプリをアップロードする
  3. Extend アプリを設定する
  4. Extend アプリをデプロイする

Create the Extend app

  1. AGS Admin Portal で、Extend Override アプリを作成したいネームスペースに移動します。
  2. サイドバーメニューの ADD-ONS で、Foundations > Extend > My Extend Apps > Service Extension に移動します。
  3. Service Extension ページで、+ Create New ボタンをクリックします。
  4. Create App フォームで、Extend アプリの名前と説明(任意)を入力します。
  5. Create をクリックします。新しい Extend アプリが Service Extension アプリの一覧に追加されます。

Upload the Extend app

  1. extend-helper-cli 用の IAM クライアントを設定します。クライアントタイプ confidentialIAM クライアントを作成し、以下に記載されている必要な権限を割り当てます。Client IDClient Secret のコピーを保管しておいてください。

    • AGS Private Cloud カスタマーの場合:
      • ADMIN:NAMESPACE:{namespace}:EXTEND:REPOCREDENTIALS [READ]
      • ADMIN:NAMESPACE:{namespace}:EXTEND:APP [READ]
    • AGS Public Cloud カスタマーの場合:
      • Extend > Extend app image repository access (Read)
      • Extend > App (Read)
  2. 必要な環境変数をエクスポートし、extend-helper-cli を使用して Extend アプリのコンテナイメージをビルドし、AGS にアップロードします。

    • <project-dir> が Extend アプリのプロジェクトディレクトリを指していることを確認してください
    • <namespace><app-name> の値は、Extend アプリの App Detail ページで確認できます
    • 適切なイメージタグを使用してください(例: v0.0.1
    # AGS 環境のベース URL(例: https://spaceshooter.prod.gamingservices.accelbyte.io, https://dev.accelbyte.io など)
    export AB_BASE_URL='https://xxxxxxxxxx'
    # extend-helper-cli 用 OAuth クライアントの Client ID(手順1より)
    export AB_CLIENT_ID='xxxxxxxxxx'
    # extend-helper-cli 用 OAuth クライアントの Client Secret(手順1より)
    export AB_CLIENT_SECRET='xxxxxxxxxx'

    ./extend-helper-cli-linux_amd64 image-upload --login --work-dir <project-dir> --namespace <namespace> --app <app-name> --image-tag v0.0.1
    important
    • 上記のコマンドは、Extend アプリのプロジェクトとは別のターミナル、別の作業ディレクトリから実行することを推奨します。これにより、extend-helper-cli が Extend アプリ用の環境変数を誤って使用してしまうことを防げます。
    • 以下のエラーが発生した場合は、トラブルシューティング: Docker login fails を参照して解決手順を確認してください。
      Error saving credentials: error storing credentials - err: exit status 1, out: `error storing credentials - err: exit status 1, out: `The stub received bad data.`

    イメージが正常にアップロードされると、Image Version History ページにバージョン v0.0.1 のイメージが表示されます。

    AGS Admin Portal でのイメージ履歴

Configure the Extend app

アップロードした Extend アプリをデプロイする前に、アプリが必要とする環境変数を設定する必要があります。アプリの詳細ページで、Prerequisites セクションで準備した値を使用して、以下の環境変数を設定します。

  • AB_CLIENT_ID
  • AB_CLIENT_SECRET
  • VIVOX_ISSUER
  • VIVOX_DOMAIN
  • VIVOX_SIGNING_KEY

Deploy the Extend app

Extend アプリをデプロイするには、Deploy Latest Image をクリックします。アプリのステータスが RUNNING に更新されるまで待ちます。ステータスが RUNNING になれば、Extend アプリが正常にデプロイされたことを示します。

Run sample game client

AccelByte は、Vivox 認証サービスを試すためのサンプルゲームクライアントを提供しています。以下の手順に従ってください。

注記

このサンプルゲームクライアントは、Unreal Engine 4.26 を使用した ShooterGame プロジェクト上に構築されています。それ以降のバージョンの Unreal Engine ではテストされていません。より最新の統合方法については、以下の AccelByte Vivox Unreal plugin セクションを参照してください。

  1. プロジェクトをクローンします。

    git clone https://github.com/AccelByte/extend-vivox-authorization-sample-game-unreal
  2. Unreal 用の AGS SDK を設定します。Install the AGS Game SDK ガイドの Configure the AGS Game SDK for the IAM client セクションの手順に従ってください。

  3. Vivox Unreal SDK を設定します。

    1. VivoxGameInstance.cpp ファイル内の VIVOX_VOICE_SERVERVIVOX_VOICE_DOMAINVIVOX_ISSUER の値を、Unreal Dashboard プロジェクトの Vivox Credentials にある値に設定します。
    2. VivoxTokenProvider.cpp 内の VIVOX_TOKEN_PROVIDER_URL の値を設定します。
    3. Token Provider Url フィールドと Inspector フィールドを見つけて変更します。
  4. IDE でプロジェクト(Client/ShooterGame.uproject)を開きます。

  5. Windows(64 ビット)向けにビルドしてパッケージ化します。

  6. ビルドのインスタンスを 1 つ以上起動します。実行ファイル名は ShooterGame.exe になります。

  7. 1 つのクライアントをホストとし、他のクライアントを参加させます。

AccelByte Vivox Unreal plugin

AccelByte は、Vivox のボイスチャットと AccelByte のトークン生成を統合するスタンドアロンの Unreal Engine プラグインを提供しています。このプラグインは、認証、マルチチャンネルボイス、送信制御、ミュート機能をすぐに利用できる形で処理します。

詳細については、accelbyte-vivox-unreal リポジトリを参照してください。

Dependencies

  • AccelByteUe4Sdk
  • AccelByteUe4SdkCustomization — VivoxAuth::ServiceGenerateVivoxToken() を提供します。Extend Codegen CLI 経由、またはリリースページから入手できます。
  • VivoxCore — Vivox SDK(クライアントプラットフォーム専用で、サーバー/Linux ビルドからは除外されます)

Configuration

プロジェクトの DefaultEngine.ini に以下を追加します。

[/Script/AccelByteVivox.AccelByteVivoxSettings]
VivoxIssuer=your-issuer
VivoxDomain=your-domain
VivoxServer=your-login-server-uri

[/Script/AccelByteUe4SdkCustomization.AccelByteCustomizationSettings]
VivoxAuthServerUrl=your-extend-vivox-auth-service-url

Setup

  1. .uproject ファイルでプラグインを有効化します。

    {
    "Name": "AccelByteVivox",
    "Enabled": true
    }
  2. AccelByteVivox をモジュールのビルド依存関係に追加します。

Basic usage

ボイスチャットのシングルトンにアクセスし、ログイン、チャンネル、ミュートの操作に使用します。

#include "AccelByteVivoxVoiceChat.h"

auto VoiceChat = FAccelByteVivoxVoiceChat::Get();

// AccelByte 認証後にログインする
VoiceChat->Login(ApiClient, Username);
VoiceChat->OnLoginCompleted.AddLambda([](bool bSuccess) { /* handle result */ });

// ボイスチャンネルに参加する
VoiceChat->JoinChannel(TEXT("party-123"));
VoiceChat->OnChannelJoined.AddLambda([](const FString& ChannelName, bool bSuccess) {});

// 送信を制御する
VoiceChat->SetTransmissionChannel(TEXT("party-123")); // 単一チャンネル
VoiceChat->SetTransmissionToAll(); // 全チャンネル
VoiceChat->SetTransmissionToNone(); // 受信のみ

// ミュート制御
VoiceChat->SetLocalMute(true);
VoiceChat->SetPlayerMute(TEXT("party-123"), PlayerId, true);

Event delegates

DelegateDescription
OnLoginCompletedVivox 認証の結果
OnLogoutCompleted切断シグナル
OnChannelJoinedチャンネル参加の成功/失敗
OnChannelLeftチャンネルからの切断
OnParticipantAddedプレイヤーが ID と表示名で参加した
OnParticipantRemovedプレイヤーが退出した
OnParticipantTalkingChangedボイスアクティビティの状態変化

Next step

この Vivox 認証サービスを要件に合わせてカスタマイズする必要がある場合は、このガイドを参照してください。