CRIWARE Unity Plugin Manual  Last Updated: 2024-04-24
[ゲームへの組み込み]編
CRI Atom Craftで作成したサウンドデータをゲームに組み込み、再生する手順について説明します。

Unityプロジェクトを新規作成し、CRI ADXでサウンド再生を行うオブジェクトをシーンに配置します。
作業全体の流れは、次のようになります。

(1) Unityプロジェクトの作成

(1-1) Unityプロジェクトを作成する
Unityを起動し、まず空のプロジェクトを作成してください。
このチュートリアルでは、「TutorialAtom」フォルダをプロジェクトフォルダとします。
  • [Project Wizard]ウィンドウでの新規プロジェクトの作成
    [File]メニューより[New Project]をクリックしてください。
    [Project Wizard]ウィンドウが現れるので、プロジェクトの保存先を指定し、プロジェクトを作成してください。
    空プロジェクトを作成するため、[Import the following packages]では何も指定しないでください。
    最後に[Create Project]ボタンをクリックし、プロジェクトを作成してください。

    adx2u_qstart_game_newproj_mini.png
    [Project Wizard]
(1-2) シーンを保存する
プロジェクトを新規作成すると、「Main Camera」だけから構成されるシーンが現れます。
いったん、ここでシーンを保存することにします。
このチュートリアルではシーン名を「NewScene」とします。

  • [Save Scene]ダイアログでのシーン保存
    [File]メニューより[Save Scene]をクリックしてください。
    [Save Scene]ダイアログが表示されるので、シーン名を入力してください。


    adx2u_qstart_game_newscene_mini.png
    空プロジェクト作成後の状態
[備考]
ここでは、「Main Camera」の座標が(0, 1, -10)となっています。

(2) プラグインパッケージのインポート

ここで、「CRIWARE Unity Plug-inパッケージ」をプロジェクトにインポートします。
プラグインパッケージファイルはSDKの以下の場所にあります。

  * cri

  \ * unity

    \ * plugin

      \ * criware_unity_plugin_smartphone.unitypackage

 

 

 

 

 

  • カスタムパッケージのインポート
    [Assets]->[Import Package]メニューより、[Custom Package]メニューコマンドをクリックしてください。
    ファイルダイアログが現れるので、上記の場所にあるプラグインパッケージファイルを指定し、インポートしてください。
    注意
    インポートに失敗した場合は トラブルシューティング をご覧ください。

(3) キューシートバイナリのコピー

(3-1) 再生に必要なファイル
Unity上でサウンド再生を行うには、CRI Atom Craftが出力した以下のファイルが必要になります。
  • 「キューシートバイナリ」
    • ACBファイル(*.acb): キューシート単位のキュー情報、再生パラメータ、メモリ再生用波形データ
    • AWBファイル(*.awb): キューシート単位のストリーム再生用波形データ
    • ACFファイル(*.acf): 環境設定やキューシート共通情報。1プロジェクトで1つ
本チュートリアルでは「 [データ作成]編 」で用意したデータを使用します。
本チュートリアルのプロジェクト保存フォルダ「Tutorial」は次のフォルダ構成を持ちます。

CRI Atom Craftのプロジェクト保存フォルダ「Tutorial」の構成
  * CriAtomCraft

  \ * Tutorial

    \ * TutorialProject

      o * WorkUnits

      o * Materials

      |  

      o * PC

      | \ * Assets

      |   o * Plugins

      |   | \ * CriWare

      |   |   \ * CriAtomProjInfo

      |   |     \ * CriAtomProjInfo_Unity.cs

      |   |  

      |   \ * StreamingAssets

      |     o * TutorialProject.acf

      |     \ * TutorialCueSheet.acb

      |  

      o * TutorialProject.atmcglobal

      o * TutorialProject.atmcproject

      o * TutorialProject.materialinfo

      \ * NewProject_ホスト名_ユーザー.user_settings

 

: プロジェクト保存フォルダ

: プロジェクトフォルダ

: ワークユニット・フォルダ

: 共有マテリアルフォルダ

 

 

: ※「再生に必要なファイルの出力先」

 

 

 

: Unity情報ファイル(旧バージョンでは必須でしたが、新バージョンでは不要)

 

 

: ACFファイル

: ACBファイル

 

: 全体設定ファイル

: プロジェクトファイル

: マテリアル情報ファイル

: ユーザー設定ファイル

 

(3-2) ファイルをコピーする
CRI Atom Craftのプロジェクトフォルダ「Tutorial」下の「PC/Assets」フォルダを指定し、UnityプロジェクトのAssetsフォルダへそのままコピーしてください。
直接ファイルをコピーしてもかまいませんが、 Atom Browserウィンドウ のデータコピー機能を使うと簡単に実行できます。
注意
CRI アセットとしてCRIデータを扱う場合は以下のAsset Support アドオンページをご参照ください。
[手順1]
メニューバーの[Window]->[CRIWARE]->[Atom Browser]コマンドをクリックしてください。
「Atom Browser」が出現します。
まだADXのデータをUnityプロジェクトに入れていないため、 Atom Browser の上部には「No cue sheet is found.」というメッセージが表示されています。

