「CRI ADX2 Tools」を初めて使う方へ

CRI ADX2の基礎知識

CRI ADX2の役割

CRI ADX2は、「CRI Atom Craft」などの専用ツールによって出力したデータファイルを、ADX2ランタイムライブラリによって実機上(ゲーム機、スマートフォンなど)で再生します。

cri_adx2_primer_tool_runtime_flow.png

データファイルの作成は、ADX2専用ツールにPro ToolsやSound Forgeなどのサウンド編集ツールによって作成された音声ファイルを登録し、再生タイミング、再生時パラメーターの調整やエンコード(圧縮)等を行って作成します。ランタイムライブラリは、ツールが出力したデータファイル(複数の圧縮された音声データ)をリアルタイムにデコードしながら、実機上で再生します。

「キュー」によるサウンドデザイン

音声ファイルベースのプログラムでは「ファイル名」を指定して音声を再生しますが、CRI ADX2では「キュー (合図)」を指定して再生します。最も単純な使用例は、音声ファイルをCRI Atom Craftにドラッグ&ドロップするとファイル名と同じ名前の「キュー」が自動的に作成されますので、「音声ファイル名」の代わりに「キュー名」を指定して再生することです。

cri_adx2_primer_cue_packing.png

プログラマーは、以下のように「キュー」をセットして再生します。

criAtomExPlayer_SetCueName(player, acb, '爆発');
criAtomExPlyaer_Start(player);

サウンドデザイナは、アプリケーション内で再生される音声を「キュー 」として定義しプログラマーに伝えます。「キュー 」は「合図」という意味ですが、「音声ファイルの再生」だけではなく、「音声の停止」や「音量を下げる」などのサウンド制御を「キュー (合図)」として定義することができます。例えば、ミサイルが爆発する効果音では、着弾時に「ミサイルの飛行音を止めて爆発音を再生する」といったことを一つのキューで行うことができます。「キュー」という抽象化された形式でサウンドデザインできるため、アプリケーションのイベントに合わせて、柔軟で高度なサウンドデザインを行うことができます。

cri_adx2_primer_missile.png


音声再生の仕組み

最初にアプリケーションはプレーヤーを作成します。そして、プレーヤーに対して「キュー 」を設定してスタート関数を実行すると音声を再生します。この時の、ランタイムライブラリの内部動作は以下の通りです。

  1. プレーヤーは、シーケンサーを作成します。
  2. シーケンサーは、キュー によって指定されたシーケンスデータに沿って音声を再生します。
    シーケンスデータは、再生開始やパラメーター変更などのサウンドの制御指示を時間軸(トラック)に配置したデータです。
  3. シーケンサーが音声を再生するタイミングになると、ボイスプールからボイスを取得し、音声データの再生開始を指示します。
    ボイスは1つの波形データを再生する仕組みで、ボイスプールは動的に発音を管理するための仕組みです。
  4. ボイスは圧縮された音声データをデコードしDSPバスに出力します。
    DSPバスは音声信号処理を行うオーディオミキサーのようなもので、複数のバスによるルーティングの機能を持ちます。
  5. DSPバスは、リバーブやコンプレッサーなどのエフェクト処理を行い、実機から音声を出力します。
cri_adx2_primer_concept.png


プレーヤーとは

アプリケーションは「プレーヤー」によってサウンドを制御します。音声を再生する場合、まずアプリケーションはプレーヤーを作成し、キューを指定して再生します。プレーヤーに対してAPI(関数)によって、プログラムから再生を停止したり、音量などパラメーターを変えることもできます。「プレーヤー」を目的別・キャラクタ別のように用途に合わせて作成します。例えば、音楽用プレーヤー、環境音用プレーヤー、キャラクタA用プレーヤー、キャラクタB用プレーヤーのように作成します。
また、単一プレーヤーに対して複数回の再生指示を行うと、同時に複数の音声が再生されます。例えば、銃声や足音などの効果音を次々と再生すると、効果音が重なりながら再生され、自然なサウンド演出を実現できます。

cri_adx2_primer_player.png


キューとは

キューはCRI ADX2 ランタイムライブラリを制御するための「合図」です。
アプリケーションプログラムは、プレーヤーにキューをセットしスタート関数を実行すると、
キューが持っているシーケンスデータに従ってサウンド制御を行います。
従って、

