月別アーカイブ: 2014年8月

8/30(土)「全ゲ連」でADX2 LEについてLTします。

 

こんにちは。ツイッターではハンドルネーム「だんご」の一條です。

きたる8/30(土)、「第16回 全日本学生ゲーム開発者連合交流会」にて
ライトニングトークを行います。
http://d.hatena.ne.jp/zengeren/20140624

ゲーム開発用の無償サウンドミドルウェア「ADX2 LE」を紹介します。
「ADX2 LE」は多数のサウンド演出機能を搭載したライブラリと、大量のサウンド素材をマネージ出来る
ツールがセットになっています。
発音数制御とか、オートフェードイン・アウトとか、ボリューム調整とか、ランダムピッチとか
いろいろ便利機能が使えます。ついでにデータ圧縮もできます。
そのあたり、さくっとご紹介します。

というわけで、「ADX2 LE」の最新情報をお伝えしつつ
みなさんのご意見をお聞かせいただければ、と思っています。

会場は池袋、「豊島区 勤労福祉会館 大会議室」です。
http://www.toshima-mirai.jp/center/e_kinrou/

参加費無料、入退場自由ですので興味のある方はぜひいらしてください。

8/30はりんごちゃんと握手!

IMG_1670
(おさわり禁止)


[Unity]NGUIとADX2 LEを連動させる

どもです。
えるいー便り第一稿は、「ADX2 LE」をUnityで便利に使うためのTIPSシリーズ!

今回はUnity の人気アセット「NGUI」との連動実験をご紹介します。

「NGUI」はもはや説明不要なUnity向けGUI構築プラグインですが、NGUIは「ボタンを押したときに音を鳴らす」処理に、専用スクリプトUIPlaySound.csを用意しています。
このスクリプトをボタンのオブジェクトに付けして、AudioClipを関連付けると音が鳴る仕組みです。

NGUI:UIPlaySound Class Reference

内部では、ヘルパークラスNGUITools.csのPlaySound 関数を呼んでいて、ここからAudioSourceの生成と指定のAudioClipの再生を行っているようです。

そこで、ボタン音再生部分を、「ADX2LE」で鳴らすように差し替えるスクリプトを用意しました。
UIまわりのオーディオデータも、「ADX2 LE」をつかってガッツリ減らしましょう!

UIPlayAtom.cs

NGUIのバージョンは3.6.8を使用しています。
なお、上記スクリプトは、残念ながら単体では動作しません。UIPlaySound.csに内容を足して使います。
(そのまま動作するスクリプトを用意したかったのですが、NGUI由来のスクリプトは公開できませんので、新しく作った部分のみ抽出しました。)

手順は以下です。

0.通常手順で「ADX2 LE」プラグインを導入、CRI Atom Craftからキューシートバイナリを出力してUnityのCRI Atom Windowにキュー一覧が出ている状態から

1.UIPlaySound.csをコピーして適当にリネーム、クラス名も同一に。(例ではUIPlayAtom)
2.上記のプロパティ全部と、Awake()とPlayCue ()関数をクラスに追加
3.もとのスクリプトで”NGUITools.PlaySound();”を呼んでいる部分(4箇所)を、”PlayCue()”; に置き換える
4.AudioClipのpublicプロパティは必要なくなるので削除
5.ADX2LEではPitchの値が0~2から-1200~1200になるので、pitchプロパティのRange設定を
[Range(0f, 2f)] から[Range(-1200f, 1200f)] に差し替える。

このスクリプトをボタンにしたスプライトに着けて、
あとは、作成したキューの名前を指定すれば音が鳴ります。

nguiadx2le1

↑SpriteにBox Collider、UIButtonと今回作成したUIPlayAtomコンポーネントを付けた状態。
cueNameに鳴らしたいキュー名、cueSheetにキューシート名を指定。

もとのヘルパークラスNGUIToolでは、初回再生時にstaticなAudioSourceを生成している
(Hierarchy上ではMainCameraのオブジェクトにコンポーネントがつく)ので、同じ仕様にしています。

もともとは自分用に用意した稚拙なコードですので、
「もっと効率的な方法があるよ」みたいなご意見がありましたら、ぜひ。

ではでは。