cocos2d-x talks #2 「サウンド実装のちょっとした気配りで...

42
サウンド実装のちょっとした"気配り"ユーザに快適感を。 &サウンドミドルウェア「ADX2」のご紹介 2015313株式会社CRI・ミドルウェア

Upload: takaaki-ichijo

Post on 19-Jul-2015

1.590 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

サウンド実装のちょっとした"気配り"でユーザに”快適感”を。

&サウンドミドルウェア「ADX2」のご紹介

2015年3月13日

株式会社CRI・ミドルウェア

Page 2: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

2

このロゴの会社です

Page 3: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

■ CRIのミドルウェア群の総称

製品ラインナップ

・CRI ADX2オーディオ統合ソリューション

・CRI Sofdec2動画再生ミドルウェア。複数同時再生、アルファムービーなど

・ファイルマジックPROファイル読み込み、圧縮/パッキング、ネットワーク対応

CRIWAREとは

Page 4: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

今日のテーマ

ゲームサウンドの

クオリティアップをしよう!

Page 5: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

サウンド演出にちょっとだけこだわる

● サウンド再生比較

単に音が鳴っているのと、ちょっとした演出を入れた場合の違い

- クロスフェード

- ランダム再生

- パラメータのランダマイズ

- ダッキング

- 発音数制御

→ 自然さ、聞き心地の良さ、ゲーム的な強調。

Page 6: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

ちょっとした演出を入れる

• BGMは「フェードイン」「フェードアウト」「クロスフェード」

切り替え時に音がブツッとなると不快!

→クロスフェードで自然と切り替わるように。

• セリフやジングルが聞こえやすくなるように

BGMがガンガン鳴っていると肝心な音が聞こえない!

→目立たせたい音がなる時だけ、BGMの音量を下げる。

• 効果音にバリエーションをつくる

射撃音とかパンチ音とか、同じ音が続くと単調!

→ピッチを変えたり、フィルタをかけたり、複数のSEを組みあわせて再生したりする。

Page 7: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

たくさん同時に鳴る場合に処理落ちしないか?ノイズにならないか?

• SEは再生数上限をつくろう

– 爆発音とか、効果音が重なりすぎると音が割れて不快。

– 音を鳴らしまくると、負荷は当然重くなる。

• コーデックは適切に選ぼう

– oggやmp3をむやみに使うと、再生時に突発的な

CPU負荷が発生してカクッとする場合がある。

Page 8: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

• SEはメモリ再生

– 必要なデータだけ読みこむように

– Wavの場合はデータが大きいので注意。

• ボイス、BGMはストリーミング再生

– (端末ストレージ、SDからの)ストリーミング再生

– 再生レスポンスは多少かかるが、メモリ使用量は小さくなる。

Page 9: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

実装だ!

Page 10: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

iOS:よい

Page 11: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

Android:大変!!

Page 12: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

なにが大変?

• サウンド再生が遅い

– OSの問題で、根幹解決は難しい

• 特定の端末で不具合

– シーク再生が変、ストリーミング再生してるとだんだんズレる

– Android 5.0 (Lolipop)でうまく動かない

– アプリがバックグラウンドに入ると、音周りが挙動不審に

• データの保護は期待できない

– SDカードからoggデータが抜かれる

Page 13: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

何をすればいいか

• SimpleAudioEngineを使う?

– WavやMP3の再生をする。それだけのもの。足りない…

• サウンド機能の拡張 or 自前実装が必須

– イントロ+ループ再生などの再生

– 任意位置からの再生

– ピッチ変更などのエフェクト

– サウンド再生数上限の拡張

• OpenSL ESやOpenALの知識が必要

– かつ、Android機種個別の対応が・・・

– 音声再生時刻のカウントとか・・・

Page 14: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

サウンドミドルウェア

Page 15: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

「ADX2」セット内容

• 専用サウンドツール「CRI Atom Craft」

– ゲーム内での音の鳴り方を管理・設定するツール

• サウンドライブラリ

– サウンド演出の実装がラクに

– オリジナルの圧縮コーデックで小さく

– 動的なサウンドエフェクト適用がラクに

• ピッチチェンジ、リバーブなど各種エフェクト

• 複数の音を時系列に配置して再生

– インタラクティブな音作り

Page 16: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

■ プログラマとサウンドデザイナの分業

パラメータ制御や再生タイミング、発音数制御などは、データ側に設定。

→プログラム側は単純な再生制御だけでOK。

「ADX2」の基本コンセプト

プログラマ

