Welcome to MSDN Blogs Sign in | Join | Help

XACT TIPS

2008/03/02 スクリーンショットをXNA GS 2.0版に更新

XACTとは

GSE 1.0にはMicrosoft Cross-Platform Audio Creation Tool、通称XACT(イグザクト)が付属しています。XACTはゲーム用に設計されたツールで、元々は初代Xbox、Xbox 360の開発キットに付属しているツールで、実際に発売されているゲームでも使われているツールです。XACTには、DVDからの遅延無しのストリーミング再生、3Dオーディオ、5.1chスピーカ対応、ダイナミックサウンドなどのゲームで使われる機能があります。特にダイナミックサウンドでは、このチュートリアルビデオにあるようにプログラムから、ピッチやボリュームを変更したり、プログラムからは「足音」という、ひとつの効果音のように使えるけど、実際に鳴らすと鳴らすごとに違ったバリエーションの足音を鳴らしたりといったことができます。

全部の機能を、このブログで紹介するのは大変なので、質問の多かった機能について紹介します。

 

ストリーミング

Wave Bankは通常メインメモリに全てのデータが読み込まれます。効果音などには最適な設定ですが、BGMや台詞のボイスデータといった長いデータを全てをメインメモリに読み込むのは不効率です。こういったBGMは通常DVDやHDDから読み込みながら再生するストリーミング再生が使われます。XACTにはDVDやHDDのシーク時間に関係なく、遅延無しで再生できるようになっています。実際にはBGMの冒頭部分のデータだけをメモリに読み込んで、その部分を再生している間にDVDやHDDから次のデータを読み込むことでシーク遅延時間を解消しています。

 

Untitled-2 

このストリーミングの設定はXACT上で、Wave Bankを選択した時に表示されるプロパティ画面でTypeプロパティをInMemoryからStreamingに変更することでできます。

 

 

Wave Bankのタイプがストリーミングのものは、上図のようにアイコンの上にDVDと表示されます。

 

ループ再生

殆どの場合、BGMはループ再生しますが、XACT上でループ設定はSound Bankから行います。

 

Sound Bankウィンドウから、ループ再生したいSound名(上図の左上の部分)を選択すると、右上にTrack情報が表示されるので、そこでPlay Waveを選択すると、プロパティ画面が以下のように変化します。

 

Untitled-3

このプロパティ画面の、LoopプロパティのInfiniteをチェックすることで、ループ再生することができます。

 

圧縮

無圧縮のままのオーディオデータ、特にBGM等の場合、大量のデータを必要とするので、MP3等の圧縮オーディオフォーマットを追加したいという要望がありますが、現状ではXACT上で使えるのはWavファイル形式のデータのみです。その代わり、XACT上からWindows上では圧縮率4:1のADPCM、Xbox360上では圧縮率6:1~12:1のXMAが使えます。XMAはWMA形式の音声圧縮をゲーム向けにカスタマイズしたものです。利点としてはMP3やWMA形式に比べて、少ないデコード用のバッファで効果音などを鳴らすことができます。また、XBox 360にはXMAデコード用のハードウェアが搭載されているので、CPUは面倒なデコード作業をする必要がありません。

 

この圧縮形式はWave Bank毎に指定することができます。まずは、圧縮形式を宣言します。プロジェクトビューのCompression Presetsを右クリックして、New Compression Presetを選択します。デフォルトでは、Compression Presetという名前のプリセットが作られます。この名前は、BGMや、効果音、またはボイス用等、用途にあった名前を付けるのが良いでしょう。

 

Untitled-1

プリセットには上図のプロパティがあり、Xbox 360ではPCMとXMAを選択できXMAのQualityの値を上げることで高音質、下げることでファイルサイズを小さくすることができます。WindowsではPCMとADPCMを選択することができます。

Untitled-4

最後に宣言したプリセットをWave Bankのプロパティ画面のCompressionPresetプロパティで指定することで、Wave Bankのデータが圧縮されるようになります。

 

データをビルド後、Wave Bankにはプラットフォーム毎の圧縮に関する情報が表示されるようになります。Sizeは圧縮前のサイズ、Windows上では圧縮フォーマット(PC Format)、圧縮後のサイズ(PC Compressed)、圧縮率(PC Ratio)が、Xbox 360上では圧縮フォーマット(Xb Format)、圧縮クオリティ(Quality)、圧縮後のサイズ(Xb Compressed)、圧縮率(Xb Ratio)の情報が役に立ちます。

上図の例では、元のサイズが15MBのデータが、Windows上では4.1MB(27%)、Xbox 360上では1.3MB(9%)に圧縮されているのが判ります。

 

まだまだある機能

今回は、ループ再生、ストリーミング再生、そしてデータ圧縮に関して紹介しました。他にもいろんな機能があるらしい(本人も全部は知らん)のですが、XACTツールの使い方は以下のURLが参考になります。

http://msdn2.microsoft.com/en-us/library/bb172314.aspx

XNAに付属しているXACTツールは、DirectX SDK October 2006のものなので上記のURLとは多少違うので注意が必要です。

Published Tuesday, May 29, 2007 6:40 PM by Yuichi Ito

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker