『CRI ADX2』サウンドオーサリングツール体験会
(初~中級編)~ゲーム開発の流れに沿ったサウンド制作の
新しいワークフロー~
2012-08-22 田中孝
1
• ゲーム開発の流れに沿ったサウンド制作の新しいワークフロー ?
• ちょっと変わったゲームの音作りの提案になるかも?• ゲームジャムっぽい?• 音をつけるの楽しいよね?
はじめに
2
• このスライドはCEDEC2012サウンドオーサリングツール体験会の持ち帰り用の資料を元に若干の補足を加えたものとなっています。
• ワークショップの内容を共有する事を目的としています。
はじめに(補足)
3
• 試行錯誤ができます。いろいろ試すと違った印象になる事が分かります。想像とは違った面白い事もあるかも。【自分のイメージ】に近づけるために何が必要か確認できます。失敗しても気にしないでください。
• 音がゲームの演出に影響する事を実感できます。【 何も音がない状態】から作業していきます。つけていく途中、【物足りなく感じる】部分もあるでしょう。音とゲームの【絶妙な関係】を感じてもらえたら幸いです。
このワークショップでは・・・
4
• 少ない手順でゲーム中の音を加工できる環境として【CRI ADX2】の【CRI Atom Craft】を使います。※イベント版ADX2として特別なツールとランタイムを使用しています。正式リリース版と混在しないよう注意してください。
• ゲームは【Unity3D】で作成しています。※本ワークショップでは直接弄りませんが、UnityEditorのプロジェクトファイルも添付していますので、【C://CEDEC2012】フォルダごと持ち帰りソースを確認できます。※なお、Editor実行にはUnity Proライセンスが必要です。こちらで呼び出し側のソースを確認できます。
環境について
5
素材について
• 波形編集、収録なども時間がかかるため、あらかじめ用意しました。
• 本ワークショップでは波形を指定して進行しますが、あえて違う波形を選んで進める事もできます。おまけとして【ゲームジャム】で使用したSE,BGM,Serif素材も入れてあります。なにかと流用できるかと思います。またUSBなどで波形を持ってきている方は登録の仕方を教えます。
• 音声合成素材として「VOICELOID+民安ともえ」を使用しています。【声を扱う事による魅力や表現力】を体感してもらうきっかけになれば幸いです。
6
• 説明の後、作業時間を設けます。ただし時間が限られていますので、間に合わない場合もあるかと思います。もし間に合わなかった場合は途中からのプロジェクトで追従するか、そのまま進めて下さい。
• だいたいあっていればOK パラメータの細かい点を真似る必要はありません。もし時間が余った時は他のパラメータや波形の選択などいろいろ弄ってみてください。
• 不明な点がありましたら、まわりにいるサポートの人にお知らせください。
ワークショップの進め方
7
•もし追いつけなかった場合や、途中から参加した場合などはプロジェクトファイルの後ろの番号と章の番号が同じものから再開できますのでご利用ください。
• C:/CEDEC2012Workshop/pinball/Sample/PinballWork00.atomcproj ~ PinballWork08.atomcproj
再開用プロジェクト
8
• 第5章 ボールロスト時の声【実況?声の魅力】ロスト状況音にリアクションセリフのランダム再生を追加
• 第6章 BGMをつける【情動を与える、無音を埋める】ループ波形の登録
• 第7章 声を目立たせる 【自動バランス調整の設定】カテゴリによるバランス調整と、REACTによるダッキング
【上級編】
• 第8章 BGMをインタラクティブ化【気分はDJ】ボールロスト毎に変化するブロック再生
【おまけ】完成イメージの確認、リリースアプリに反映
音の演出【初~中級編】
• 第1章 バンパーのリアクション音【音の登録と設定】1Shot音の追加、発音数制限、 インゲームプレビュー
• 第2章 ボールのリアクション音【リアル?アンリアル?インタラクティブ音】AISACによる衝撃度による変化を追加
• 第3章 ターゲットの音【印象的な音を目指して】ランダムピッチ、ランダムフィルタ、デチューン音
• 第4章 エフェクトをつける【全体をなじませる、塩こしょう少々】リバーブ、エコーをかける
※このワークショップでは『初~中級編』までやります。『上級編』は別の機会で・・・
9
ブロックを解除する• セキュリティ関連のダイアログが出た時は「ブロックを解除する」を選択してください。
プレビューでアプリケーション間の通信処理を行うため、ブロックを解除する必要があります。
10
ゲームを起動する•C:/CEDEC2012Workshop/win/Pinball.exe
ゲームが起動します。
11
ゲームについて
【Click to Start】ボタンでゲーム開始。
15秒くらい放置していても自動で開始します。
マウスクリックするとボールの位置をクリックした位置に移動ます。
デバッグ時に有効です。
12
ゲームのポーズについて【Stopper】をチェックするとゲームオーバーにななくなります。【Pause/Resume】ボタンでポーズできます。
【Multi Ball】おまけです。
13
初~中級編
14
作業フォルダ•C:/CEDEC2012/Workshop/
/CEDEC2012 Unity3D プロジェクトフォルダ/common ライセンスファイルフォルダ/pinball CRI Atom Craftプロジェクト
/tools CRI Atom Craftツールフォルダ
/win Pinball.exeアプリケーション 15
CRI Atom Craftを起動• C:/CEDEC2012Workshop/tools/criatomex/CriAtomCraft.exeを開く。(デスクトップのショートカットからも起動できます。)
16
作業用プロジェクトを開く• C:\CEDEC2012\Workshop\pinball\PinballWork.atmcprojを開く
ファイルメニューから「プロジェクトファイルを開く...」を選択
PinballWork.atmcprojを開く
17
空のキューを用意しました•作業を簡略化するため、あらかじめ以下のキューを用意しています。
18
• バンパーに当たった時のキューに波形【bullet1.wav】を追加します。
• 【原音波形】と【キュー】の【プレビュー方法】など基本的な操作を紹介します。
第1章 バンパーのリアクション音【音の登録と設定】
1Shot音の追加、発音数制限、 インゲームプレビュー
19
バンパーの音をつけるボールがバンパーに当たって跳ね返す時に【Bumper】キューが呼ばれます。
ツリーから【Bumper】のキューを選択します。
20
原音確認(wav再生)
マテリアル(.wav)を選択し【F3キー】で 元波形(wav)再生【F4キー】で 停止します。
DirectXでwav再生されています。
21
【波形を持ち込みした方】は、
【波形ファイル】または【波形ファイルのあるフォルダ】をマテリアルの任意のフォルダへ
ドロップして追加してできます。
原音(wav)の追加
【フォルダ】へ波形ファイルをドロップすると追加されます。
22
バンパーの音をつける
マテリアルから【bullet1.wav】を選択し
【Bumper】キューへドロップします。
【Bumper】キューに波形が登録されます。
23
間違えて違うキューとかにドロップしてしまったら、【Ctr+Zキー】でUndoできます。
もし間違えたら...
間違えたらUndoすると...
キューの左側の三角が消える
このボタンでもUndoできます。
24
ツール画面上部の
ボタンでも操作できます。
• 【キューを選択】し、音を出して確認できます。【F5キー】を押すと音が鳴ります。【F6キー】で停止。
キューのプレビュー
CRI Atomランタイムで再生されています。 25
• 【F5キー】を【連打】すると音が【多重で再生】されます。
• 発音数は
F5キー連打で多重再生
のVoicesで確認できます。26
バンパーの発音数
【キューを選択】し
【キューリミット】のチェックボックスをチェックします。
• リミットをかける事で、無駄な発音を軽減できます。• ゲームでのメモリ消費、CPU負荷削減。音量増加による音割れを抑制。
27
バンパーの音量調整少しうるさいのでボリュームを下げておきます。
28
インゲームプレビュー• 【インゲームプレビュー】とは、ツール側で音を加工、編集した結果を【実行中のゲーム】に送信し、音を即時に差し替える技術です。
• ゲームを中断させる事なく音の加工を反映させる事ができるため、非常に細かい微調整が可能です。
インゲーム接続
29
インゲームプレビュー(2)
•データの修正の自動反映には時間がかかる場合があります。数秒~10秒程。
• F10キーで強制再転送します。データ転送
データ修正
30
インゲームプレビューの開始【F10キー】を押すまたは、【プレビューメニュー】から【インゲームプレビューの開始】を選択
一瞬音が止まって、発音数が変化していれば接続OK
31
インゲーム接続
•音が停止し【Bumper】だけ鳴る状態に変化します。
【Pause】している場合は解除します。
32
インゲーム解除•【Ctr+F10】キーを押してインゲームプレビューを解除できます。
•解除してもゲームは動き続けていますので、【Pause】を押して音を止めます。
【Pause】を押すとゲームの音が止まります。
33
プレビュー状態• プレビュー状態は、【表示/プレビューウィンドウ】で確認できます。
接続状態はここで確認
【データの接続状態】でチェックが外れていると内容が反映されて
いない状態34
インゲームのまま波形追加• 試しにインゲーム中のまま【Paddle】キューに【rim.wav】を追加してみましょう。
• しばらくすると更新が入りパドルの音が鳴るようになります。
35
•ボールの音をつける。•ボールのぶつかった時の【速度変化】を音で表現する。
第2章 ボールのリアクション音【リアル?アンリアル?インタラクティブ音】
AISACによる衝撃度による変化を追加
36
ボールの音をつける
【Ball】のキューを選択します。 空のタイムラインが
表示されます。
37
ボールの音をつけるマテリアルから【Tan.wav】を選択し
タイムラインの右下あたりにドラッグ&ドロップします。
【波形】をドラッグして左端に寄せます 38
ボールの発音数
【キューリミット】のチェックボックスをチェックします。
リミットをかける事で、無駄な発音数を軽減できます。とても大事な事なので繰り返しになりますが、ゲームでのメモリ消費、CPU負荷削減。音量増加による音割れを抑制することに繋がります。 39
ボールの音が単調なので• ゲーム側に【AISAC】が組まれていて、【ぶつかった速度】で【AISAC】の値が変化します。
• 【AISAC】を追加して音の変化をデザインしてみます。
40
速度と音程
• 物理的にはおかしいですが、記号的演出として• 【速くぶつかる】音程が高くなる• 【ゆっくりぶつかる】音程が低くなる
41
【トラック】の余白を右クリックし、【AISACの追加...】を選択
AISACの追加【トラック】を選択します。
【AISACの追加】ダイアログで【ピッチ】に変更し
【追加】ボタンを押します。42
ボールの音程が変化するように【右肩上がり】の【グラフ】にします。
インゲーム接続で確認すると、【ピッチ】が変化します。43
変化に【メリハリ】を付けるため、【階段状】にします。特定の音のみに限定する
【プロパティリスト】で【数値編集】もできます。
44
•音を追加する。•【ピッチ】を【ランダム】化する。•【フィルタ】を【ランダム】化する。•【デチューン】の表現
第3章 ターゲットの音をつけるランダムピッチ、ランダムフィルタ、デチューン音
45
ターゲットの音をつける
ここに当たった時の音をつけます。
ツリーから【HitTarget】のキューを選択します。
46
ターゲットの音をつけるマテリアルから【hajiku.wav】を選択し
【HitTarget】キューへドロップします。
キューを選択し登録されているのを確認
47
ターゲットの発音数
【キューリミット】のチェックボックスをチェックします。
• リミットをかける事で、無駄な発音数を軽減できます。• 今回の音は【長めの音】なので、【3音のリミット】にしてみました。
48
ピッチをランダム化ピッチをランダムにするには・・・
【トラック】を選択
【FX1】を選択【ピッチ】を【縦方向】にドラッグしてランダム化
49
ローパスフィルタを選択
【トラック】を選択
【FX2】を選択
【バイクアッドフィルタ】の種類を【ローパス】に変更
50
ローパスフィルタのランダム
【バイクアッドフィルタ】を【ローパス】に変更します。
【Cof】を左くらいの設定に変更します。【Q】を高めにします。
51
トラックを複製しデチューン
【トラック】を選択したまま・・・
【Ctr+R】で複製
片方の【波形】を【ドラッグ】して再生位置をずらす
52
•リバーブをかけてみる。•エコー追加する。
第4章 リバーブ、エコーをつける【全体をなじませる】
53
ボールの余韻をエフェクトで延ばす
【トラック】を選択し・・・
【FX1】を選択
【バスセンド1】を変更すると、
【リバーブ】が掛かります。54
エコーを試す
【バスセンド1】を変更すると、
エコーが掛かります。55
センドエフェクトの細かい設定
【表示】メニューから
【ミキサー(DSPバス設定ウィンドウ)】で【エフェクト】の設定が確認できます。
56
•【やられボイス】を【複数追加】する。•【シーケンシャル再生】(再生の毎に音が切り替わる)にする。
第5章 ボールロスト時の音ロスト状況音にリアクションセリフのランダム再生を追加
57
ボールロストの音をつける
ここを抜けて【ボールロスト】した時の音をつけます。
ツリーから【BallLost】のキューを選択します。
58
ボールロストの音をつけるマテリアルから【yarare】フォルダ以下の4つのwavを選択し
【BallLost】キューへドロップ
59
【複数トラック】にそれぞれの【波形】が登録されます。
60
【シーケンシャル】に変更
【シーケンシャル】
に変更します。
キューの【タイプ】を
【ポリフォニック】
から
61
第6章 BGMをつける• 【情動を与える、無音を埋める】ループ波形の登録
• BGM大事です。• 無いと緊張感が高まります。• あると不安から解放されます。• ループが短いと飽きてしまいます。• ゲームに合わせて変化するのが良いと思います。→【ブロック再生】※今回はやりませんが、資料とサンプルを添付してあります。 【おまけ】を参照ください。
62
BGMをつけるマテリアルから【bgm0.wav】を選択し
【BGM】キューへドロップ
【波形】を左に寄せる
63
•ダッキングを追加する。セリフ再生時にBGMを自動的に下げる設定にする。
第7章 声を目立たせる
64
•キューを【カテゴリ】に割り当てる事で、【カテゴリ】によるキューのコントロールが可能になります。プログラマが【キューの内容】を知らなくても【カテゴリ】という大まかな要素でコントロール可能になる。
【カテゴリ】による【ボリューム調整】や、【リミット数】指定ができます。
カテゴリ
65
• 【REACT】は、カテゴリ内の再生状態に応じて様々な音の効果を発動する機能です。
• 例えば、ダッキング(声が入るとBGMが下がる)といった効果をデータ側でつけることができます。
• うまく使う事で、ダイナミックなオーディオ調整を自動で行ったりアイデア次第で様々な効果を与える事ができます。例:水に潜るとフィルターとピッチLFOがかかる。ジャンプ中はハイパス効果。特殊魔法で時間が遅くなる等。
REACT
66
• 声が埋もれがちなので、声を聞こえるように変更します。もっと声を聞かせたい
カテゴリ【Serif】
カテゴリ【Other】
• 【Other】カテゴリを【Serif】再生時に変化させます。【ボリューム】が【0.2】になるように設定されています。
67
もっと声を聞かせたい• 【Other】カテゴリを【Serif】再生時に変化させます。【ボリューム】が【0.2】になるように設定されています。
【変化パラメータ】が【ボリュームレベル】
【変化レベル値】
が【0.2】 68
カテゴリを確認あらかじめ設定してあるカテゴリを確認
キューシート【PinballMain】を選択
【BallLost】が【Serif】カテゴリ
他が【Other】カテゴリになっています。
69
BGMカテゴリを変更【BGM】キューをカテゴリ【Other】に追加します。
【BGM】の【カテゴリ】をダブルクリック
【カテゴリの編集】ダイアログで【Other】をチェックし
【OK】ボタンで確定する。
70
REACT設定
【変化時間】100msec【戻り時間】300msecと調整すると変化のかかり方が変わります。
【REACT】から【React_SerifOther】を選択
変化のカーブが変わる 71
• サウンドの有効的な活用を【再検討】してください例:音でボールの【状態を表現】する
• 【初期の段階で音をつける】できれば企画段階から仮の音で良いのでつけてみる、または想像してみてください。
• 【仮音をとにかくつける】プログラムが動きだしたらバランスをとる良いきっかけになるかもしれません。
まとめ音をつける楽しさを広めてください
72
• CRI・ミドルウェアではお客様のニーズに合わせた解決策を一緒に考えます。相談にのります。お手伝いします。お気軽にお問い合わせ下さい。 • 【復習】できます【C:/CEDEC2012/Workshop】のフォルダをコピーして持ち帰りOKです。
• 【8月末】までの試用が可能です。ぜひ持ち帰って上級編などにチャレンジしてみてください。
最後に
73
上級編
74
•音を追加する。•BGMを変化(遷移)させてみる。•遷移変化をはっきりさせる。
第8章 BGMをインタラクティブ化BGMがゲームの状況に合わせて、自然に変化するようにしてみます。ボールがロストすると変化するようにします。
75
• キューをブロック(楽章、小節、フレーズ)に分割します。
•ブロックの遷移は、ブロックの終端や、ブロックの分割位置から遷移します。プログラムの即時反応ではなく、ブロックが切り替わるタイミングをデータ側に持たせる事ができます。これにより、プログラム側で再生時刻や繋がる音の再生タイミングなど細かい指定をせずに連結再生ができます。さらに、遷移する時だけ鳴るトラックや、遷移時初回のみ再生するトラックを指定できます。
ブロック再生
76
•ブロックでループ波形は相性が悪いです。→【ブロックでループ】するため、ループ波形が多重リクエストされるからです。
•まず、波形を1Shot化する方法を紹介します。
波形をループから1Shotに
77
波形を【ループ】から【1Shot】に
【bgm0.wav】を選択
【リループタイプ】を【ループ】
【リループ設定の有効フラグ】【True】
にします。78
BGMをブロック化キューの右横の余白を【右クリック】し、
【ブロックを作成】を選択します。
【ブロック】が追加されます。
79
ブロックをループに変更【タイムライン上】で【ブロック】を【右クリック】し
【プロパティリスト】を表示
【ブロック】を選択し
【ブロックループ回数】を【32768】に指定。
80
ブロックを追加【beat0.wav】を【BGM】キューにドロップします。
【Block...】が追加されます。
選択しループ回数を32768にします。
81
• ボールロストするとブロックが切り替わります。• 変化が【ブロックエンド】だと【反応が悪い】ので、より細かい単位【指定分割】で遷移するように変更します。
ブロックの遷移を変更
【ブロック分割数】を【4】に 【ブロック遷移タイプ】を【指定分割で】
82
ブロックの遷移を変更【ブロック】に【区切り線】が追加されました。
この【タイミング】でも遷移するように変化しました。
83
ブロックの切り替わりを派手に【ブロック】が【切り替わる時のみ】【ドラムのフィルイン】が鳴るようにしてみましょう。
【drumfill.wav】を追加します。
それぞれブロックの区切り前に設定
84
ブロックの切り替わりを派手に【トラック】の【ブロック遷移発音タイプ】を【遷移時発音】に
これで、遷移時のみドラムが鳴ります。 85
ブロック再生をもっと知りたい• 【もっと凝ったデータ】を知りたい場合は【おまけ】の章を参考
• YouTubeで「adx2 ブロック再生」と検索• 【ヘルプ】メニューから【デモのダウンロード】
86
•ブース展示デモや初期状態で再生されていた音がどうなっているか【インゲームプレビュー】で確認する事ができます。
•今回紹介しきれなかった事【ブロック再生】•【パラメータ】を弄ったりして何が変わるか試してみてください。
おまけ 完成イメージの確認
87
完成プロジェクト
•C:/CEDEC2012Workshop/pinball/Sample/Pinball.atmcproj
88
BGMのブロック再生再生して【ブロック】を選択で切り替わります。
遷移時のみ遷移初回時のみ再生
89
DSPバス設定のパラメータ
他のエフェクタを追加してみたり
【DSPバス設定】から【DspBusSetting_0】を選択
90
おまけ2 リリースアプリに反映CRI Atom Craftでビルドしたデータ(acf,acb)をC:/CEDEC2012/Workshop/CEDEC2012/win/Pinball_Data/StreamingAssets/ 以下にコピーします。
PinballMainが選択されている事を確認。
この場所のPC/以下データ(acf,acb)が出力されます。
なお、PC/inGamePreview/以下のデータ(acf,acb)を使う事でインゲームプレビューが可能なデータとなります。 91