Vivox 統合ガイド

基本的な統合と計画を行うためのデベロッパー向けガイドです。このガイドでは、Vivox 対応の音声およびテキストのやり取りを自分のゲーム用に計画する方法を説明します。

Choose your operating system:

Windows

macOS

Linux

Vivox_Banner_01.png

このドキュメントでは、Vivox のデベロッパー ポータルへのサインアップ、統合計画、実装オプション、セキュリティの詳細について説明します。

注: Vivox デベロッパー ポータル にアカウントがない場合、ここで説明する方法を行う前に必ずポータルで新しいアカウントを作成するようにしてください。

ライセンス契約条件

ユーザーが Unreal Engine 用 Vivox プラグインを検討する場合、ユーザーは Unreal Engine ユーザー用の Vivox Evaluation License Agreement (ELA) に同意する必要があります。また、ユーザーが自分の Unreal Engine プロジェクトと一緒に Vivox プラグインを出荷する場合、それらは Vivox Master Services Agreement (MSA) for Unreal Engine Users の契約条件を満たさなければなりません。

注: Unreal Engine 4 (UE4) にアクセスするには、Epic Games との間で カスタム ライセンス契約 を締結するか、 Unreal Engine End User License Agreement (EULA) に合意してください。

プラグインを有効にする

プロジェクトで Vivox プラグインを有効にするには、次の手順に従います。

  1. レベル エディタ ツールバーの [Settings (設定)] ドロップダウンメニューで、 [Plugins] を選択してプラグイン ブラウザを開きます。
    EnableVivox_1.png

  2. 次は、 [Built-In] サイドメニューから [Online Platform] を開き、Vivox プラグインを有効にします。

  3. 最後に、エディタを再起動すると完了です。

Unreal Editor を再起動すると、プロジェクトに組み込まれている Vivox プラグインが有効になります。Vivox 統合計画の詳細については、このドキュメントで説明します。

基本統合ガイド

以下の統合ガイドは、Unreal Vivox プラグインを自分のプロジェクト用に評価するのに役立つ、基本的な概要を説明することを目的としています。Vivox デベロッパー ポータルにアクセスするためのサインアップ、Vivox プラグインの追加と有効化、すべてのライセンス契約条件への同意が完了したら、統合計画に取り組むための準備は完了です。

統合計画

Vivox をゲームに統合するには、通常、次のフェーズで行います。

  • フェーズ 1: 計画と整理

  • フェーズ 2: 基本的な実装

  • フェーズ 3: 高度な実装 (任意)

  • フェーズ 4: セキュリティ

統合計画の最初の 2 つのフェーズを完了すると、プロジェクトはログインおよびログアウトできるようになり、ローカルで生成された Vivox アクセス トークン (VAT) を使用した単一のチャンネルへの参加や退出も可能になります。 3 番目のフェーズは任意です。このフェーズでは、3D 立体音響やモデレータ機能などの高度なサービスの統合を行うため、多くの場合、開発時間が長くなったり将来のメンテナンス コストが増えたりします。 最後のフェーズでは、機能が完全に実装されたことを確認する作業を行います。

フェーズ 1: 計画と整理

計画フェーズでは、組織に関する次のことを決める必要があります。

  • ユーザーとチャンネルの管理

    • ユーザー ID とチャンネルの命名規則の決定。

  • ゲーム サーバーのやりとり

    • ゲームのバックエンドの一部としての Vivox のログインおよびチャンネル管理サービスを実行する方法の決定。

  • 認証

    • 必要に応じて、チャンネル参加者をミュート、禁止、キックできるユーザーの決定。

統合の準備

このフェーズでは、ゲーム サーバーとゲーム クライアントのタスクを実行します。 初期開発中では、クライアント上でゲーム サーバーのアクションを実行できますが、最終的には、最後の起動前にこれらのタスクを安全なゲーム サーバーに移動する必要があります。

ヒント: ゲーム サーバーの使用は任意ですが、ベストプラクティスなので使用をおすすめします。

以下のサブセクションは、主要な統合要素の簡単な概要です。

ログイン管理

Vivox サービスにログインするための一般的な方法は、ユーザーのゲーム内アカウント、キャラクター ID、その他の固有のデータを、ユーザーごとに生成される識別不可能な固有の Vivox ユーザー ID に関連付けることです。

ユーザーに関連付けられた Vivox ネットワーク内には永続的なデータがある可能性があるため、割り当てられた Vivox ユーザー ID は、ユーザーのゲーム内アカウント ID またはキャラクター ID が変更されてもゲームアカウントと一緒に保持されます。

Vivox サービスへのアクセスには VAT が必要です。これらのトークンが次のセキュリティ対策を行うためです。

  • ログインや音声チャンネルへの参加など、単一のサーバ操作に対するクライアントの制限。

  • 使用できるのは一度のみ。

  • 短い寿命 (生成から 90 秒間のみ有効) 。

トークンは Vivox ネットワークへのログインに必要であり、ゲーム サーバーは (例えば、安全な Web サービスを使用したりして) このトークンをクライアントに安全に販売できるようにする必要があります。

トークンの生成と配布に関する詳細は、このガイドの最後にある Vivox の「アクセス トークン デベロッパー ガイド」にあります。

チャンネル

チャンネルを使用すると、2 人以上の参加者がいる場合にボイスチャットが可能になります。また、VAT を適切に生成することで、1 つのチャンネル (または複数のチャンネル) への参加ができるようになります。 チャンネルのプロパティ、タイプ、名前の詳細については、下記を参照してください。

プロパティ

チャンネルには以下の特性があります。

  • 一時的なものであり、誰かが使用している場合は保持されます。

  • 永続的なステートを持たず、Vivox ネットワーク内からのいかなる形式のアクセス制御の管理を受けません。

  • ユーザーがアクションを実行する前に、チャンネルへのアクセス (参加) および保護されたサードパーティのアクション (例えば、キックやモデレータのミュート) が VAT でゲーム サーバーによって承認されている必要があります。

タイプ

チャンネル タイプを選択するときは、次の表を参照してください。

チャンネルの種類

説明

典型的なユースケース

Non-positional (非定位置)

場所に関係なく、すべてのユーザーが同じようにお互い音を聞くことができます。 デフォルトの非定位置チャンネルはほとんどのユースケースに適します。

一般的に、デフォルトの非定位置チャンネルはほとんどのユースケースに適します。

Positional (定位置)

ユーザーの送信する音声が個々の定位置 3D 空間から発信できるようになる特殊なタイプのチャンネルです。

注: このチャンネル タイプでは、チャンネルの Uniform Resource Identifier (URI) の一部として追加の設定が必要になります。

距離に基づく音量の減衰などの 3D 効果が必要な場合は、定位置チャンネルが最適です。これを使用すると、ゲーム内でリアルなオーディオ効果を作成できます。

エコー

このチャンネルを使用することで、ユーザ自身の音声通信の送信と受信のテストが可能です。

注: このチャンネル タイプでは、ユーザー間の通信が行えません。

エコー チャンネルは、内部開発と内部テストの両方に便利です。また、ユーザー デバイスのオーディオ テスト環境を提供する際にも役立ちます。

名前

独自の命名規則に基づいてチャンネル名を選択できます。 多くの場合、チャンネルの命名と管理によって、ギルドやパーティーなどのゲーム内のソーシャル エンティティが関連付けられ、その後、そのソーシャル エンティティが選択したチャンネル識別子と照合されます。

認証

ログイン、チャンネルへの参加、特定のモデレート アクションの実行などのすべての安全なアクションは、VAT 形式での承認が必要です。 このトークンは、(プロトタイプ作成用または初期段階の開発用) クライアント、または (本番用または後期開発用) サーバーで生成できます。 生成され販売されると、安全なアクションを実行するために VAT が使用されます。

すべての安全なアクションは、実行前に VAT 認証が必要となります。 安全なアクションは次のとおりです。

  • ログイン

  • チャンネルへの参加

  • チャンネルからのユーザーのキック

  • チャンネル内の 1 人のユーザー (またはすべてのユーザー) をチャンネル内の他のすべてのユーザーに対してミュートまたはミュート解除

