こんにちは!
ADXアンバサダーのこはとです。
この度、 ノベルゲームアセット「宴4」でCRIADXが動かせるプラグインを開発し、公開いたしました!
本記事は、この「導入編」の続き「使い方編」の記事となります。
前回の記事はこちら
URL
基本的な使い方
ここからは、具体的な使用方法を解説します。
Acbファイルの作成
Acbファイルとは?
ADXでは、音声ファイルをAudioClipとして直接Unityで再生する、という使い方はしません。
代わりに、再生したい音声を外部オーサリングソフト「AtomCraft」で編集し、そこで書き出したデータをUnityで読み込むのが主な使用方法となります。
書き出すデータは主に、圧縮音声データである「Acbファイル」と、付随する設定データである「Acfファイル」の2つがあり、UnityでADXの音声を再生するには、この両方のデータが必要となります。
今回は、AtomCraftへの導入から、簡単な音声一つを再生する方法を解説します。
AtomCraftで波形を編集して書き出す
まず、AtomCraftを起動し、新しくProjectを作成します。名前とファイルパスは任意の場所で構いません。
作成したら、使用したい素材をAtomCraftに登録していきます。
左のタブの中から「マテリアルツリー」タブを開き、タブの中の「マテリアルルートフォルダ」に使用したい音声素材をドラッグアンドドロップします。
試しに、任意の音声を一つ登録してみましょう。
※なお、MP3形式は対応していないため、Wave形式(.wav)などに変換してから登録するようにお願いします。
登録したら、「ワークユニットツリー」タブを開き、「CueSheet_0」と書かれた場所で右クリックを押し、新規オブジェクト→キュー「ポリフォニック」の作成 を押しましょう。
作成したら、先程登録した音声ファイルをマテリアルツリーからCueの中にドラッグアンドドロップで配置します。
Cueは、UnityAudioにおける「AudioClip」のような立ち位置の機能であり、ADXでは主にこのCueの名前を呼び出すことで音声を再生します。
Cueの種類
Cueにはいくつかの属性がありますが、基本的には一つのCueに複数の音声ファイルを配置した際に効果を発揮します。
https://game.criware.jp/manual/adx2_tool/latest/criatom_tools_atomcraft_cue_type.html
ポリフォニック
基本的なCueです。Cueに配置した音声ファイルを再生します。ポリフォニックとは「多声部」を意味する言葉で、名前の通り、単一の音声ファイルでも再生できますが、複数の音声ファイルを配置しても、一つのCueとしてまとめて(重ねて)再生します。
シーケンシャル/コンボシーケンシャル
Cueに配置した音声ファイルを、1回目は1番目、2回目は2番目…という形で、再生毎に上から順に再生していきます。また、コンボシーケンシャルでは、指定時間内に次の再生が来たときのみ次の音声を再生し、時間を過ぎてもう一度再生した場合は、また1番目の音声ファイルから再生する、という処理で再生されます。
ランダム/ランダムノーリピート
Cueに配置した音声ファイルを、再生毎にランダムな一つを再生します。また、ノーリーピートでは、1回前に再生された音声以外の音声をランダムで再生します。音声ファイルごとに抽選確率を調整することも可能です。
スイッチ
ゲーム内変数をあらかじめAtomCraft内で決めておくことで、その値を参照して再生する音声ファイルを自動で選択して再生します。
シャッフル
シャッフルのCueに複数の音声ファイルを登録すると、初回再生時に再生順がランダムに決定されます。以後、Cueに登録される全ての音声ファイルが再生されるまで、Cueは音声ファイルを一つずつ順番に再生します。全ての音声が再生されると、Cueは再び再生順をランダムに決定し、同じように動作します。
セレクターによるトラック遷移
セレクターラベルと呼ばれるAtomCraftのパラメーターをゲーム側で変更することで、そのラベルの内容に応じた音声ファイルを再生します。主人公の性別に応じたボイスファイルの自動選択などに。
なお、Cueにこれらの効果を設定した場合、ゲーム側では同一の「音声を再生する」という処理だけで自動で実行されます。
Cueが作成できたら、書き出しを行います。
「CueSheet_0」の上で右クリックを押して「Atomキューシートバイナリのビルド」を選択します。
この際、出力パスには、先程のUnityProjectのAssets直下の「StreamingAssets」へ配置するようにしましょう。
書き出したら、最後に「CRIAtom」コンポーネントに保存したファイルパスを設定して完了です。
音声を鳴らす
お疲れ様でした!以上で再生の準備は完了です!
最後に、シナリオデータ(エクセルシート)側で設定を行いましょう。
基本的な音声再生の方法は、宴の既存のやり方と同様です。
シナリオの[Sound]シートに再生したいCueの名前と、シナリオ上でのラベルを紐づけます。
例
| Label | Title | Type | FileName |
|---|---|---|---|
| テストサウンド | テストBGM | Bgm | Cue_0 |
ラベル付けできたら、以下のような内容をシナリオ上に記載することで、Cueを再生できます。
例
| Command | Arg1 |
|---|---|
| Bgm | テストサウンド |
慣れてきたら、一つのCueに複数の音声ファイルを設定したり、Cueの設定をランダムに変えたりして音声の再生される様子の変化を見てみましょう。
Adxカスタムコマンドの使用例
本プラグインで使用できるAdxカスタムコマンドの使用方法について解説します。
ここで紹介するコマンドは、本プラグインで追加されるコマンドの一部です。
より詳細なコマンドの概要はNotionのオンラインマニュアルを御覧ください!
BGMの「AISAC」の効果を変更する
異空間に来たら、BGMにもフランジャーがかかる
実装例
| Command | Arg1 | Arg2 | Arg3 | ~ | Text | Voice |
|---|---|---|---|---|---|---|
| BusSend_Category | Voice | MasterOut | 0 | |||
| BusSend_Category | Voice | Flanger | 1 | |||
| テスト音声よ | Voice_1 | |||||
| CategoryCommand_RemoveAll |
「BusSend_Category」を使用することで、指定カテゴリ全体でバスセンドの音量調整をすることができます。
カテゴリにコマンドを設定すると、以後そのカテゴリで再生される音声には同様の効果が付与されます。
ADXでは、バス設定毎にFlangerなどのサウンドエフェクトを設定し、バス設定毎の出力音量を調整することで、音声にエフェクトを掛けます。詳しい解説はこちらから。
キャラクターボイスのピッチやパンをゆっくり動かす
キャラが小さくなったり、あるいは立っている位置が変わったりで音声が変化
実装例
| Command | Arg1 | Arg2 | Arg3 | ~ | Text | Voice |
|---|---|---|---|---|---|---|
| ParamaterControl_Category | Voice | pitch | 1200 | |||
| ParamaterControl_Voice | Voice_2 | Pan | 90 | |||
| お~い! | Voice_2 | |||||
| ParamaterControl_Voice | Voice_3 | Pan | -90 | |||
| こっちこっち! | Voice_3 |
「ParamaterControl_〇〇」のコマンドを使用することで、指定の音声のパラメーターを変更することができます。例ではVoiceを指定していますが、Voiceを指定する場合のみ 「Voiceが実行される前に」コマンドを実行する必要がある 点に注意してください。
それ以外(Bgm、Se、Ambient)では、基本的に音声が再生された後にコマンドを記載していただいてOKです。
BGMのブロック遷移を実行する
シリアスな展開には、シリアスなBGMを
実装例
| Command | Arg1 | Arg2 | ~ | Text |
|---|---|---|---|---|
| Bgm | BGM_Battle | |||
| バトル開始だ! | ||||
| BlockTransition_Bgm | BGM_Battle | 1 |
「BlockTransition_〇〇」コマンドを使うことで、指定した音声のブロックをArg2に設定したブロックに遷移させることができます。なお、ブロックのIDは0が最初です。
ブロックに遷移の詳しい解説はこちらから。
⚠注意事項⚠
本プラグインの仕様にあたり、いくつかご注意があります
⚠宴のバージョンアップ時の注意
宴の一部機能(テキスト送りSE、カーソルホバーSE)は、宴のスクリプトを上書きすることでADX向けに対応させています。この関係から、宴のバージョンアップを行った際、ADX向けに上書きされたものが宴既存の内容に戻ってしまい、テキスト音やカーソルホバーの音が再生されなくなります。
対策として、宴のバージョンアップを行った際は、必ず「CRIADX Plugin for Utage4」プラグインを再インポートしていただけますと幸いです。
⚠詳細なセーブは未対応
執筆時のバージョン(v1.3.1)では、音量以外で音声に付与できるあらゆるパラメーター(Aisac、ピッチやパン、バスセンドなど)は、宴システムのセーブには対応していません。
そのため、例えば楽曲になんらかのコマンドで効果を付与→セーブ→タイトルに戻ってロードを行った際、音声に付与したコマンドの効果が再現は保証されません。ごめんなさい!
理由としては、音声に付与できる効果が膨大で対応ケースが多く、現在のシステムではそれらを一括にまとめている部分が無いためです。
長期的に今後のアップデートでセーブに対応できないか検討中です。
セーブポイントは特定の箇所に絞って行い、その付近では楽曲に効果を付与しないようにする(あくまでもイベントの間で効果が完結する)などの対策を行っていただけますと幸いです。
⚠WebGLは現在未対応
WebGLビルドは現在未対応となっております。これは単純にCRIADXの進化のスピードに開発が追いついていないだけなので、今後対応予定です。お待ち下さい!
マニュアル
その他対応中の不具合や、詳細な使い方、コマンドのリファレンスなどは以下のマニュアルを御覧ください。
また、CRIADXには他にも、複数のパラメーターを値一つでコントロールできる「AISAC」や、状況に応じて音楽の雰囲気を変更できる「ブロック遷移」など、様々な機能があります。
チュートリアル記事もありますので、まず「どんな機能を実現したいか」を軸に、色々な機能に触れてみてください!
最後までお読みいただきありがとうございました!良き開発ライフを!






