月別: 2018年1月

ADX2での再生方法

ADX2では基本的に「プレーヤー」で再生します。

再生手順

  • プレーヤーにキューをセットする
  • プレーヤーをスタートする

ボイスの確保タイミング

プレーヤーにキューをセットしても、名前だけがセットされているだけの状態で、
実際のボイスの確保はプレーヤースタート時に行われます。

プレーヤーとキューとボイス

  • プレーヤー = 再生機器
  • キュー = メディア(楽譜)
  • ボイス = キューから複製(インスタンス)された演奏音

プレーヤーのセットアップ

  • セット(キューをセット)

プレーヤーのコントロール

  • スタート(キューをスタート)
  • ストップ(キューを停止)
  • ポーズ(キューを一時停止)
  • ポーズを解除(キューの一時停止状態を解除)

プレーヤーのコントロールは即時に反映されます。

プレーヤーのパラメータの制御

  • ボリュームをセット
  • ピッチをセット
  • AISACコントロール値をセット
  • アップデート(積んでいた設定を更新し、すでに再生済みの音に影響させる)

といった感じで、アップデートで再生中の音にも影響を与えます。

キューをセットしても、再生中の音が瞬時に切り替わるわけではないのと似ています。

プレーヤーは多重再生がデフォルト

ゲームエンジンなどプレーヤーとは異なり、一つのプレーヤーで複数再生が可能です。

ただし、フェーダーをアタッチしたりした場合は、切り替え式に再生されます。(一時的に2音までの基本1音再生)

リソース確保の遅延を最小にしたい

もし、ストリームなどの準備の遅延を最小限にしたい場合のテクニックとして、

  • プレーヤーをポーズして、スタート (スタート状態の先頭で止まった状態)
  • プレーヤーのポーズを解除

といった技もあります。

エンベロープと発音制限

停止時のノイズを避ける

発音制限が行われると、音が「ブツ切れ」になることがあります。
こんな時に、サンプラーなどにあるような、エンベロープのリリースがあると便利です。

ADX2ではボイスレイヤーにADSR相当のボリュームエンベロープの機能があります。
(キューには無いので注意)

これは、音が停止した際に、リリース時間をかけて、音が自動で減衰していく処理などがおこなえます。

音が止まる時の発音数

この音が止まる時の発音数としては

  • ボイスの制限数に達した場合
  • キューの発音リミットに達した場合
  • ボイスリミットグループの制限に達した場合

などが考えられます。

キューの発音リミット数に達した場合でも、ボイスのリリース時の発音は重なりが多い場合、ボイス数が枯渇してしまう場合があります。

つまり、オーバーラップ分の制御も必要になります。

ボイスのリミットと、キューのリミットの関係

ボイスのリミットと、キューのリミットの関係を今一度検討する必要がでてきます。

  • ボイスのリミット = ボイスプールの数、ボイスリミットグループのリミット数
  • キューのリミット = キューのリミット数、キューの所属するカテゴリのキューリミット数

ざっくりと、

キューリミットで、全体の発音数を設定(これ以上ならなくて良いという演出上のアバウトな設定)
ボイスリミットで確実なリソース数の制限(ストリーム数や処理負荷など処理スペック要因でのリミット)

を行います。

設定例

例えば、曲再生などで、少し長めのリリースなどがある場合には、

  • BGMカテゴリのキューリミット数を1(制御として1曲だけ鳴らしたい)
  • ボイスリミット数を2、ストリーム数を2(リリース分含めて)

こうすると、プログラムから再生リクエストがきた時、自動でリリース付きで停止しつつ、次の発音開始が入り、
一時的に2音再生している時に対応しつつ、演出上の発音数を1に抑えることができます。

間違った設定例

ボイスリミットが1で、キューリミットが2といった場合、
ボイスの後着優先で、前の音がブツ切れ(リリースなし)で奪い取られてしまう。

AISACコントロールの強弱関係

AISACコントロールには強弱関係があります。

カテゴリにあるAISACコントロール > プレーヤーのAISACコントロール > キューのタイムラインにあるAISACコントロールのオートメーション

これらは、一度でもプログラムから設定をしてしまうとその設定がずっと有効になります。

カテゴリ

特にカテゴリへの設定はとても強いため、AISACコントロール名(値)をカテゴリ専用にしておくことをお勧めします。

例)距離減衰用AISACコントロール DistanceForCategory

プレーヤー

プレーヤーの場合は、プレーヤーをリセットすることで解除できます。

カテゴリボリュームは上書き

ほとんどのボリュームパラメータは掛け合わせ(ツールでの設定に掛け算)なのですが、

カテゴリのボリュームは、上書き(ツールの設定を無視)になります。

よくあるゲーム内のサウンド設定などでカテゴリボリュームを使う場合には

  • ツールでのボリューム調整用のカテゴリ
  • プログラムからの設定カテゴリ

の2つをキューに設定しておくことをおすすめします。

カテゴリでボリューム調整

ビート同期マーカーはアクションにかかります

タイムラインに追加できる「ビート同期マーカー」

これは、

  • 同じプレーヤーで
  • アクションのタイミングを

直前に再生していたキューのビート同期マーカーの情報によって、アクションの実行タイミングを合わせてくれる機能です。

  • ビートに合わせてアクションで別のキューを再生
  • ビートに合わせてアクションで音を止める
  • ビートに合わせてアクションでAISACを切り替える

などできます。

他にも(ビート同期マーカーに限らない)ビートに合わせるテクニックはこちらを参照ください。

処理をビートに合わせる