CRIWARE Unity Plugin Manual  Last Updated: 2024-04-24
Unity Editor 上で音声をバウンスする
CriWare.Editor.CriAtomWaveFile クラスでは以下のような用途向けに、ADXで再生した音をwavファイルとして出力(バウンス)できます。
  • 独自Editor拡張での描画
  • ADXのコーデックで圧縮した音声を一時的に非圧縮データとして利用

動作概要

CriWare.CriAtomExPlayer で再生した音声は以下のシーケンスたどり、ASR(Atom Sound Renderer)にレンダリングされHWから出力されます。
atom_process_flow.png
CriWare.Editor.CriAtomWaveFile クラスでは、上記シーケンスの最終部であるASRでミキシングされた音声を
wavファイルとして書き出すことができます。
ASRのミキシング結果を出力するため、以下のような利用状況の最終的な出力を書き出すことができます。
  • CriAtomExPlayerのパラメーター変化適用結果
  • 複数のCriAtomExPlayerでの音声再生結果
  • スナップショット機能などで音声再生中に、DSPバスの設定を切り替えた際の結果

注意
・バウンスを実時間より早く行うことはできません。
 これはAtomのサウンド出力をリアルタイムに記録しているためです。
・バウンスの対象となるASRラックはCRIWARE Unityプラグイン内部で作成されたデフォルトのASRラックのみになります。
 ユーザーアプリケーション上で作成したASRラックはバウンスの対象にはなりません。

使用方法

CRIWARE Library Initializer コンポーネントや CriWareInitializer::Initialize
または CriWare.Editor.CriAtomEditorUtilities.InitializeLibrary() によって
ライブラリを初期化したあとバウンスを開始します。
以下のサンプルではバウンスを開始したあとに、プレーヤーで発音していますが、
バウンスを開始するタイミングとプレーヤーで発音するタイミングに制限はありません。
string outputFilePath; //Bounced output file path
uint numChannels; //Number of channels in the bounced file
CriWare.Editor.CriAtomWaveFile.StartBounce(outputFilePath, numChannels);
~~
player.Play(acb, cueName);
// Get bounce time for progress bars, etc.
~~
// Stop bounce and flush file.
CriAtomPlugin.FinalizeLibrary();
注意
CriWare.Editor.CriAtomWaveFile.StartBounce() のチャンネル数には制限があります。
指定可能なチャンネル数についてはリファレンスコメントを参照ください。