XACT 変数

Microsoft Cross-Platform Audio Creation Tool (XACT) 変数を使用すると、オーディオ出力を複雑に管理できます。たとえば、レーシング シーンでエンジンの音量をエンジンごとに設定したり、列車が横断するシーンにドップラー効果を与えたりすることが可能です。

ここでは、変数について知っておく必要がある重要な情報と、変数の作成手順について説明します。

  • XACT 変数の型
  • 変数の作成
  • 変数の削除

XACT 変数の型

XACT 変数を効果的に操作するために、いくつかの用語を理解しておくことが重要です。変数は、XACT プロジェクトの暗黙的または明示的部分であるほかに、グローバルまたはキュー専用のいずれかのスコープがあります。

グローバル変数およびキュー インスタンス変数

変数はすべて、グローバルまたはキュー インスタンスのいずれかとして宣言する必要があります。

グローバル変数

グローバル変数はどのキューからもアクセスでき、タイトル全体を通じて永続的に使用できます。

これらの値は、IXACT3Engine::SetGlobalVariable 関数および IXACT3Engine::GetGlobalVariable 関数を使用して、設定または読み取ることができます。

キュー インスタンス変数

キュー インスタンス変数は、その変数が作成されたキューの範囲内での使用に限定され、キュー インスタンスが起動している間のみ使用できます。キュー インスタンス変数は、単一のキュー (および関連するサウンド) から複数のインスタンスを生成する必要がある場合に便利です (たとえば、"car" キューを使用して同時に複数の車を使用する場合など)。グローバル変数では複数のオーディオ要素を同時に制御しますが、キュー インスタンス変数では各キュー インスタンスに制御権があります。同じキューのコピーであっても、各キューに制御権が与えられます。

これらの値は、IXACT3Cue::GetVariableIndex メソッドおよび IXACT3Cue::GetVariable メソッドを使用して、インスタンスごとに設定または読み取ることができます。

暗黙的および明示的な変数

すべての XACT プロジェクトに自動的に含まれる変数は、暗黙的な変数と呼ばれます。ユーザーが作成する変数は、明示的な変数と呼ばれます。暗黙的な変数も明示的な変数も、グローバルまたはキュー インスタンスとして宣言できます。ただし、オーディオ デザイナーは、明示的な変数の設定のみ変更できます。

暗黙的な変数

暗黙的な変数は XACT エンジン内固有のもので、サウンド デザイナーが使用できます。

変数名 説明
NumCueInstances キュー インスタンス 現在再生しているキュー インスタンスの数を表します。
AttackTime キュー インスタンス 再生が開始されてから経過した時間をカウントします。このカウンターは 0 からカウントを始め、キューが停止するまでインクリメントし続けます。
ReleaseTime キュー インスタンス 再生を停止する非即時要求からの経過時間をカウントします。停止要求は、プログラマーの制御または Stop イベントによって発生します。このカウンターは 0 からカウントを始め、キューが再度トリガーされるまでインクリメントし続けます。
Distance キュー インスタンス 音源からリスナーまでの現在の距離を表します。キュー インスタンスに距離が関連付けられていない場合は、Distance の値が 0 になります。XACT3DApply によって設定されます。
OrientationAngle キュー インスタンス キュー インスタンスのリスナーに対する向きを表します。-180 度~ 180 度で指定します。XACT3DApply によって設定されます。
DopplerPitchScalar キュー インスタンス キュー インスタンスとリスナーの間でドップラー偏移によって作成されるキュー インスタンスでのピッチ修正の量を表します。0 ~ 4 の間の数字で指定します。XACT3DApply によって指定されます。
SpeedOfSound グローバル サウンドの速度を表す定数は、ドップラー偏移の計算に使用されます。0 ~ 1,000,000 の間の数で指定します。ドップラー偏移の計算の際に XACT3DCalculate によって使用されます。

AttackTime および ReleaseTime の詳細については、XACT 時間変数 を参照してください。