adx2u_atomwnd_first.png
「Atom Browser」

[手順2]
Atom Browserの[Import Assets from Atom Craft Project]をチェックします。
[Import From]欄の「・・・」を押すとファイルセレクタが起動します。
ここで、CRI Atom Craft で出力したファイルの入っているAssets フォルダを指定してください。
通常は CRI Atom Craft のプロジェクトファイルがある場所の PC/Assets です。
インゲームプレビュー用データは同じくCRI Atom Craft のプロジェクトファイルがある場所の PC/inGamePreview/Assets です。
このどちらかのフォルダを指定してください。
Assets以外のフォルダを指定した場合はコンソールに次のようなエラーが出ます。

adx2u_atomwnd_assetroot_error.png
「CRI Atom Craft の出力フォルダ指定エラー」

[手順3]
正しいフォルダを指定できると、パス表示が更新されます。

adx2u_atomwnd_assetroot_set.png
「出力フォルダ指定後」

フォルダを指定したら、Atom Browser 下部の [Import Assets] ボタンをクリックしてください。
そうするとUnityプロジェクトにAssets/StreamingAssetsというフォルダが追加され、必要なデータファイルがその中に追加されます。

Unityプロジェクト「TutorialAtom」のAssetsフォルダの構成
  * TutorialAtom

  \ * Assets

    o * Editor

    |  

    o * Gizmos

    |  

    o * Plugins

    | o * Android

    | o * cri_ware_unity.bundle

    | o * iOS

    | \ * CriWare

    |   o * CriAtom

    |   o * CriFs

    |   \ * CriMana

    |  

    \ * StreamingAssets

      o * TutorialProject.acf

      \ * TutorialCueSheet.acb

 

: Assetsフォルダ

 

 

 

 

: CRIWARE Unity Plug-in

 

 

 

: CRIWARE Unity Plug-inソース

 

 

 

 

: StreamingAssetsフォルダ

: ACFファイル

: ACBファイル

 

データコピーが完了すると、Unityの「Projectビュー」が更新され、次のような状態となります。

adx2u_qstart_game_datafiles_mini.png
データコピーが完了した状態

(4) CRIWARE Library Initializer の作成

音を貼り付ける前に、CRIWARE全体の初期化モジュールとエラー処理モジュールを追加しましょう。
初期化モジュールで最大同時再生数などのリソース管理を行うため、必ず追加してください。
Unity メニューバーの[GameObject]->[CRIWARE]メニューから[Create CRIWARE Library Initializer] と[Create CRIWARE Error Handler]をそれぞれ実行してください。
Unity の Hierarchy ウインドウに CriWareInitializerCriWareErrorHandler が追加されていれば成功です。
ここではそれぞれのオプションを変更する必要はありません。

adx2u_qstart_game_initializer_hierarchy.png
CRIWARE Library Initializer 作成後

(5) Atom Browserによるキューの確認

コピーしたキューシートバイナリの内容を「Atom Browser」でチェックしてみましょう。
(5-1) 「Atom Browser」を表示する
ADXデータをUnityプロジェクトのフォルダにコピーが終わった後に、 Atom Browserの「Reload Info」ボタンを押します。
「No cue sheet is found.」と出ていたメッセージが消えて、キューの一覧が表示されます。


adx2u_atomwnd_cue_list.png
「Atom Browser」


これからAtomBrowserはよく使いますので、一旦Unityのメインウインドウにドッキングさせましょう。

(5-2) キューシート情報を確認する
「Atom Browser」は、Unity上でCRI ADXのコンポーネント作成などを補助するためのツールです。
このウィンドウからキューシートの選択やキューの一覧、CRI Atom Sourceの作成などを行うことができます。
「Atom Browser」の[Cue Sheet]にはキューシート情報が表示されています。
表示されていない場合は「Path to Search」のパス設定を確認したうえ、
「Reload Info」ボタンを押して、キューリストの情報を取得しましょう。

キューシートの名前や、キューシートに含まれるキュー一覧がわかります。
キュー一覧でキューを選択すると、下部の[Cue Infomation]の情報が更新されます。

(6) CRI Atom Sourceの作成

Unity上でサウンド再生を行うには、まず、「CRI Atom Source」を作成する必要があります。
単にサウンドを再生するだけであれば、これだけで十分です。
CRI Atom Sourceの作成方法には、次の二つの方式があります。
種々のケースにあわせて、CRI Atom Sourceの作成方法を選ぶことができます。
  • 単体の ゲームオブジェクト(Game Object) を作成し、CRI Atom Sourceコンポーネントを追加する
  • CRI Atom Sourceコンポーネントを他のゲームオブジェクトに貼り付ける