ADX2オーサリングツール

サウンドデザイナー

Page 17: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

17

音素材を時系列に並べる

ボリュームやピッチの

変化などグラフで加工

エフェクトの設定

キュー

(音の単位)

キューの中身CRI Atom Craftのツール構成

Page 18: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

「ADX2」の”キュー”という概念

名前:「Shot1」※この名称でプログラムから呼ぶ

• 同時再生の上限値:3プログラムからコールされまくっても大丈夫

• カテゴリー:SEカテゴリーごとのボリューム変更などに使う

• プライオリティー:5カテゴリー内で優先度をつける。

波形データと再生位置

キューの設定欄(一部)

Page 19: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

これまでの音声再生

gunshot.wav

音声データを指定して再生

・ストリーミング再生?・ボリュームを変える・ピッチを変える・ループ再生・同時再生数は?・フェードイン・アウトは?

・同時再生数制御機能・フェード機能・ループ再生機能・ピッチランダム機能

サウンド演出の実装

音声データの加工、圧縮設定

スクリプト:サウンド演出のパラメーター設定

Page 20: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

「ADX2」を使うと

gunshot.hca(圧縮した音声データの参照)

音の設定・ストリーミングorメモリ・ボリューム・ピッチ・ループ位置・同時再生数・フェードイン・アウト

Gunshotキュー「キュー」を指定して再生

ADX2ライブラリ

サウンドツールによる設定

再生指示はシンプルに

Page 21: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

「ADX2」で設定できるサウンド制御

• ボリューム制御

– 音ごとのボリューム制御

– 曲・効果音・ボイスをカテゴリ分けして、

一括ボリューム管理

• 再生制御

– 再生優先順位

– 効果音の後発優先、先発優先

– 同時発音数の制御

– ランダム再生

• DSP

– ピッチシフト

– リバーブやエコーなどエフェクト

– パンニングや距離減衰など3D効果

• 曲の再生制御

– 曲と環境音の同時再生

(2曲の同時ループ)

– 曲の途中ループ

– 曲の途中停止・途中から再生

• フェードイン、フェードアウト

– フェードの長さ調整

– クロスフェード

– カテゴリをトリガにした

自動音量ダッキング「REACT」

• 3Dパンニング/ポジショニング

これは一例でス。便利な機能はまだまだありまス!

Page 22: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

「ADX2」の独自コーデック

• HCA / HCA-MX コーデック

– 圧縮率はmp3 / Oggと同程度(人の声の圧縮に多少強い)

– CPU負荷低め、大量にリクエストしても急に負荷が上がらない

– さらにデコード処理負荷を大幅に抑える特別な仕組み

Page 23: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

HCA-MXコーデックの特長

• 音を同時再生する際のCPU負荷が軽くなります。

• 従来wavで鳴らしていた素材も圧縮できるようになり、

ディスク容量とメモリ使用量が節約できます。

• 制限事項

– HCA-MXでは音ごとのピッチ変更、フィルタ変更などができません。

– サンプリングレートを統一する必要があります。(デフォルトは32KHz)

Page 24: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

イントロ付きループ

■ 途切れず、綺麗にループするBGM

- ループポイント付き波形の圧縮・再生に対応

- イントロ付きループBGMをプログラムの工夫無しで実現

Page 25: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

サウンドごとの音量調整

■ ADX2のオーサリングツール上で調整

- BGMやSEの音量はADX2ツール上で調整。素材波形の変更不要。- BGMカテゴリを作って、BGMの一括音量調整。- アプリからの動的な音量調整ももちろん可能。

Page 26: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

ダッキングとカテゴリ

■ カテゴリ指定によるダッキング

- 音声再生中はBGMの音量を下げるような処理をデータ側のみで設定。

- サウンドをカテゴリにわけて、まとめてボリューム調整するなどの利用も可能。

M01

音楽カテゴリ (変化)

M02 M03S01

セリフカテゴリ (トリガ)

S02 S03

ダッキング指示

変化カテゴリ

トリガカテゴリ

Page 27: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

[Android] 再生レイテンシ

■ Android用の低レイテンシ再生モード

- ネイティブサウンドレンダラという低レイテンシ再生モードあり。

Page 28: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

[Android] 遅延推測機能β版

■ 端末のサウンド再生遅延時間をライブラリで推測

プログラムによる再生指示

スピーカーからの発音

ここにかかる時間が「再生遅延時間」。??? ミリ秒。

● Android の場合

- 遅い!- 機種によって差が激しい!遅いと 200msec以上。- 誰も教えてくれない!

