CRI Atom Craftで作業をする前に、久しぶりに使う方は「「CRI ADX2 Tools」を初めて使う方へ 」の章を再度確認することをお勧めします。
ここではもう少し掘り下げて再生するまでの流れを理解することで、
どのようなデータを用意すると効率よくプログラマと作業分担できるかにおいて解説します。
サウンドクリエータは音の元となる波形を用意します。
プログラマは、ゲームの演出上の特定のタイミングで、指定通りの音を鳴らします。
最もシンプルな方法としては、プログラマは「波形ファイル名」を指定して再生します。
「波形ファイル名」で「何」かを特定し、ゲーム内の「何」かと関連づけします。
どのシーン、状況で、どの音が必要かなどを、なるべく正確に見積もる事が大事です。
音の分類の方法もゲームによって多様な分け方が考えられます。
システム音のような、決定、キャンセルといった音や、
ものが破壊される音、足音など、
背景に流れる音楽、状況を説明するセリフなど。
音にはさまざまな効果がありますが、音をどのように鳴らすかといったことについて プログラマのできる範囲とデザインでできる範囲が少し異なります。
デザインレベルでは、規定の動作を設計することができます。
音を鳴らしすぎないとか、自動でダッキングしたいとか。
プログラマレベルでは、実際のゲームの時間軸でどうコントロールするかの設計が必要になります。
どのタイミングで、どの音を鳴らすか
どのタイミングで音の設計図をロードし、不要になった音の設計図を破棄する。
音単位でロードや破棄をすると細かすぎる場合もあるのである程度のまとまりであるキューシートの単位でおこないます。
この音の設計図=キューシートをどのように扱うかは、プログラマとデザイナの両方で、管理のしやすい方法を検討する必要があります。
CRI Atom Craftの使い方として、最も単純な音の作り方は以下の手順になります。
(説明の簡略化のため一部省略している要素もあります)
1.プロジェクトファイルを作成
2.ワークユニットを作成
3.キューシートを作成
4.キューを作成
5.波形を登録
6.エンコード設定、メモリかストリームかなど再生方式を指定
7.キューシートバイナリファイルを作成
8.キューシートバイナリファイルをプログラマへ渡す
ここまでで、音の設計図が含まれたキューシートバイナリというものが作成されます。
ここから、プログラマがこの設計図をもとにゲームプログラムで音を鳴らす手順になります。
9.ADX2ランタイムを初期化
10.キューシートバイナリをメモリ上にロードします。
11.プレーヤを作成します。
12.プレーヤにキューをセットします。
13.プレーヤを「スタート」します。
これで、キューを指定した音が鳴りだします。
基本的にプログラマは、ゲーム内で音を鳴らすためのプレーヤを用意し、キューをセットして音を鳴らすことになります。
ここから先で、音が意図したとおりにならない場合があります。
デザイナはCRI Atom Craft上で、設計図の間違いがないか、プレビューやプロファイラを使いデータに問題がないか確認します。
プログラマはゲームで実際にどう呼ばれているかなど、呼び方に問題ないか、プロファイラを使って確認する作業になります。
もし、デザイナが多い場合、複数のファイルに分割してデータ作成を行います。
CRI Atom Craftではワークユニットという単位でファイルを分割して管理することになります。
これは、設計図のロードの分類(キューシート)とはまた別の分類の設計になります。
ゲーム制作上でどこを誰が作業するかなどの見積もりが大事です。
キューには以下のような機能を追加することができます。
1.再生する音の発音数の管理
2.発音時の優先度による動作(音を鳴らす、鳴らさないなど)
3.音のランダム要素(さまざまな音が鳴る)
4.音のグループ要素
5.音の消え方の設定
音の設計図とは、ゲームでよくある一般的な音に関する演出を、プログラマの負担をかけずに効率よく行うために作り出されています。
そのため、プログラムはほとんどの場合「キュー」をセットしてスタートするだけになります。
これで、単純な再生においてはここまでの情報で音が鳴り、発音制御が設計図通りに適切に行われるものができます。
これを基本として、ADX2ではさまざまなリアルタイムエフェクトやブロックやビート同期、セレクタなど駆使したインタラクティブミュージックなどの設定ができ、 プログラムからもより凝ったコントロールを行うことができます。
また、プログラムの負担を軽減するために、アクション機能で音の制御もキューに隠ぺいしたり、 スナップショットによってエフェクトのかかり具合を容易に変化させたりといったこともできます。
ゲームの規模が大きい場合、すべての設計図をロードすることはゲームにとって負担になります。
少数の音を鳴らすだけであれば、何も考えずに一つのキューシートで作る事ができます。
規模が大きくなると一つでは入りきらなくなります。
まず、楽曲や長いセリフなどはストリーム再生にすると少し改善します。
それでも、入りきらない場合、キューシートを分割していきます。
この分割の仕方を決めておく必要があります。
どのように、どのデータを分割するか、最小単位をどれくらいにするかは、ゲームの規模によりますし、
作業にあたる人の数も影響するため、これといったおすすめはありません。
ADX2を使った場合にはプロジェクト、ワークユニット、キューシートなど分割する単位があります。
これらについて紹介します。
発音数を管理する理由は、ゲームではCPUの負荷を気にすることになります。
また、大量の再生リソースを確保するとなるとランタイムのメモリ使用量も気になります。
音を効率よくコントロールするための仕組みを紹介します。