「キュー」=「シーケンスデータ」の識別子

となります。
音声ファイルをキューシートにドラッグ&ドロップすると、その音声データを再生するためのキュー が作成されます。
このキューが最も単純なシーケンスデータとなります。

cri_adx2_primer_cue.png


シーケンサーとは

シーケンサーは、「手順を順番に実行する仕組み」です。例えば、「まず音楽を再生し、4秒後に音楽の音量を小さくし、5秒後にセリフを再生する」といった手順を実行できます。このような手順のことを「シーケンスデータ」と呼びます。プレーヤーキュー を設定しスタート関数を実行すると、シーケンサーが作成されます。シーケンサーは、キューの持つシーケンスデータを読み取りながら、適切なタイミングでサウンド制御を行います。シーケンサーはプログラム的な動作ができますので、ループや条件分岐のような高度なサウンド演出も実現できます。

cri_adx2_primer_sequencer.png


シーケンスデータとは

シーケンスデータは、シーケンサーを制御するためのデータです。時間軸に沿ってサウンド制御を行うことができます。
例えば、
     「銃声を再生した200ミリ秒後に薬莢の落ちる音を再生する」
     「ミサイルの飛行音が2秒間で徐々に小さくなり、その後に爆発音を再生する」
といった時系列的なサウンド制御ができます。
音声を再生する場合、シーケンスデータは下記の情報を持ちます。

 (1)再生開始時刻
 (2)再生パラメーター
 (3)波形データID

再生パラメーターを変えることによって、同じ波形データを音量や音程や音像の位置を変えて再生できるため、少ないデータで様々な音声を再生することができます。

シーケンスデータは、市販のサウンドツール(DAW)のように複数のトラックを持ちます。各トラックには音声データやアクションなどを配置できます。また、「アクション」を配置することによって、再生の停止や再生パラメーターの変更などのサウンド制御を行うことができます。各トラックには再生パラメーターを設定することができ、音量や音程の調整を行うことができます。

cri_adx2_primer_sequence.png


ボイスとは

ボイスとは、1つの波形データを再生する仕組みです。ボイスは「声」という意味ですが、人間は単一の音声しか発声できないことから由来しています。CRI ADX2のボイスは、圧縮した音声データをリアルタイムに展開する仕組みやファイルやネットワークからのストリーミング再生の仕組みを持ちます。また、再生パラメーターを設定することによって、音量、音程、音像の位置(パンニング)の変更、フィルター処理などを行うことができます。ボイスが再生した波形データは、DSPバスに送られますが、各バスに送る量(センド量)を個々に指定することができます。通常のオーディオシステムではボイスはモノラル音源ですが、CRI ADX2のボイスは、多チャンネル音源を扱うことができます。

cri_adx2_primer_voice.png


ボイスプールとは

ボイスプールはボイスを貯めておく場所です。シーケンサーは、音声の再生指示があるとボイスプールからボイスを一つ取り出し、再生パラメーターや音声データを指定して再生します。そして、再生が終了するとボイスはボイスプールへ返却されます。このように状況に応じて動的にボイスを管理する機能を「ダイナミック・ボイス・アサイメント(動的発音管理)」と呼びます。この機構によって効率よく複数の音声を再生できます。

cri_adx2_primer_voice_pool.png


DSPバスとは

DSPバスは、ボイスから出力される音声信号を受け取って、エフェクト処理を行います。CRI ADX2では複数のバスによって、柔軟なエフェクト処理を行うことができます。例えば、効果音用バスで受け取った信号は「フィルター処理」を行いマスターバスと環境音用バスへ送り、環境音用バスで受け取った信号は「リバーブ処理」をしてマスターバスへ送り、最終的にマスターバスでミキシングして実機から出力することができます。このように信号処理の経路を設定することを「ルーティング」と呼びます。
バスは、元来、「乗り合い自動車」という意味ですが、右チャンネルや左チャンネルなどの複数の信号を一度に処理できることから「バス」という名称を使用しています。CRI ADX2のバスは8チャンネルまでの信号を扱えます。

cri_adx2_primer_dsp_bus.png