Android
サウンド
Unity
Adx2
ゲームサウンド

Unity 2018のサウンド機能をADX2で強化する

こちらは「Unity 5のサウンド機能をADX2 LEで強化する」の続編です。
前記事から三年たった今、「ADX2」も随分変わりましたので、情報アップデートとチュートリアルを書き直しました。

イントロダクション

ADX2は、ゲーム向けサウンドミドルウェアです。ゲームに組み込むランタイムと、再生用のデータを作るオーサリングツールの2つで構成されています。
Unityにおいては、ランタイム部分は.unitypackage形式でプラグインとして収録しています。
端的な利用メリットは次の通りです。

  • Android端末におけるサウンドの再生遅延を低減
  • ゲーム向けに専用開発した音声圧縮形式(HCA、HCA-MX)でCPU負荷を低減
  • BGMのイントロ付きループ再生(サンプル単位のスムーズな連続再生)
  • フェード処理や音数の制御などのサウンド再生処理がビルドイン済み
  • ボイスなど大量音声の管理やパックデータ管理(AssetBundleの代替、解凍コストなし)
  • 実機動作中のゲームに無線接続してリアルタイムに音量バランス調整

ADX2には利用者の形態に応じていくつかのエディションがあるのですが、まずは個人ゲーム開発者向けの「ADX2 LE」で利用方法を紹介します。

https://www.adx2le.com/

Unity組み込みクイックスタート

上にあげた機能を利用するためにはいくつかの設定が必要になりますが、まずはプロジェクト内で音を鳴らすまでの最短手順を紹介します。

仮データの作成

SDK一式の入手

https://www.adx2le.com/ からファイルをダウンロードします。
以前はライセンスファイルの取得手続きが必要でしたが、現在はSDKに同梱されているため手動操作はいらなくなりました。
本書執筆時点ではCRI ADX2 LE SDK : Ver.2.06が最新版です。

zipを解凍すると、中身はこうなっています。

SDKの配置場所として、パスに日本語名が入っていない場所にフォルダごと移します。

新規プロジェクト作成

まずはtools/criatomex/CriAtomCraft.exe を起動します。

空の状態でツールが立ち上がるので、左上のファイル→新規プロジェクトの作成、からウィザードを呼び出します。

新規プロジェクト

プロジェクト名を適当に決めて、「新規プロジェクト作成」をクリックします。

ワークユニットの追加

次に「ワークユニットの追加」というウィザードに遷移します。
こちらはツール内のルートディレクトリのようなもので、複数人同時作業するときにこの単位でファイルを分割できます。
今回はデフォルト設定のままで「追加」をクリックします。

新規プロジェクトが作成できました。

音素材の登録と再生用データの作成

手持ちのサウンドデータ (Waveファイル)をADX2プロジェクトファイルの音素材フォルダに登録します。
ADX2ツールでは音素材フォルダを「マテリアルフォルダ」と呼んでいます。

素材がない場合はFreesound.orgなどから適当に入手して下さい。

wavファイルをツール左下のマテリアルルートォルダにドラッグアンドドロップするとプロジェクトファイルの下に音素材がコピーされ、ツール側にも「マテリアル」として登録されます。

この状態ではまだ再生できません。素材ファイルをプロジェクト内の1音の単位、「キュー」として登録する必要があります。

といっても操作は簡単で、マテリアルフォルダから素材を「CueSheet_0」上にドラッグアンドドロップするだけです。

すると、同名の「キュー」が生成されます。
これがUnity側から呼び出す音の単位です。

作成したサウンドデータの出力

キューを選択した状態でf5キーを押すと、プレビュー再生ができます。

このとき、ツールがバックグラウンドで動作しているランタイムと接続しようとするため、セキュリティ警告が出ることがあります。「アクセスを許可する」をクリックします。

初回再生時の警告.png

ツール上ではボリュームやピッチ変更など様々なパラメータが見えますが、まずはこのデータまま、Unityで読み込む形式に出力します。

ADX2では複数のサウンドデータを固めて圧縮し、TexturePackerみたいな感じにパック出力します。固める単位はツール上のプロジェクトツリー上の「CueSheet」ごとにになります。
現在はデフォルトのままなので、左側のツリービューから「CueSheet_0」を右クリックして、「Atomキューシートバイナリのビルド」を選択します。

ウィザードが表示されますので、「Unity情報出力」にチェックを入れて、「ビルド」をクリックします。

Atomキューシートバイナリのビルド 2018-10-08 16.05.29.png

「ビルドを完了しました」というメッセージとともにログファイルが表示されます。
データが出力されたパスを覚えておきましょう。

Unity側のセットアップ

unitypackageのインポート

Unityで新規のプロジェクトを作成して、ADX2インストールフォルダのunity/plugin/criware_unity_plugin.unitypackageをインポートします。

