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 時間変数 を参照してください。
Distance、OrientationAngle、DopplerPitchScalar、および SpeedOfSound の詳細については、「方法 : XACT での X3DAudio の統合」を参照してください。
明示的な変数
明示的な変数とは、サウンド デザイナーが作成する変数です。たとえば、デザイナーは、車の速度に応じてエンジン音のボリュームを制御する変数 EngineRPM を定義できます。
変数の作成
新しい暗黙的な変数を作成することはできませんが、新しい明示的な変数は作成できます。
新しい明示的な変数を作成するには
XACT プロジェクト ツリーで [変数](Variables) を右クリックします。
[グローバル変数の新規作成](New Global Variable または [キュー インスタンス変数の新規作成](New Cue Instance Variable) オプションをオンにします。
図形 1. 新しい明示的な変数の作成
新しいグローバル変数には、デフォルトで "Grobal" という名前が付いています。新しいキュー インスタンス変数には、既定で "Cue Instance" という名前が付いています。
新しい変数を選択します。
F2 キーを押し、変数のわかりやすい名前を入力するか、必要に応じて、オーサリング ツールのプロパティ フレームで変数の [名前](Name) プロパティを変更します。
変数のプロパティ (設定)
プロジェクト ツリーで新しい変数を作成したり、既存の変数を選択すると、プロパティ グリッドに変数のプロパティが表示されます。ただし、新しい変数の名前をダブルクリックした場合に表示される [変数の設定](Variable Settings) ダイアログ ボックスでも同じ値を設定できます。
図形 2. [変数の設定](Variable Settings) ダイアログ ボックス
[変数の設定](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 コンテンツからのみアクセスでき、ゲーム プログラマは見ることができません。
- Public
変数の削除
変数を削除するには、プロジェクト ツリーで変数を右クリックし、[削除](Delete) をクリックします。または、変数を選択して Delete キーを押すか、[変数の設定](Variable Settings) ダイアログ ボックスの [変数を削除](Delete Variable) をクリックしても削除できます。
使用中の変数を削除することはできません。たとえば、ランタイム パラメーター制御に割り当てられている場合などです。