DistanceOrientationAngleDopplerPitchScalar、および SpeedOfSound の詳細については、「方法 : XACT での X3DAudio の統合」を参照してください。

明示的な変数

明示的な変数とは、サウンド デザイナーが作成する変数です。たとえば、デザイナーは、車の速度に応じてエンジン音のボリュームを制御する変数 EngineRPM を定義できます。

変数の作成

新しい暗黙的な変数を作成することはできませんが、新しい明示的な変数は作成できます。

新しい明示的な変数を作成するには

  1. XACT プロジェクト ツリーで [変数](Variables) を右クリックします。

  2. [グローバル変数の新規作成](New Global Variable または [キュー インスタンス変数の新規作成](New Cue Instance Variable) オプションをオンにします。

    図形 1.  新しい明示的な変数の作成

    Bb172310.audio_tools_xact_variable_new(ja-jp,VS.85).jpg

    新しいグローバル変数には、デフォルトで "Grobal" という名前が付いています。新しいキュー インスタンス変数には、既定で "Cue Instance" という名前が付いています。

  3. 新しい変数を選択します。

  4. F2 キーを押し、変数のわかりやすい名前を入力するか、必要に応じて、オーサリング ツールのプロパティ フレームで変数の [名前](Name) プロパティを変更します。

変数のプロパティ (設定)

プロジェクト ツリーで新しい変数を作成したり、既存の変数を選択すると、プロパティ グリッドに変数のプロパティが表示されます。ただし、新しい変数の名前をダブルクリックした場合に表示される [変数の設定](Variable Settings) ダイアログ ボックスでも同じ値を設定できます。

図形 2.  [変数の設定](Variable Settings) ダイアログ ボックス

Bb172310.audio_tools_xact_variable_settings(ja-jp,VS.85).jpg

[変数の設定](Variable Settings) ダイアログ ボックスでは、次の設定を変更できます。

  • Name
    変数の名前プロパティ。このプロパティは、この設定ダイアログ ボックス内で変更できます。

  • Scope
    変数がグローバル変数かキュー インスタンス変数かを指定します。

  • Control

    • Local
      ローカル変数は XACT GUI を使用して設定でき、GUI ユーザーは変数の値を見ることができます。変数作成時のデフォルト設定です。

    • Monitored
      モニター (外部) 変数は XACT GUI では設定できません。この変数はゲームが制御します。GUI ユーザーはモニター変数の値を更新でき、見ることもできます。

    • Non-monitored
      非モニター (外部) 変数は、XACT GUI では設定できません。この変数はゲームが制御します。GUI ユーザーは非モニター変数の値を更新できず、見ることもできません。これは XACT GUI がAudio Console 以外のアプリケーションに接続されている場合のデフォルト値です。

      非モニターのグローバル変数を使用すると、ネットワーク トラフィックが最小限に抑えられ、パフォーマンスが向上します。

  • Initial Value
    変数の初期値。

  • Value
    変数に現在格納されている値。

  • Min
    変数の設定可能範囲の最小値。Min には、浮動小数点値を自由に入力できます。デフォルトは 0 です。

  • Max
    変数の設定可能範囲の最大値。Max には、浮動小数点値を自由に入力できます。デフォルトは 100 です。

  • Visibility

    • Public
      パブリック変数は IXACT3Cue::SetVariable メソッドを使用してアクセスできます。
    • Private
      プライベート変数は XACT コンテンツからのみアクセスでき、ゲーム プログラマは見ることができません。

変数の削除

変数を削除するには、プロジェクト ツリーで変数を右クリックし、[削除](Delete) をクリックします。または、変数を選択して Delete キーを押すか、[変数の設定](Variable Settings) ダイアログ ボックスの [変数を削除](Delete Variable) をクリックしても削除できます。

使用中の変数を削除することはできません。たとえば、ランタイム パラメーター制御に割り当てられている場合などです。

関連項目

XACT, XACT の概要, XACT3 のリファレンス