インポートに成功すると、GameObjectメニューに「CRIWARE」が生えるので、「Create CRIWARE Library Initializder」「Create CRIWARE Error Handler」ををそれぞれクリックして2つのゲームオブジェクトを生成します。

出力したデータの読み込み

Unity EditorのWindowメニュー下にCRIWARE/Open CRI Atom Windowが生えるので、クリックして開きます。

ADX2のデータはStreaming Assetsに配置して内包するのですが、ツール側から出力したデータのディレクトリからコピーしてくるようにすると便利です。
「Use Copy Assets Folder」のチェックボックスをクリックし、コピー元のパスを指定します。

「Select Assets Root」をクリックするとエクスプローラーから選択できますので、データ出力先ディレクトリ/Public/Assets フォルダを選択します。

緑色の「Update Assets of "CRI Atom Craft」をクリックすると、出力したデータをStreaming Assets下にコピーします。
この状態で、一度UnityのPlayボタンをクリックします。

正常に処理された場合、ランタイム側でADX2のデータが読み込まれ、先ほどツールで作成した「キュー」のリストが表示されます。ここでPlayをいったん止めます。

「Create Game Object」をクリックするとシーン上にキューと同じ名前のゲームオブジェクトが生成されます。

ゲームオブジェクトはスクリプト「CRI Atom Source」を持っています。これはUnity標準のAudioSourceに誓いを動きをするコンポーネントです。

今回はキュー名、キューシート名が自動で入っているので、サウンドテストのために「Play On Start」にチェックを入れ、再びPlayを実行します。

はじめにツールに登録した音が再生されましたでしょうか?
(同時に、シーン上に「CRIWARE」ゲームオブジェクトが自動生成されます)

再生されなかった場合は出力データのパス確認や、ツール上でビルドをもう一度試してみてください。

「とにかく早く音を鳴らす」チュートリアルは以上です。
ADX2 LEのうま味であるイントロ付きループ再生の設定や、Android再生遅延対策の設定、圧縮設定等はまた次回。

ポータルサイトについて

「ADX2」に関するポータルサイトが開設されています。最新情報やTIPSについてはこちらから確認できます。
https://criware.info/

「ツールや組み込みで詰まった時のTip集」が便利です。
http://blog.cri-mw.co.jp/adx2portal/adx2tips/

エディションごとの違い

現在ADX2シリーズには3種類のエディションがあり、どう違うのかわかりにくいためまとめました。

ADX2

ADX2は法人向けエディションで、全機能が使えます。
ゲーム対応プラットフォームはWindows/Mac、iOS/Android、ブラウザ、家庭用ゲーム機です。
最新版ではサウンドツールが全面改訂し、Windows / Mac OS両方で利用できるようになりました。

https://criware.info/v3/

有料ですが、開発時は費用が発生せず、ゲーム発売が決まってからの支払いです。
モバイルゲーム向け料金は売り上げ連動の月額払いです。ゲームが長期メンテだったりして売り上げが薄かった月は料金が安くなります。

SteamやSwitch向けに買い切りでダウンロード販売するゲームの料金は、売り上げの0.95%です。
1,500円のゲームを販売する場合、上りは1,050円なのでADX2利用料はおよそ10円x販売本数です。
その他、タイトルの開発規模に応じて相談ができるそうです。

ADX2 LE

ADX2 LEは小規模事業者・個人向けの無償エディションです。販売後も売り上げ1,000万円まで料金が発生しません。
対応プラットフォームはWindows/Mac、iOS/Androidです。
機能に若干の制限があり(データ暗号化機能なし)、バージョン更新が法人版より遅いです。

https://www.adx2le.com/

Unityのほか、Cocos2d-x、Unreal Engine 4でもADX2 LEが利用できるようになりました。
(UE4とADX2の組み合わせ事例としては、「OCTOPATH TRAVELER」が有名ですね。)

利用規定は前回記事で紹介した当時と同じです。

ADX2とADX2 LEはデータ互換性がありませんが、プロジェクトファイルをある程度移植することができます。
あるゲームは個人開発ゲームとしてPC版でADX2 LEを利用し、Nintendo Switch版リリース時にADX2へ移行した事例もあります。

ADX2 Unity Asset Store版

ADX2 Unity Asset Store版はその名の通りAssetStoreで販売されているUnity向けバージョンです。
安価($99)である代わりに、ゲームをビルドできる対象はWindows/Macのみに限定されています。

https://assetstore.unity.com/packages/tools/audio/cri-adx2-unity-plugin-assetstore-100086

AssetStore上ではランタイムのみの配布となり、オーサリングツールは専用サイトからダウンロードします。

どれを使えばええねん

年商1,000万円以上または法人:ADX2
上記以外:ADX2 LE

「ADX2」は機能テストする分にはお金はかからないので、法人の開発案件であればとりあえず試用に申し込むのが吉です。
https://www.cri-mw.co.jp/contact/index.html