【Unity】誰でも簡単にCRIADX2データを再生する

#誰のために何を作ったか？

●誰のために
サウンドクリエータで、Unity用のADX2データ（acf,acb)を作っているけど、
Unityはまったく触ってない／触ったけどよくわからない
という方は多いかと思います。

●何を
ADX2Cursorというものを作りました。
これは、acf,acbを用意できれば、
あとは、数分のセットアップで音を鳴らせるというものです。

なるべく手間をかけず、自力でゲームエンジン上で鳴らせる＝楽しい
楽しさをもっといろんな人と共有したい（気楽に創作物を共有できる世界で自分も楽しむために）
と考えました。

まだ、出来立てほやほやで、必要最小限のことだけしかできないですが、
みんなで楽しめるプラットフォームみたいなものになったらいいなとか妄想しています。

■この記事は、以下のような方を対象としています。
- Unityで独創的な楽器アプリ作りたい。
- Unityのスクリプトは全くわからない。（わかっててもOKです）
- ADX2LEを使ってみたい。（すでに使っている方も歓迎です）

#準備するもの
##Unity 
いわずとしれたゲームエンジン。
http://japan.unity3d.com/　
からダウンロードしインストールしておく

1.Unityを起動する。（ログインとか済ませておく、分からない時はスキップ）
2.プロジェクトを新規作成。

##ADX2LE 　
たくさんの音をacbとしてパッキングして扱いやすくしてくれる。
http://www.adx2le.com/
からダウンロードしておく
![image](https://qiita-image-store.s3.amazonaws.com/0/96808/e0b2f788-f9fc-e4c3-9526-0d37a7ace48d.png)

余談：ライセンスが切れてCraftが起動できないとかの場合は、[ライセンスを発行](http://www.adx2le.com/download/license.html)してもらうと良い。
（急ぎの場合は再度ダウンロードするのもあり）

1.cri_adx2le_sdk_v202.zipを解凍。（　PCの場合はセキュリティのブロック解除も忘れずに）
2.criadx2le_sdk_v202/cri/unity/plugin/criware_unity_plugin.unitypackageをダブルクリック。
![image](https://qiita-image-store.s3.amazonaws.com/0/96808/6d11d438-9d92-5410-2dff-f9864c3304c4.png)

3.Unity上で、importボタンを押す。
![image](https://qiita-image-store.s3.amazonaws.com/0/96808/619f416a-92c7-b76f-c82b-fdfb3e723049.png)


4.CRIメニューから「Create CriWare Library Initializer」を選ぶ。
5.CRIメニューから「Create CriWare Error Handler」を選ぶ。
![image](https://qiita-image-store.s3.amazonaws.com/0/96808/8700adda-2ea8-a7fa-0aae-6157cb716269.png)


##ACF,ACBの用意
1.criadx2le_sdk_v202/cri/unity/samples/criatom/basic/Assets/StreamingAssetsをUnityのAssetsにドロップして追加する。
この時、必ずAssetsの直下にStreamingAssetsフォルダができるようにする。（場所と名前に意味があるので）
![image](https://qiita-image-store.s3.amazonaws.com/0/96808/5d198780-ef95-22ed-1dd9-10a29f599431.png)


StreamingAssets内の.acfや.acbを解析するので、任意のacf,acbに置き換えてもらえばそれに変わります。

acf,acbを自作したい人は　Takaaki Ichijo氏の[自力でゲームのSEを生成する方法　by 「ADX2 LE」](http://www.slideshare.net/takaakiichijo/adx2-le-21311331)
とか参考にするとよいかも。

##ADX2Cursor 
Unityの物理エンジンで音を鳴らすもの。カーソルを当てると音が鳴る。
https://github.com/tatmos/ADX2Cursor
からunitypackageをダウンロードしておく。（詳しくは後述動画参照）
![image](https://qiita-image-store.s3.amazonaws.com/0/96808/b84737b0-b715-1450-d64b-795f5575e56b.png)


1.ダウンロードしたADX2Curor.unitypackageをダブルクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/96808/3f9a715c-a0a3-31fb-c39a-d86faf41fd11.png)

2.Unity上で、importボタンを押す。
![image](https://qiita-image-store.s3.amazonaws.com/0/96808/7cd8c797-ae90-79c0-a0bc-9afbc8b9e0f9.png)

3.Hierarchy上で右クリックから「Create Empty」を選ぶ。
![image](https://qiita-image-store.s3.amazonaws.com/0/96808/3da8b6e8-d2f3-b92c-197b-5597b54ec3ef.png)

4.できたGameObjectのInspectorで[Add Component]検索から「ADX2 Loader」と入力して追加。
![image](https://qiita-image-store.s3.amazonaws.com/0/96808/2df68cab-335f-750b-4725-de6d4d604c85.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/96808/37120570-68e8-5152-2733-24daccc96a33.png)
上の絵のacf,acbは[こちら](https://github.com/tatmos/ADX2Cursor/blob/master/GGJ2017Sample.unitypackage)
![image](https://qiita-image-store.s3.amazonaws.com/0/96808/49755308-2fbf-f601-0642-5c2586fdfe98.png)
Downloadしてダブルクリックすれば入ります。

![image](https://qiita-image-store.s3.amazonaws.com/0/96808/1ff1b16d-db4e-2e51-9250-3bcd5995556e.png)
「ADX2Cursor」のTransform PositionのY座標をいじれば音が変わります。

#動画による操作手順紹介
動画を参考に
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/4xmUKDZvQyU/0.jpg)](http://www.youtube.com/watch?v=4xmUKDZvQyU)

概要
1.プロジェクト作り、
2.シーンにオブジェクトを配置、
3.StreamingAssetsフォルダをコピー、
4.実行
ドラッグ＆ドロップの操作だけで、様々な音がなるオブジェクトをたくさん用意できます。

#音源の用意
ADX2の素材(acf,acb)はCRI Atom Craftで作れば、いろんな音が鳴らせます。
自作のADX2LEのacf,acbを公開しても楽しいかと思います。

楽器として面白そうなコンバータも作ってみたのでリンク貼っておきます。
[SoundFontから]
・サウンドフォントからADX2LE変換するSF2ADX2を作ってみた http://qiita.com/tatmos/items/cfd625c7a4363a3dfe97
[UTAU音源から]
・UTAUからADX2LEに変換するUTAU2ADX2を作ってみた　http://qiita.com/tatmos/items/491dadbc77ad929396be

#これからの改良案
今は、まだ、物理で鳴るだけです。
改造しやすいようにあえて最小のシンプルなものにしておきました。
工夫できる点はいっぱいあるかと思います。

改変、配布自由ですので何か作ってみませんか？
できたら公開してもらえると嬉しい。

- 表示を工夫する
- 楽器（打楽器、鍵盤楽器、テルミン等）を作る
- Oculus touch対応 　[フレームシンセシスさんのページ](https://framesynthesis.jp/tech/unity/oculusrift/)　を参考に
- ミキサーを追加する
- 録音／再生機能を追加する
- 配置を保存／ロード／Shareする（Minecraftみたいなやつ）
- カーソルをマウスドラッグに対応するとか　NEAREALさんの[Unity : ドラッグでオブジェクトを動かす](http://neareal.com/1230/)　を参考に

続き → [Unity Oculus touchでADX2LE鳴らす](http://qiita.com/tatmos/items/40a888bc7368b1cbeb51)