以下、この二つの方法それぞれを使って、CRI Atom Sourceを作成します。

(6-1) 単体のゲームオブジェクトとして作成する。
まず、heli_loop(ヘリコプターのループ音)を再生するCRI Atom Sourceを作成してみます。
  1. 「Hierarchyビュー」でオブジェクトを選択しないようにしておきます。
  2. 「Atom Browser」の[Cue Sheet]欄にあるキュー一覧で「heli_loop」を選びます。
  3. 「Atom Browser」の[Cue Infomation]欄の下部にある[Create GameObject]ボタンをクリックします。
これで、シーン上にCRI Atom Sourceが作成されました。

「Hierarchyビュー」には、作成したばかりの「heli_Loop(CriAtomSource)」が現れています.
クリックすると「Inspector」にCRI Atom Sourceの詳細情報が表示されます。
ここで、CRI Atom Sourceの[Play On Start]をチェックしておきます。

adx2u_qstart_game_gameobj_le_mini.png
ゲームオブジェクトとしてCRI Atom Sourceを作成

[Play On Start]をチェックしたので、ゲームをスタートさせるとすぐに heli_Loopが再生されるようになります。
Unityのプレイボタンをクリックして実際に確かめてみてください。
[備考]CRI Atomオブジェクトについて
CRI Atom Sourceを作成すると、「CRIWARE」という名前を持つ「CRI Atom」オブジェクトが自動的に作成されます。
CRI Atomはサウンド再生全体を制御するためのオブジェクトです。

(6-2) コンポーネントとして他のゲームオブジェクトに貼り付ける。
他のゲームオブジェクトにCRI Atom Sourceをコンポーネントとして貼り付けてみます。
  1. メニューより [GameObject]->[3D Object]->[Cube]を選び、Cubeを作成してください。
  2. 作成したCubeの座標が(0, 0, 0)であることを確認してください。
  3. 「Hierarchyビュー」でCubeを選択しておきます。
  4. 「Atom Browser」の[Cue Sheet]欄にあるキュー一覧で「gun1_High」(銃声)を選びます。
  5. 「Atom Browser」の[Cue Infomation]欄の下部にある[Add Component]ボタンをクリックします。

これで、CubeにCRI Atom Sourceコンポーネントが貼り付けられました。

次に、作成したCubeをクリックし、「Hierarchyビュー」でCRI Atom Sourceの[Play On Start]をチェックしておきます。

adx2u_qstart_game_gameobj2_le_mini.png
コンポーネントとしてCRI Atom Sourceを作成
Cubeに貼り付けたCRI Atom Sourceコンポーネントの [Play On Start]もチェックしているので、 ゲームをスタートさせるとすぐに、gun1_High と heli_Loop が再生されます。

(7) スクリプトによるサウンド再生制御

ここまでは単純なサウンド再生を行うだけでしたが、スクリプトを追加して、ゲームとのインタラクションを加えましょう。
ここでは、マウスクリックするとサウンド再生を行うスクリプトをCubeに貼り付けることにします。
(7-1) サウンド再生を制御するスクリプトをCubeに追加する。
以下の手順で、Cubeにスクリプトを貼り付けてください。
  1. Cubeを選択し、「Inspector」で[Cri Atom Source]の[Play On Start]のチェックを外してください。
    (ゲーム開始時の自動再生を止める)
  2. 「Hierarchyビュー」でCubeを選択しておきます。
  3. 「Projectビュー」で右クリックし「C# Script」作成してください。
    ファイル名を「CuePlay」に変更してください。
  4. CuePlay.csを「Hierarchyビュー」上のCubeへドラッグアンドドロップし、Cubeに貼り付けてください。

    adx2u_qstart_game_gameobj2_cueplay_mini.png
    Cubeにスクリプトを貼り付ける

MonoDevelopを起動し、CuePlay.csを次のように編集してください。

public class CuePlay : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnMouseDown() {
CriAtomSource audio = (CriAtomSource)GetComponent("CriAtomSource");
audio.Play();
}
}

OnMouseDown関数
このスクリプトでは、OnMouseDown関数でマウスボタンをクリックした時の処理を記述しています。
まず、オブジェクトに割り当てられた CRI Atom Sourceコンポーネントを取得します。
次に、CRI Atom Source に設定されたキューを再生します。

(7-2) ゲームを実行する
Unityのプレイボタンをクリックしてゲームを実行してください。
ゲームが始まると同時に heli_Loop(ヘリコプターのループ音)が再生されます。
シーン中央のCubeをクリックすると、gun1_High(銃声)が再生されます。

adx2u_qstart_game_gameobj3_run_mini.png
ゲーム実行中