KLab CreativeSeminar #3
「Unityサウンド
エキスパート養成講座」の
効率的な読み方
株式会社ヘッドハイ 一條貴彰
1
自己紹介:一條貴彰
● 株式会社ヘッドハイ 代表取締役
○ 「ゲーム開発者向けツールやサービスを広める」会社
■ Play,Doujin! ディレクター
■ CRI ADX2 アンバサダー
■ Genvid Developer Relations
■ Google Indie Games Festival
○ 特にインディーゲームの発展を目指す
● 個人ゲーム作家活動
○ 「Back in 1995」(Switch/PS4/PS Vita/Xbox
One/N3DS)
○ 新作「デモリッション ロボッツK.K.」開発中!
2
書籍「Unity サウンド エキスパート養成講座」について
● 2019/08/26発売
● ボーンデジタル社出版
● 392ページフルカラー
● Unityのサウンド実装についてのみ述べた本
● CRI・ミドルウェア監修
3
本書の経緯
● Unite 2018
「Audio機能の基礎と実装テクニック」
○ https://www.slideshare.net/UnityTechnologiesJapan
002/unite-tokyo-2018audio
○ これに好評をいただいた
○ +CRI社さんとの業務が再開
4
(いきなりですが)訂正告知
■27ページ
誤:Resources フォルダは、ゲームの起動時にすべてのファイルをロードしようとするため、メモリの消
費が激しく、起動時間が非常に長くなるためです。
正:Resources フォルダは、ゲームの起動時にファイルのインデックスを作成するため、含まれている
ファイルを全走査してしまい、起動時間が非常に長くなるためです。
・その他、誤字等のご案内は以下にて
https://www.borndigital.co.jp/book/15163.html
5
「Unity サウンド エキスパート養成講座」の構成
● 0章:ゲームサウンド基礎
● 1・2章:Unity標準サウンド
○ Audio Clip / Audio Source / Audio Listener
○ Audio Mixer / 各種設定
○ クロスフェード等のスクリプト
● 3章:VRサウンド (Oculus Integration、3章)
○ Spatialize
○ Ambisonics
● 4章:CRI ADX2
○ Unityプラグインの組み込み
○ 機能的な利点とその導入方法
○ Atom Craftの操作と設定
● 5章:ゲームサウンド応用
6
お勧めの読み方
● 新人クリエイター / サウンド分からん人 / 個人ゲーム開発者
○ 0,1,2章を読む
○ 小型のゲームであればUnity標準機能で何とかなるため
○ 特にこだわりたいことがある場合は4章も範疇
● VRコンテンツクリエイター
○ 0,1,2,3章を読む
○ Oculus Audio SDK + Unity Audioを使うため
● 規模の大きい開発タイトルに関わる法人
○ 4,5章を読む
○ サウンドミドルウェアを使わないと、物量管理・継続メンテ的にしんどいため
○ サウンド従事者なら0章は飛ばし読みで大丈夫
7
新人向けのポイント
● 0章でとにかく「ゲームサウンド」の基礎を抑えてほしい
○ 音のアナログデジタル変換
○ サンプリングレート、量子化
○ 圧縮
○ デシベル(ラウドネスは5章で紹介)
○ ゲームならではの音声の扱い
○ ミキシング
● 1・2章で音の処理を自前で書いてみてほしい
○ クロスフェード、発音数制御
○ ぶっちゃけADX2には全部搭載されているので実用向けではない
○ 手で書くことによって内部挙動を知る
8
4章 CRI ADX2
● 音にまつわる演出が組み込まれたライブラリ&ツール
○ イントロ付きループ再生
○ 効果音再生数の上限を設定
○ 効果音のバリエーションを増やす
○ ランダムに音を変化させる設定
● ゲームに最適化した音声圧縮形式
○ たくさん音が鳴るゲームの負荷軽減
○ ボイスが多いゲームのデータ圧縮
○ 音声データの暗号化
● インタラクティブミュージックの実現
○ ゲームの展開に合わせて変化するBGM
9
オーサリングツール「Atom Craft」
10
専用のオーディオプロファイラー
11
ADX2のエディション
● ADX2
○ 法人向け
○ 先進的機能とzendeskによる技術サポート
○ ゲーム発売後に有償契約(売り上げ%とか月額とか)
● ADX2 LE
○ 個人、小規模むけ(1,000万円以下の売り上げ)
○ 機能のアプデは遅め
○ 無償、ゲームの有料発売もOK
https://game.criware.jp/products/adx2-le/
法人も評価用にはLEを触っていい。たとえば自宅での素振り用。
12
Unity Asset Store版ADX2って?
Unity Asset Store版($99)の立ち位置
・日本国外在住の方(LEは国内利用のみのため)
・とりあえずPC向けで安価に試してみたい法人の方
(このエディションはモバイルに対応していない)
日本に住んでいるなら、
法人→ADX2
個人→ADX2 LEでよい
13
Unity標準とADX2導入時の
ワークフローの違い
14
Unity AudioとADX2の違い
● Unity Audio
○ サウンドファイルと再生処理が1対1
○ 「サウンドの情報」を何らかの手段で管理する必要がある
(エクセル管理表・Scriptable Object等)
● ADX2
○ サウンドファイル ≠ 再生処理
■ 再生単位「キュー」を介して音を鳴らす
○ 「キュー」の中に複数のサウンドファイルを持てる
○ 音の鳴らし方をパラメータとして内包できる
○ 専用ツール上で音の組み合わせ再生テストができる(重要)
○ スクリプトを変えずに音の鳴らし方を調整できる(重要)
15
サーバー
実行ファイル
Unity Audioのフロー
AssetBundle
Script
・AudioClipを指定して再生
・さまざまなサウンド制御実装
・再生数制御
・フェード
・ダッキング
Unity Editor
AudioClip
(Wav, Ogg)AudioClip
(Wav, Ogg)AudioClip
(Wav, Ogg)
AudioClip
(Wav, Ogg)AudioClip
(Wav, Ogg)WAV インポート
ビルド
16
サーバー
ADX2の
パックファイル
Unity + ADX2のフロー
Script:
・キューを指定して再生
・ランタイムに実装済みの
サウンド制御を指定して再生
Unity Editor + ADX2 plugin
g)av,
Ogg)WAV
ビルド
実行ファイル
CRI Atom Craft
ツール操作:
再生単位「キュー」を作り、
鳴り方をパラメータで指定。
・フェードイン
・再生数制御
・ダッキング
ADX2の
パックファイル
ADX2の
パックファイル
インポート ビルド
17
書籍におけるADX2章の構成
● チュートリアル:まずは1音鳴らすまで
● 目玉機能の利用
○ Android向け低遅延再生モード
○ 低負荷コーデック HCA-MXの利用
○ イントロ付きループ再生設定
● ツール「Atom Craft」の詳細解説
● デモアプリ「一方的タコ殴り ノーダメージ勇者さま」
● 応用編
18
ADX2章の想定されるシナリオ
19
● 性能検証のとき
○ リーダー「次期タイトル向けに、ちょっとレスポンスとかCPU負荷を検証してよ」
○ 「チュートリアル」+「目玉機能の利用」章だけで完結
● プランナーさんに音量などの調整をしてもらうワークフローの時
○ Atom Craft基本+応用を中心的に読んでもらう
○ Unity部分は飛ばす
ケース:ボイスデータの管理
20
よくありそうなボイス管理テーブル.xls
どういうシチュエーションで鳴らされるか、の管理が難しい
21
サーバー
実行ファイル
Unity Audio + Excelのフロー(想像)
AssetBundle
Script
・AudioClipを指定して再生
・さまざまなサウンド制御実装
・再生数制御
・フェード
・ダッキング
Unity Editor
AudioClip
(Wav, Ogg)AudioClip
(Wav, Ogg)AudioClip
(Wav, Ogg)
AudioClip
(Wav, Ogg)AudioClip
(Wav, Ogg)WAV インポート
ビルド
管理エクセル
22
現場のフロー(想像)
ボイス収録できたやで!
データ納品ドーン!
連番ファイルの中身はExcelで管理しつつ、プログラ
マーに鳴らしてもらおう
なるほど!
このボイスの番号はこれか!
再生システムに入れたで!
(^)(^)ミ
ボイスリスト.xlsx
23
現場のフロー(想像)
ファイル名変わりました
ボイス入ってるAssetBundle変わります
( )( )ミ
ワイはどこからどれを鳴らせばいいん
や....
Excelの方が古くて指定を間違えてました
ボイスリスト(2)_最新版_20190129_高橋修正(再提出).xlsx
ボイスリスト_最終_201901マージ_佐藤作業分.xlsx
24
Excel管理の問題
● 実際のファイルとExcel管理用のデータがズレる
● ファイルを見に行かないとプレビューできない
● AssetBundle使う場合もプログラマーとのやりとりが多数発生
データとメタデータが分離していることが問題!
25
ADX2の「Atom Craft」をデータ管理に使おう
26
本書のデモアプリについて
27
本書のデモアプリ
● (ちょっと懐かしめな)カードゲーム想定
● カードをタップでモンスターを倒せ!
● タイトルの理由:「攻撃を受ける」の実装が面
倒だった
28
会話シーンに含まれるサウンド演出
● BGMダッキング
○ セリフが流れたとき、BGMのボリュームを自動的に落とす処理
● 音声データへテキストデータ埋め込み
○ テキストウィンドウに表示されているセリフ文字は、音声データ
側に埋め込んだ文字を表示
● 音声データへ表情変更タイミングの埋め込み
○ キャラクターの表情切り替わりタイミングは音声データ側に埋
め込んだタグ付きタイミング情報を利用
29
ダンジョンシーンに含まれる演出①
● 攻撃セリフのランダマイズ
○ 下部のカード絵柄をタップすると攻撃
攻撃時の掛け声は複数の音声データからランダムに選ばれ
るデータを指定
● 攻撃セリフのキャラクターごとの切り替え
○ 2キャラクターごとに掛け声は異なりますが、再生制御のソー
スコードは同一、データの差し替えのみで対応
● 攻撃ヒット音のランダムパンニング
○ ステレオ再生環境では、「バシッ」という攻撃ヒット音が左右
方向からランダムに聞こえる
30
ダンジョンシーンに含まれる演出②
● 攻撃の威力に合わせて音色を変える
○ ゲーム内のヒットポイントと連動して音色が変化
● 効果音のバリエーションを増やす
○ 奥に進むときの「タッタッタ」という足音は、短い「タッ」という音
声データのみで構成。
データ容量を抑えつつ、バリエーションを増やす。
● ゲームの場面が変わった時のエフェクト適用
○ ダンジョンが「洞窟」の時は、効果音やセリフに
リバーブとエコーがかかる
● ゲームの展開に合わせたBGM の展開
○ 敵を倒したタイミングで、BGM の展開が変化
31
デモ
32
デモ
33
おわりに:
● 新人教育に最適!
○ サウンドの基礎からラウドネスまで一通りカバー
● ADX2の導入検討に
○ とにかくすぐに性能検証したい!という方のためのチュートリアルを用意
● サウンドのクオリティアップをしたい方に
○ ADX2を使ってサウンド演出の高速化
○ サウンドデザイナーとエンジニア間の分業
● 電子版はボーンデジタル公式サイトで
○ PDF版が登場予定(企画中)
34
ADX2は様々なエンジン、プラットフォームに対応
● Unityは当然ながら
● Unreal Engine 4
○ OCTOPATH TRAVELER
○ DAEMON X MACHINA(デモンエクスマキナ)
○ アズールレーン クロスウェーブ
○ Earth Defense Force: Iron Rain
○ JUMP FORCE
○ CODE VEIN
● VR
○ PS4版 東京クロノス
● HTML5 / ブラウザゲーム
35
Amazonで発売中!
Amazonストアリンク
36
ご清聴
ありがとうございました
37
専用管理ツールを開発する?
● プランナー(or ゲームデザイナー)が触れるようにしたい
○ Unity Editor拡張だと辛そう
● 「どう鳴らされるか」のシチュエーションをツール側で巻き
取りたい
○ 文字情報ではなく、タグのように再生設定を埋め込む
● データは階層構造で管理したい
○ パックファイル(またはAssetBundle)の単位として管理したい
● その他ツールとしての要件
○ undo
○ プレビュー機能
38

KLabCreativeSeminar#3_Unityサウンドエキスパート養成講座

Editor's Notes

  • #8 本書では「ADX2」以外のミドルウェアについては紹介していないが、たぶん同じ演出はできる(?)
  • #36 Apple Arcade VARIOUS DAYLIFE(バリアス デイライフ)