『Dead by Daylight』は定期的にライブアップデートされる"活きた"ゲームで、制作スケジュールがタイトです。将来の新機能を予測しながら事前に対応しつつ、未公表の情報がWwise SoundBankのライブアップデートで不本意にリリースされるのを防ぐために開発したWwiseセッションのすすめ方をここで紹介します。
私たちの開発プロセスでは、新しいリリースサイクルごとにUGSとP4でトラッキングされた独自のストリームがあり、その新しいストリームごとにアクティブなWwiseプロジェクトのバージョンがあります。
目的
- 将来的な研究開発はWwiseプロジェクトの絶対に公開されることのないバージョンに収めること。
- 研究開発段階のTemp(一時)Wwiseセッションで作成した新しい作業を、時期がきたら簡単にメインのWwiseセッションに移せること。
プロセス
- マップ、レベル、コンテンツ、そして私たちのゲームではキャラクターといったDLCの機能ごとに専用のWork Unitを設けるかたちで、メインWwiseセッションを計画します。
- 次期ストリームのオーディオや新たなインテグレーション作業の準備を始める段階で、メインWwiseプロジェクトを基にTemp Wwiseプロジェクトを作成します。
- この新しいTemp Wwiseプロジェクトでは新機能用の専用Work Unitだけで作業し、それ以外は凍結します。このWwiseプロジェクトの共有部分やレガシー部分で作業した場合は、あとで同じことをメインWwiseプロジェクトでも手動で行う必要があります。
- 現行ストリーム用のリリースが完成したら、新しい研究開発Temp WwiseプロジェクトのWork Unitを、メインストリームWwiseプロジェクトの新バージョンにマージします。
- 次のストリームでも同じことを繰り返します。
ライブ開発用にWwiseセッションを構築する
- この方式に対応するWwiseセッションの構造を設計する時に重要なのは、将来の開発をできる限り自己完結型にすることです。例えば『Dead by Daylight』では各マップ、キラー、サバイバーそれぞれに以下のような専用Work Unitがあります:
その一環として関連するすべてWwiseフォルダ、例えばGame Parameters、States、Switches、Attenuations、Effectsなどのフォルダに、専用Work Unitがあります。Music HierarchyとMaster-Mixer Hierarchy以外の、Work Unitに対応するすべての部分です。
またOriginalsフォルダの構成を整理しておくことも重要で、下図のようにある機能のすべての効果音は専用Originalsサブフォルダ内にまとめて入れておきます:
将来のストリームのTemp Wwiseプロジェクトを作成
1. 新しいストリームの開発を始める準備ができたら、まず今のWwiseメインプロジェクトを複製します。新しいストリーム名の後に_Tempを付けた新しいプロジェクトフォルダを作成し、そこに一部の例外を除いた現在のWwiseプロジェクトの中身すべてをコピーします。
.cache、.validationcache、.wsettings、そしてすべての.profファイルは、絶対にコピーしないでください。
通常Unrealストリームに直接生成するためゲーム階層に存在しないことが多いですが、GeneratedSoundbanksフォルダもコピーはしません。
2. 新しいTemp Wwise .wprojファイルに固有の名前をつける
Wwiseプロジェクトのコピーが終了しても、すぐに開かないでください。その前にファイル名そのものとメタデータの両方で、.wprojに固有の名前をつけることが重要です。
新しい.wprojプロジェクトファイルを右クリックして“read-only”のチェックを外します。次に基本的なテキストエディタで開いてください。Notepad++が理想的です。将来のストリーム名に_Tempを追加した名前をプロジェクトにつけますが、.wprojのファイル名自体も忘れずに変えてください。
3. Wwiseプロジェクトを開く前に、Wwiseフォルダ全体をバージョン管理ソフトに追加する
Wwiseプロジェクトを開く前に追加マークを付けるのは、今の状態であれば新しいTemp Wwiseプロジェクト全体を追加マークの対象にできるからです。Wwiseプロジェクトをいったん開いてしまうとユーザの個人設定ファイルなど余分なファイルがたくさん生成され、一般的にバージョン管理ではそれらを追加したくないからです。
新しいWwiseプロジェクトで初めてSoundBankを生成する時はキャッシュファイルがすべて再生成されるため、通常よりかなり時間がかかります。
Temp Wwiseプロジェクトをメインストリームにマージする
現在のストリームのリリースサイクルが完了したら、研究開発用Temp Wwiseセッションを安全にメインストリームにマージできます。以下の通り手動で行います:
1. 新しいストリーム用に新しいメインWwiseプロジェクトを作成する
リリースのたびにアルファベット順に新しいストリーム名をつけるため、例えばGorillaの次はHorseとなります。前のセクションで作成したTemp Wwiseプロジェクトの名前は、次回のストリームの名前に_Tempを追加したプロジェクト名でした。
今度はもう一度、同じメインストリームWwiseセッションの最新バージョンを複製しますが、手順は前述のTempプロジェクトを作成した時と同じです。新しい.wprojファイルの名前変更をNotepad++で行い、新規作成したプロジェクトを開く前に追加マークを付けるなど、すべて同じ手順で行ってください。
例:
メインストリームWwiseセッション名: DeadByDaylight_2019_2_5_Gorilla.wproj
将来ストリームサポート用のTempセッション名: DeadByDaylight_2019_2_5_Horse_Temp.wproj
新メインストリームWwiseセッション名: DeadByDaylight_2019_2_5_Horse.wproj
2. 新Work UnitをTempプロジェクトから新Mainプロジェクトに手動で移動する
Tempプロジェクトを作成してから新Mainプロジェクトを作成するまでの間にミキサールーティングが大幅に変わっていなければ、すべて正常につながるため再接続する必要はありません。
ミュージックインテグレーションは移動できないため、TempプロジェクトからMainプロジェクトへとつくり直す必要があります。また新キャラクターのパワーSFXをMaster Hierarchy内に設定したキラー専用のサブAUXを通す場合など、静的な構成内にカスタムルーティングがあればそれも同様です。
Work Unitの移動
1. 研究開発段階にTempセッションで作成した新Work Unitの名前や保存場所が一致するよう、新メインWwiseセッションにも新しいWork Unitを作成します。
2. 開いているWwiseセッションがあれば閉じます。
3. わきに一時エクスプローラーフォルダを新しく作成し、Temp Wwiseセッションで新しく開発した各Work Unitをここにコピーします。Work Unitの名前を見てもWwiseフォルダ構成のどこに保存されているのか明確でない場合は、一時エクスプローラーフォルダ内の適切な名前のフォルダに入れるか、以下の手順を各Work Unit 1で行います。混同しないようにします。
4. 次にTemp WwiseセッションのWork UnitのWork Unit IDを、新メインWwiseセッションの何も入っていない新Work UnitのそれぞれのIDに置き換えます。そのためにはエクスプローラーのWork Unitを右クリックし、“Read-Only”をオフにし、もう一度右クリックしてNotepad++などのプレーンテキストエディタで開きます。
こちらにあるWork Unitのプレーンテキスト情報がたくさんあります。間違えて上のWwise Document IDを置き換えないようにしてください。必要なのはもう少し下のWork Unit IDです。
5. Temp Work UnitのIDを、該当する空のMain Work UnitのIDに置き換えることができたら、そのTemp Work Unitをコピーして、新Main Wwiseプロジェクトのエクスプローラーフォルダ構成の正しい位置にペーストします。
Work Unitを上書きしても良いか聞かれるので「はい」と回答します。
聞かれない場合は前の手順に戻り、各Work Unitが新しいIDで新しいWwiseプロジェクトに正しく作成されたかどうかを確認してください。
6. すべての新Work Unitをコピーして上書き保存できたら、関係するOriginalsフォルダもコピーします。Originalsフォルダに関してはIDを変える必要はありませんが、それらをメインWwiseプロジェクトに追加することを忘れないようにしましょう。
7. これで新メインWwiseプロジェクトを開けます。
IDの置き換えに間違いがあれば、そのWork Unitの親は不明である旨のエラーが出るかもしれません。その場合、Actor Mixerなどの該当する構成の最上位から正しい位置に手動で戻すだけとなるため、心配はありません。
制限事項
- マスターバスやUI関連の共通・共有Work Unitで行った作業は、それをメインのWwiseストリームでも手動で行う必要があります。
- この方法はMusic Hierarchyには使えません。
- 新しいメインWwiseプロジェクトを作成した後に、以前のWwiseセッションの過去のストリームに対して作業を行った場合、同じ作業を手動で新メインWwiseセッションで行う必要があります。
近道バージョン
新しいWork Unitを認知されていないWwiseセッションに移動しても、そのWork UnitのWwise構成内の正しい位置が分からなくなるだけなので、あるWwiseセッションから別のセッションにロジック構造の適当な一部分を動かしたいだけの時は、近道を使ってWork Unitをコピーできます。
コピー元のWwiseプロジェクトの中に新しい一時Work Unitを作成し、そこに必要なすべてのWwiseロジックをコピー&ペーストしてから、エクスプローラーでそのWork Unitのコピーをコピー先プロジェクトの適切なサブフォルダに追加します。次に新Wwiseプロジェクト側でそれを選択し、入れたい場所にロジックを持っていきます。
コメント