ADX2に遅延時間推測関数を追加。※β版です。現在はUnityのみ。

Page 29: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

ADX2/Sofdec2 の暗号化

● ADX2/Sofdec2データの暗号化

iOS/Androidでデータ共通利用可能。

Cocos2d-xでは暗号キー指定のみで使用可能。

Page 30: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

インゲームプレビュー機能

■ スマートフォン実機と通信

- スマートフォンで実行中のゲームと CRI Atom Craft でWiFi接続。

→ ゲームで実際に色々な音が重なる状況で聞こえ方を調整可能。

音量、エフェクト、メモリ再生の波形などを直接変更。

- CRI Atom Craft で作成中のサウンドをPCではなくスマホから鳴らす事も。

(ターゲットプレビュー機能)

Page 31: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

「ADX2」導入メリット

• 音声圧縮&再生負荷を軽減

– 多重再生時に重くならないモードがある独自コーデック。

圧縮やクオリティはmp3/Ogg同等ながら、再生負荷が低い。

– イントロ付きループBGMが使える。(任意ポイントでのループ)

音質アップと容量削減が両立できます。

• ツールによるサウンド演出設計

– 大量音声データの管理がラクに。

– プログラムを触らずに音量やエフェクトの調節ができる。

サウンド周りのコーディング量が大幅に減ります。

Page 32: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

ざんねんながら

• ブラウザゲーム出力に非対応– ネイティブライブラリを動かせるブラウザが現状Choromeしか無いため。

(WebGLとかでも同様)

• サウンドツールはWindows版のみ– Mac版は開発中です。ゴメンナサイ。

– Pallarels、VMwareなどの仮想環境で動作確認とっています。

Page 33: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

個人開発者の方へ

Page 34: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

無償版個人アプリ開発者向けサウンドミドルウェア

Page 35: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

「ADX2 LE」とは

• 無償版サウンドエンジン+オーサリングツール

– 個人のインディーゲーム開発、ゲームジャム向け

• 無償で利用可能(有料で頒布するゲームに使ってもOK)

• ゲーム販売の売上1,000万円以下まで

• 二次創作は自己責任だぞい

公式サイトhttp://www.adx2le.com/からSDKダウンロード

Page 36: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

「ADX2 LE」の使用条件

• 前年度年商が1,000万円以下の会社または団体・個人であること

• コンテンツの配信元が自身であること

※販売権を自身で持ち、パブリッシャーを介さず自分でApp Storeなどに登録する。

• コンテンツの売上が1,000万円以内であること

「ADX2 LE」を使用したコンテンツ配信の条件

(コンテンツの無償/有償に関わらず)

“本コンテンツには、(株)CRI・ミドルウェアの「CRI ADX2 (TM) LE」が使用されています。”

• 著作権表記

Page 37: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

「ADX2 LE」情報

• Facebook ADX2ユーザー助け合い所

– https://www.facebook.com/groups/adx2userj/

• Wiki サウンド助け合い所

– http://www53.atwiki.jp/soundtasukeai/

Page 38: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

おまけ:アルファムービー演出ミドルウェア(法人向け)

Page 39: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

Sofdec2のキーポイント

■ 動画をテクスチャとして使う

- ムービーテクスチャ を実現。動画を貼り付ける。描画はアプリの自由。

- 透過情報 を入れたアルファムービーが利用可能。 演出の幅が大きくアップ。

- 柔軟でリッチな再生機能 にも対応。

(例: シームレスループ/連結再生、複数再生、タイミング情報埋め込み)

Page 40: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

Sofdec2 for cocos2d-x

ムービー

■ ムービースプライトクラス(サンプル)

- スプライトにムービーを貼ることができます。

- cocos2d-x ならではの、クリッピングノードやアクションの機能も利用可能。

Page 41: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

Android版デモのダウンロード

■ アルファムービデモのAndroid版

- http://crimw.me/alphamovie

- 「提供元不明のアプリ」のインストールを許可してください。

- 容量 約23MByte

<動作環境>

ARMv7対応のCPU

Page 42: Cocos2d-x Talks #2 「サウンド実装のちょっとした気配りで ユーザに”快適感”を。 &サウンドミドルウェア「ADX2」のご紹介」

CRIWARE は単なるツールではありません。

より素晴らしいゲーム制作をサポートするサービスです。

是非とも、皆様のご意見・ご要望をお聞かせください。

更に詳しい情報はhttp://www.cri-mw.co.jp/dev_app/