1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Unity x ADX】CRI ADX初心者にもオススメ!CRI Asset Support Addonのメリットと使い方を紹介

Last updated at Posted at 2025-07-31

はじめに

ADXアンバサダーのこはとです!
tutorial.gif
CRIADXには、Asset Support Addonというプラグインが提供されています。
Asset Support Addonは、UnityのADXの機能を更に使いやすくするUnity専用の拡張機能となります。本記事では、Asset Support Addonを導入することによるメリットと、実際の導入方法、使い方を紹介します。

この記事は、CRIWAREが提供するサウンドミドルウェア「CRI ADX」の機能についての紹介をします。
本記事では、CRI ADX初心者の方でも触れやすいよう、簡単な内容で解説していきます。

CRI ADXについてはこちら

Asset Support Addonとは?

Asset Support Addonは、CRI社が提供する、ADX for Unity向けのプラグインです。
2022年のADXのアップデートで新しく追加されたパッケージであり、従来のUnity環境におけるADXのインターフェイスを拡張し、より使いやすく、幅広いケースに対応することが目的の拡張機能です。

導入するとことで、大きく以下の3点のメリットがあります。

メリットその1:CRIAssets形式の追加により、ACBやACFファイルの認識が変わり、扱いやすくなる

Asset Support Addonを導入すると.acbや.acfなどのADX用ファイルが、実体はそのままに、Unity側で新しく「CRIAssets」という形式で認識されるようになります。
導入すると、ACBやACFなどのファイルにアイコンが付くようになります。

6.png

