Microsoft DirectX 8.0 (C++) |
実行時にアレンジされる音楽を実装するときに、既にオーサリングされているオブジェクトをビルディング ブロックとして使用する。オーサーやほかのコンテント プロバイダと相談しながら、小さなビルディング ブロックとして取得するミュージック データを選択することにより、実行時に最も高い柔軟性やバリエーションを実現したり、音楽をより完成された形で定義するために、あらかじめ作成された要素をより多く利用できる。
最大のビルディング ブロックを使って、サウンドの再生についてパフォーマンスが指示しなければならない情報のすべてが含まれている、スタイル、MIDI ファイル、またはウェーブに基づく、高度に構造化されたセグメントをロードする。必要なのは、セクションをロードして、IDirectMusicSegment8 インターフェイスの照会を行うことだけである。このインターフェイス ポインタを IDirectMusicPerformance8::PlaySegment または IDirectMusicPerformance8::PlaySegmentEx メソッドに渡す。スタイル再生エンジンは、スタイルからパターン バリエーションを選択し、固定コード進行に従ってこれらを演奏する。また、MIDI ベースのセグメントの場合は、MIDI シーケンスを演奏する。バンド チェンジは、通常、セグメントに含まれる。
より小さなビルディング ブロックを使う場合は、次の要素を取得する。
IDirectMusicComposer8::ComposeSegmentFromTemplate メソッドを使って、コードマップ、スタイル、およびテンプレートを組み合わせ、セグメントを構築する。
実行時の音楽アレンジをより柔軟に行うには、IDirectMusicComposer8::ComposeSegmentFromShape メソッドを使って、テンプレートではなく定義済みのシェイプに基づくセグメントを作成する。シェイプは、コマンドおよびサインポスト トラックの作成に使用され、装飾パターン、コード進行、およびコード変更の頻度の選択を制御する。
セグメントを演奏するときに、パートの演奏に使用するバンドを制御することもできる。バンドは通常、スタイルおよびテンプレートにオーサリングされるが、個別のファイルとして提供することもできる。バンドを動的に変更するには、IDirectMusicBand8::CreateSegment メソッドを使って、バンドだけから成るセカンダリ セグメントを作成し、音色や音色の設定をプライマリ セグメントに割り当てるときに、このセカンダリ セグメントを演奏する。詳細については、「バンドの使い方」を参照すること。