注: 上記の「チャンネル内の1人のユーザまたはすべてのユーザのミュートまたはミュート解除」は、ユーザー B の音声を自分に対してミュートする ユーザー A の ローカル アクションとは異なります。認証した安全なアクションを実行するには、適切な場合にのみ VAT を販売して要求されたアクションを許可するようにしてください。

ゲーム サーバーの統合

プロダクションでは、安全な音声アクションは、ゲーム サーバーなどの別の信頼できるパーティーによって承認されるべきです。 ゲーム サーバーは VAT を作成し、それらを安全な方法でゲーム クライアントに渡します。その後、その VAT は Vivox のネットワークに送信されます。

VAT 生成の詳細については、このガイドの最後にある「アクセス トークン デベロッパー ガイド」を参照してください。

フェーズ 2: 基本的な実装

以下の (そしておすすめな方法である) 基本的な実装フェーズはゲーム サーバーを使用しません。

  1. ゲーム用に VivoxVoiceChat プラグインを有効にします。

  2. ユーザー ID を選択してください。 適切に生成された VAT を使用してログインします。これは開発中に VivoxVoiceChat プラグインによって提供されます。

     アクセス トークンは自分の管理下にあるサーバーから生成すべきです。
  3. チャンネル ID を選択します。 VivoxVoiceChat プラグインから提供される、適切に生成された VAT を使用してチャンネルに参加します。

  4. 必要に応じて、チャンネルを離れます。

  5. 必要に応じて、Vivox サービスからログアウトします。

    • トークンは、チャンネルからの離脱やログアウトには必要ありません。

    • OpenSSL を使ってアクセス トークンを生成する方法を学ぶには、「/Engine/Source/ThirdParty/Vivox/tokengen/tokengen/tokengen.c」にある使用可能なサンプル コードを参考にしてください。

    • アクセス トークンの生成の詳細については、 「アクセス トークン デベロッパー ガイド」 を参照してください。

この時点で、単一のチャンネルに参加したり脱退したりできる基本的な実装ができているはずです。 定位置チャンネルを実装する前に、非定位置チャンネルを使用することをお勧めします。

次のフェーズに進む前に、オーディオがエラーなく機能していることを確認してください。

フェーズ 3: 高度な実装 (任意)

アプリケーションがログインとログアウト、および単一チャンネルの参加とローカルで生成された VAT での離脱を正しく処理できるようになったら、次のようなオプション機能を実装できます。

  • 3D 位置チャンネルへの参加、ローカル ユーザーの 3D 位置の更新。

  • 複数のチャンネルへの参加。

  • ローカルとリモートの、ミュートとミュート解除

  • 名簿およびスピーキング インジケーター用のチャンネルおよび参加者イベントの処理。

  • キックやミュートなどの管理者 / モデレータの操作。

次のフェーズに進む前に、これらの追加機能が動作することを確認してください。

フェーズ 4: セキュリティ

この時点で、機能の実装は完了しているはずです。  作業の残りは、Vivox ユーザー ID、チャンネル ID、VAT を決定するロジックを安全なサーバーに移動することのみです。 サーバーは、ゲーム サービスに使用されているものと同じものでも、別のサービスでもかまいません。

このフェーズの完了後は、クライアントが生成した VAT はセキュリティ上のリスクがあるため、クライアント アプリケーションは VAT を生成すべきではありません。また、それら VAT は、クライアントのクロックの変動によるバグの原因となることがよくあります。

Vivox デベロッパー ポータル

基本的な実装計画が整理できたので、Vivox のサイトに移動して Vivox デベロッパー ポータル にアクセスします。 ポータルでは、追加のドキュメントを参照したり、Vivox Unreal Shooter Sample をダウンロードしたりできます。そうすることで、Vivox Unreal SDK を利用してゲーム内の音声およびテキストでの通信を実装する方法を詳しく知ることができます。

以下を必ずお読みください。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる