バージョン
menu_open

ダイナミックダイアログシステムを理解する

Wwiseのダイナミックダイアログというシステムの中心にあるのが、ダイアログイベントであり、どのダイアログを再生するかを決める際のルールや条件のセットを提供します。ダイアログイベントによって、ゲーム内で存在する様々なシナリオ、条件、結果などを再現します。全ての状況に対応できるように、Wwiseでデフォルト条件、つまりフォールバック条件を作成することも可能です。

これらの条件は全て、複数のState GroupやStateを使って定義されます。さらに、State GroupやStateを組み合わせて作ったパスが、ゲームで起きる特定の条件や結果を決めます。このパスを1つずつ、Wwiseが対応するサウンドオブジェクトに結びつけます。ゲーム中にダイアログイベントが呼び出されると、ゲーム側で現在の条件をダイアログイベントの中にある複数のパスと比較します。ゲームにおける現在の条件にマッチする複数のパス、それぞれのパスのモード、Probability(発生確率)、そしてWeight(ウェイト付け)によって、どのダイアログを再生するのか、または全く再生しないのかを決定します。

例えば、下記のダイアログイベントには、スポーツゲームの選手の名前に関連したStateやState Groupが入っています。各StateやState Groupの値を組み合わせて、可能性のある複数のパスや条件が作られます。この例では、実況アナウンサーが選手の姓(Last)または姓名(Full)のどちらかを使うという設定です。

万が一、ゲームの状況に合うStateがない場合のために、デフォルト、つまりフォールバック用のStateが入ったパスを作ることもできます。フォールバック用のパスには通常、Stateの代わりに1つ以上のStateやState Groupを入れ、汎用性のあるサウンドオブジェクトを設定します。前例の場合、フォールバック用のパスは、プレイヤーの名前の代わりに「He(彼)」というサウンドオブジェクトが設定されています。

ダイアログイベントに対して起こりうる全ての条件を設定した後に、ゲームエンジンに実装します。ゲームがダイアログイベントを呼び出すと、サウンドエンジン側で、ダイアログイベントに合うパスに対応するオーディオオブジェクトを返して、ダイアログイベントを完結させます。次に、そのオーディオオブジェクトをダイナミックシーケンスに挿入して再生するのかどうかを、サウンドエンジンが判断します。オーディオオブジェクトが返される回数と、それをダイナミックシーケンスにインサートする回数は、1:1とは限りません。完結される1件のダイアログイベントの中で、サウンドエンジンが返す1つのオーディオオブジェクトが、必要に応じて何度もダイナミックシーケンスに挿入されることもあります。

[注釈] 注釈

ダイナミックダイアログを作成する場合は、単語やフレーズを継ぎ合わせて文章にする機能など、多くの機能がWwise SDKだけで提供されるため、オーディオプログラマーと緊密に連携して作業することが重要です。

ゲームエンジンはダイアログイベントのイベント名を使うので、イベントを作成してゲームへの実装が済めば、イベントの中に入っているコンテンツの構築や微調整を行っても、再度実装をする必要はありません。この方法を取ることで追加のプログラミング作業をせずにStateの追加や削除ができ、様々なサウンドを柔軟に試せます。

[注意] 注意

ダイアログイベントにあるStateやState Groupを、追加、削除、または移動すると、自動的にパスが変更されます。Wwise上の操作は簡単ですが、この種の変更はコードの更新も必要となるため、プログラマーによる対応を要します。

インターフェース上で分かりやすいように、ダイアログイベントは、以下のアイコンで表されます。

アイコン

内容

Dialogue event
ダイアログイベント

ダイアログイベントの活用例

例えば、実況中継(Play-by-Play)付きのアイスホッケーゲームの場合を考えます。プレイヤーがシュートして得点した時は、プレイヤーのActionに応じた実況中継が流れるべきです。

Wwiseで様々な可能性や結末を設定するために、まず ダイアログイベントとして、「Player(プレイヤー)」、「Action(アクション)」、「Transition(接続詞)」などを作成します。全てのイベントに、それぞれ、このゲーム用に作成した複数のState GroupやStateを設定します。次に、各条件や結末を定義するパスを作り、それぞれのパスに、適切なボイスオブジェクトを割り当てます。ゲームプレイ中に、ゲーム側が現在のStateとWwiseで定義したパスを照会して再生すべきボイスオブジェクトを判断します。

下図は、「Cross shoots and scores(クロスがシュートし、得点した)」という実況中継を、Wwiseのダイアログイベントが生成する様子を示しています。

上図は、ゲームにおけるStateやState Groupやダイアログイベントの使い方を、簡略化したものです。しかし一般的には、より洗練されたダイアログイベントがゲームに必要で、多数のState GroupやStateが含まれます。Wwiseを使えば、さらにリアルなゲームのダイナミックダイアログをつくり出すために、多様の複雑なシナリオを設定できます。

以下の例は、より洗練されたPlayerダイアログイベントです。このダイアログイベントには、複数のStateやState Groupが設定されています。複数のStateやState Groupがある場合、選択された複数のStateによってパスが成立します。State GroupやStateの全ての組み合わせに対して、パスを1つずつ作成して、パスごとにオブジェクトをアサインできます。ゲーム中に、あるパスのStateが発生すると、そのパスにアサインされているボイスオブジェクトが再生されます。


このページはお役に立ちましたか?

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう