Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

勉強会レポ : ゲーム開発におけるサウンド実装の勘所

勉強会のレポート(メモ)です。
参加したのはこちら、「ゲーム開発におけるサウンド実装の勘所」

過去にもお邪魔させていただいたTECHxGAME COLLEGEさんです。

techxgamecollege.connpass.com

f:id:Raspberly:20190221002546j:plain

 

 

 

 

ゲーム開発におけるサウンド実装の勘所

 

イントロ

みなさんどのタイミングでサウンド実装しますか?
結構後回しになりがち、参考本での扱いが悪いため(情報量が少ない)


サウンド実装で考慮すべきこと

考慮すべき三大要素
・CPU
・メモリ
・再生レイテンシー(スクリプトで再生させてから音が鳴るまでのタイムラグ)
CPUの負荷を抑えるとメモリレイテンシが、
レイテンシを抑えるとCPUメモリが犠牲になるなど三すくみの関係です。

なので音の特性を知りましょう

 


ゲーム内の音はたくさんありますがそれぞれに特徴があります。

f:id:Raspberly:20190221002709j:plain



音の長さや優先度、同時にならされる数など。
使うポイントでよくわけましょう。

f:id:Raspberly:20190221002717j:plain

さらに作るゲームの特性においても大事になる音は変わってくる(ボイスやヒット音など)
なので分類してどの音を最優先するかが大事。

 

 


モバイルゲームのオーディオは大変

以下の問題がでてくる。
・端末の制限が大きい
・データ容量の問題
・再生遅延
・再生の負荷

運営型の場合、大量のボイスデータをどう管理するかの問題も。
ところがゲームエンジンサウンド機能はプリミティブかつ足りないことが多い。

 

やらなければならないサウンド実装

みなさんが作らなければならないこと
・負荷を軽減する
 同時再生数の制限、CPU・メモリの管理。

・管理
 ボイスデータがいっぱいあるときどういうワークフローで管理するのか。

・演出設計
 フェード処理、ダッキング処理。

 


UnityAudio基礎

Unityがどのように音を鳴らしているのか、
AudioClipをSourceで読み込み再生し、Listenerで処理し最終的にスピーカーから音がでる。
プラスAudioMixerで音の種類を分類する、ミキサーに流してグループ化しボリューム調整する。


Audio特性

AudioClipのLoadTypeに気を付けましょう。LoadTypeは読み込んでから再生するまでの方法です。
Unityに音素材をインポートした時は、デフォルトでDecompressOnLoadになります。
しかしこれは少し重い。(なんでこれがデフォルトなの・・・)

LoadTypeはCompressedInMemoryにしましょう。
ほとんどの音はこの設定でいい。(ただし、早く再生したい音には向いてない)

 


音のタイプごとに再生方式を変えていきたいが、ボイスやBGMが多いと大変になってくる。
(ファイル名の変更、AssetBundleなど)
さらに音の情報をExcelで管理していると実際のデータとずれがでてくる。

 

特定の状況下での、音の再生に問題がでてくることも。

 

 

本題 CRI ADX2を使って解決しよう

採用実績がたくさんあり、会社用と個人用があります。

ADX2の効能

androidサウンドの遅延対策
・音声データの暗号化
・イントロ付きループ再生の実現

いろいろありますが、性能面だけじゃない。

ボイスデータの管理

ADX2のAtom Craftでデータ管理ができます。
BGMごとに「どのようにならすかの情報」を埋め込むことができる。

ここでデモタイム

ダッキング処理などはデータとして音の中に埋め込むので、スクリプトの方ではただ鳴らすだけで実現できる。

 

音のランダム再生や、ランダムでピッチを上げ下げするなど、ADX2内で複数の表現を作ることができる。

ツール上で音が重なった時どうなるかを確認できる。
スマホ上で再生しながら調整できるモードもある。

 

 

ほかにもいろいろあるが
のちほど資料を見てください

 

 

まとめ

オーディオは考えることがいっぱい。
複雑になるようならADX2を試してみて。
ADX2で大量の音データの管理が容易になります。

 

 

 

過去のTECHxGAME COLLEGE

raspberly.hateblo.jp

raspberly.hateblo.jp