CRIAssetsでは、ファイルにアイコンをつけるだけではなく、例えば

  • ACBやACFのファイル内容のプレビューをUnity上で確認することができる
  • ファイルパスの制限が無くなる(StreamingAssetsフォルダじゃなくても扱えるようになる
  • Prefabのように、ACBやACFをドラッグアンドドロップで参照することができる

など、より直感的なファイル管理を行える機能が追加されます。

tutorial.gif

メリットその2:CriAtomCueReferenceで、より直感的かつ安全に音声管理ができる

従来のADXで音楽を再生する際は、CueSheetとCueNameの両方を文字列(String)で入力する必要がありました。
これは、動的な参照がしやすい代わりに
CueSheetに無いCueNameを指定してエラーが発生する
タイピングミスでエラーが発生する
など、人為的なミスでエラーが発生するリスクもありました。

1.png

一方、Asset Support Addonを導入すると、新しくCriAtomCueReferenceという構造体が追加されます。

これは「CueSheetに紐づいたCueNameだけを選択できる」構造体となっており、これを用いることで、従来のADXで発生していたような「CueNameの指定ミス」を減らすことができます。
また、ACBファイルのドラッグアンドドロップ+CueNameのドロップダウンで、直感的に再生したい音声を指定することができます。

tutorial_2-1.gif

メリットその3:ACBなどのファイルの組み込み形式が拡張され、WebGL向けビルドにも対応できる

Asset Support Addonでは、CriAssetsの恩恵により、ACBなどのファイルの読み込み形式が増え、従来とは異なる方法でデータの読み込みができるようになりました。

これまではACBなどのファイルをStreamingAssetsフォルダに入れることでロードを行っていましたが、StreamingAssetsからのロードは、WebGLなどの一部のプラットフォームでは対応しておらず、代わりにAddressablesを用いて、外部サーバーなどからデータをロードする必要がありました。
このため、ADXを用いたプロジェクトは、特にUnityRoomなどのWebプラットフォーム向けビルドの敷居が高いという問題がありました。

Asset Support Addon導入後は、CRIAssetsの項目に新しく「DeployType」という項目が追加され、この内容によって、各ファイルが「どのような読み込まれ方をするか」を選択することができるようになりました。

2.png

各DeployType毎の簡単な違いを以下に記載します。

OnMemory

これを設定したファイルは、ゲームAssetそのものにデータとして含まれ、ビルドデータでは他のゲームのAsset(例えば画像など)と同様に読み込まれます。
 →小規模なゲーム向け。WebGL向けのビルドはこれで解決します。Asset Support Addonを導入後はこの設定を推奨します

Addressable

これを設定したファイルは、Addressableのビルドにこのファイルが含まれるようになり、ビルドデータではAssetBundleからデータを読み込むようになります。
 →サーバー経由で楽曲データなどを更新する必要がある、大規模なゲームでオススメの設定

以上がAsset Support Addonの主な機能です。
まとめると

  • CRIAssets」形式で、ACBやACF、AWBファイルが見やすくなる
  • CriAtomCueReference」構造体で、Unityでより直感的、かつ安全に扱いやすくなる
  • DeployType」設定で、Addressableを使わずとも、WebGLのビルドに対応できる
    などのメリットがあります。

次の項目で、実際に導入して使い方を見てみましょう。

Asset Support Addonを導入してみる

Asset Support Addonの実体は、Unity向けADXプラグインのフォルダに含まれてるUnityPackageで、導入自体はこのUnityPackageをプロジェクトにImportするだけでOKです。
ただし、Asset Support AddonはUnity向けADXプラグイン(本体プラグイン)の機能に上乗せして使用するプラグインとなっています。そのため、導入の前には必ずUnity向けADXプラグインが導入されていることを確認しましょう。

3.png

本体プラグインの導入方法はこちらをご参照ください。

Asset Support Addonのインポート

本体プラグインの導入が確認できたら、まずImportPackage>Custom Packageを選択。
4.png

Unity向けADXプラグインのフォルダのAddonへ移動し、UnityPackageをインポート。

5.png

インポートが正常に完了すると、StreamingAssets以外のフォルダへ配置したADX用ファイルにアイコンがつくようになります。
6.png

※なお、StreamingAssets以下のフォルダに配置すると、従来通りのファイルの扱いが可能です。

Asset Support Addonを使ってみる

それでは、実際にAsset Support Addonを使った機能を実装してみましょう!
今回はAsset Support Addonを用いることで、既存のUnityAudioに近い操作感で、ゲーム実行ボタンを押すと音声が再生される、という機能を実装してみようと思います。

1:UnityProject、Acb、Acfファイルを準備する

Unityのプロジェクトを新しく作成し、オーサリングソフト「AtomCraft」で音声の設定、ACB、ACFのデータを作成します。
もし既存のプロジェクトやデータがある場合は、そちらを使用してもOKです。
本記事ではこのプロセスの解説は割愛するため、詳しい操作方法などはこちらの記事の「作成したデータの出力」までをご参照ください。
今回は音声の設定されたCueが一つでも存在しているCueSheetがあれば大丈夫です。

作成できたら、Unityプロジェクトに作成したACB、ACFを書き出しておきましょう。

2:ADX用コンポーネントを作成する

CRIADXを使用するうえで必要なコンポーネント群をScneneに作成します。
まず、新しく空のGameObjectを作成し、名前を「CRIWARE」とします。(名前は任意でOK)

7.png

このGameObjectに、AddComponetから新しく<CriAtomAssets>を選択しましょう。

8.png

CriAtomAssets?

CriAtomAssetsは、ACBやACFといった、ADXで使用するためのファイルをゲーム内で読み込み・初期化するために使用するコンポーネントです。
ゲーム内で使用するACBやACFなどのファイルは、音声の再生前に何らかの方法で初期化する必要があります
CriAtomAssetsを設定することで、ゲーム実行時にこれらを一括で初期化させることができますが、後述のCriAtomSourceForAssetを使用しても同様の初期化が可能です。
機能紹介も兼ねて、今回はCriAtomAssetsとCriAtomSourceForAssetの両方を使用します。

作成したら、CriAtomAssetsコンポーネントにAcbなど必要なデータを参照させます。
Projectタブで作成したACBデータの場所を開き、AcfAssetの箇所にACFファイルを、AcbAssetsの項目を追加して、ACBファイルを追加しましょう。

9_1.png

9_2.png

9_3.png

「CriAtomAssets」の設定が終わったら、更に右クリックメニューのCreateから、CriWareErrorHandlerとCriWareLibraryInitializerを作成し、GameObject「CRIWARE」の子要素にしましょう。

9_4.png

10.png

CriWareErrorHandler と CriWareLibraryInitializer?

上記の2つのコンポーネントはそれぞれ
CriWareErrorHandler:ADXの機能でエラーが発生した際にエラーログの出力を担当
CriWareLibraryInitializer:ADX機能全体の設定の初期化を担当
といった役割があり、ADXをUnityで扱う際は、必ずこの2つのコンポーネントがSceneに存在している必要があります。

3:スクリプトを作成する

任意の場所に新しくスクリプトを作成しましょう。
今回は名前を「TestSound」としています。
以下がスクリプトの内容です。

TestSound.cs
using UnityEngine;
//※↓忘れずに入れる!
using CriWare.Assets;


public class TestSound : MonoBehaviour
{
    //Soundの内容。Editorで設定する
    public CriAtomCueReference soundCue;
    //Soundを再生するSource。Editorで設定する
    //※セットするコンポーネントは<CriAtomSource>ではなく<CriAtomSourceForAsset>なので注意!
    public CriAtomSourceForAsset soundSource;

    //ゲーム実行ボタンを押した際に一度だけ実行
    private void Start()
    {
        //音声をSourceにセット
        soundSource.Cue = soundCue;
        //Sourceを再生
        soundSource.Play();
    }
}

重要なポイントについて、以下で解説します。

using CriWare.Assets;

上述の機能に限らず、スクリプト内でAsset Support Addonの機能を使う際は必ずこのNameSpaceの読み込みが必要です。忘れずに記述しましょう。
ちなみに、Asset Support Addon以外の従来のCRIADXの機能を使う場合は、これとは別に「using CriWare」の記述も必要です。音声関係を取り扱うスクリプトでは、ひとまずその2つをスクリプトの冒頭に記述しておくと良いでしょう。

using UnityEngine;
using CriWare;
using CriWare.Assets;

CriAtomCueReference

前章でも解説した、CueSheetに紐づいたCueNameだけを選択できる構造体です。
この構造体一つで、CueSheetとCue情報をまとめて管理することができ、これを使用することで、より直感的かつ安全に音声を参照することができます。

Sample
//↓従来のやり方。基本的に両者はセットで使用。
//cueSheetに無いcueNameを指定するとエラーになるほか、タイプミスをしてもエラーになる。
public string cueSheet;
public string cueName;


//↓Asset Support Addonで追加されたやり方。
//直接Acbファイルをドラッグアンドドロップし、その上でAcbに紐づいたCueを選択するだけ。
//最終的なSourceへの入力は変わらないため、もちろん従来通りのやり方も可能。
public CriAtomCueReference cueReference;

今回はPublic変数にしたため、Editor上で音声をドラッグアンドドロップでセットすることができ、操作は既存のUnityAudioとかなり近い操作感にすることができます。

余談ではありますが、CriAtomCueReferenceは一つの構造体からCue、CueSheetの情報を両方取得することが可能です。
ただし、CriAtomCueReferenceからはCueの情報はCueIDのみが直接取得可能です。
そのため、CueNameを取得したい場合は、ACBに登録されているCueInfoの中から、CueIDのものを取得してCueNameを読み取る形で取得してください。

sample
   string GetCueName(CriAtomCueReference soundCue)
   {
       string cue_Name = "";
       //・誤
       //cue_Name = soundCue.cueName;//←CriAtomCueReferenceに.cueNameは存在しない

       //・正(例)
       //CueIDを参照し、一回Infoに落とし込む
       CriAtom.GetCueSheet(soundCue.AcbAsset.name).acb.GetCueInfoByIndex(soundCue.CueId,  out CriAtomEx.CueInfo info);
       //InfoからCueNameを取得する
       cue_Name = info.name;

       return cue_Name;
   }

CriAtomSourceForAsset

Cueを再生するためのコンポーネントの一つです。
機能としてはUnityのAudioSourceと同じような扱いも可能ですが、単一音声の重複再生や、Editorでの直接プレビュー、フェードイン、フェードアウトをスクリプト上から設定できるなど、UnityのAudioSourceより詳細に音声を操作できる機能が実装されています。
<CriAtomSource>が従来のADXでの機能に対し、<CriAtomSourceForAsset>は、これをCRIAssets向けにマイナーチェンジしたコンポーネントとなります。
今回はCriAtomCueReferenceをセットし、Play()で再生する機能を実装しています。

実装ができたら、スクリプトをGameObjectに設定していきましょう!

4:作成したスクリプトを設定する

新しく空のGameObjectを作成し、名前を任意のものにしましょう。
今回は「SoundPlayer」としました。

11.png

作成した「SoundPlayer」に、AddComponetから<TestSound>と<CriAtomSourceForAsset>コンポーネントを追加しましょう。

12.png

13.png

追加できたら、音声を設定していきます。
SoundCueにAcbファイルを、SoundSourceに先ほどアタッチしたCriAtomSourceForAssetを設定しましょう。

14.png

もし複数のCueをCueSheetに登録した場合は、SoundCueの横のドロップダウンで再生したいCueを選択することができます。

15.png

5:セット完了!音声を再生してみよう

以上でセットアップは完了です。
ゲームを実行し、音声を再生してみましょう。
登録した音声が正常に再生されればOKです!

まとめ

お疲れ様でした!
Asset Support Addonを用いることで、

  • CRIAssets」形式による、UIのUnity向け最適化
  • CriAtomCueReference」構造体の、より直感的な参照、より安全な運用

といった部分が体験できていたら幸いです。

特に今回のAsset Support Addonで追加されるCriAtomCueReferenceは、エディタ上でも視認性が良くなるほか、不具合の発生も防ぎつつ、スクリプト上でも一つでCueIDとCueSheetの情報を両方渡すこともできるので、非常に便利な機能となっています。
Listにして複数取得させたり、他の構造体のメンバに含めたりなど、使い方次第でよりCueの管理がしやすくなると思います。ぜひいろいろな使い方を工夫してみてください!

また、CRIADXでは、公式のDiscordコミュニティも随時公開されています。
「こんなことはできる?」
「不具合が解消しない!」
「他の人がどんな使い方をしているのか知りたい!」
など、気になることや知りたいことを、開発スタッフに直接質問することもできます。
イベント情報等もこちらで告知しておりますので、ご興味のある方は、ぜひご参加ください!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?