月別: 2017年12月

キューシートが言語を利用しているかを確認する

キューシートが言語を利用している状態は以下の2つが考えられます。

  • 波形側で言語フォルダを利用した言語による異なる波形を持つキューがある
  • トラックの適用言語で言語指定したトラックを持つキューがある

実際に使われているかを簡単に確認したい場合は、ビルドダイアログの言語の項目を確認します。

この図はビルドダイアログのキューシートリストを拡大したものです。

Use English Japanese Korean と3つの言語が使われています。

ここが、空欄のキューシートは、言語により差異のないキューシートになります。

処理をビートに合わせる

ビートに合わせてトラックを切り替える -> セレクタによるトラック遷移キューを使う (セレクタの切り替えで再生トラックが切り替わる)

トラックに異なるBPMを指定したりもできる。

ビートに合わせてキューを切り替える -> ビート同期情報を含むキューを再生後、アクションのスタートを持つキューを再生することで、アクション先のキューがビートに同期して再生される。 (同じプレーヤーでアクションを再生する)

次に再生されるキューにもビート同期情報があれば、そのビート同期情報にしたがって、次のアクションも同期する。

ビートに合わせてブロックを切り替える -> ブロックの分割数をビート数にして、ブロックを遷移させる。

プログラムで再生時刻を監視して再生する -> PlayerのGetTimeを使う。

7.1chサウンドを再生する初期設定の注意

7.1chを再生する場合

  • ASRのチャンネル数(初期化時設定、出力チャンネル数)
  • 素材のチャンネル数(波形のチャンネル数)
  • ボイスプールのチャンネル数(初期化時設定、ボイス再生する時のチャンネル数)
  • パン演算時のチャンネル数(初期化時設定、パンの計算するチャンネル数)

[ASRチャンネル数]
7.1chのサウンドを再生するには、asrの出力チャンネル数も8chに増やす必要があります。
ASR=アトムサウンドレンダラー ADX2の再生レンダリングをするモジュールです。

[素材のチャンネル数]
7.1chの素材のチャンネルの並び順は、L,R,C,LFE,Ls,Rs,Lsb,Rsbの順番になります。
素材=元波形wavのチャンネル数

[ボイスプールのチャンネル数]
ボイスプールは同時に再生する数だけ用意することでリソース消費を軽減できます。
例えば、元素材がモノラルしかならさない場合は1chで済ませることができますが、7.1ch素材を鳴らす場合は、8ch設定のボイスプールを用意する必要があります。
ボイス=再生時の1発音に必要な処理リソース

[パン演算時のチャンネル数]
合わせて、パンスピーカータイプを6ch(L,R,Ls,Rs,Lsb,Rsb)または7ch(センター含む6ch)にする必要があります。
パンスピーカータイプは初期状態では4chとなっており、5.1chにダウンミックスされて出力されてLsb,Rsbが鳴らないといったことになります。
もし鳴っていない場合は確認してみてください。
パンスピーカータイプ=パン演算の方法、どのチャンネルまで使用してパンニングを行うかという設定。

[余談]
ADX2では初期状態では5.1chのパンが扱われるようにできています。
この時、「センターを含めて音をまわしたいかどうか?」といったところからパンスピーカータイプが用意されています。

5.1chは比較的想像しやすく、後ろ側の成分が鳴らなくなるといったことがありますが、
7.1chの場合、残りの2chが正しく発音しているかは気がつきにくい点です。
これについては、レベルメーターで発音しているかを確認することができます。

パンスピーカータイプは、パンニング時のスピーカーのタイプとして4ch(L,R,Ls,Rs)や5ch(センター含む4ch)を指定することもできます。
このチャンネル数を使用して音を回転するといったことが可能になります。

再生速度の変更

ピッチ変更・・・ 音程も変化する速度変化。 アナログテープの速度変化やレコードの回転数を変えたような変化になる。

タイムラインの再生速度・・・ ここでは、シーケンスの再生速度の変化。

シーケンス・・・ タイムラインのイベント(音を鳴らす、止める、音量変化など)をキューの再生からの時刻で指定しているデータ。

ADX2ではキューで再生されるすべてのデータがこのタイムライン(シーケンス)で再生されます。

この速度を変化させることができます。 ピッチ変化とかではなくて、再生/停止/音量変化/フィルターなど様々なものの速度を変更できます。

これで何ができるかはアイデア次第です。

20150325再生レート変更

AISACに「再生レート」を追加することで、シーケンスの速度をインタラクティブに変化させるサウンドが実現できます。

この動画では、ピッチの上がり下がりをオートメーションで用意し、

PlayList再生にして、シーケンスエンドまでをループ再生しています。

AISACで再生レートを変更するグラフを用意し、変化速度をリアルタイムに変化させています。

ADX2のチューニング

ADX2は様々な再生機能が備わっていますが、それぞれ初期設定でカスタマイズすることができます。

これにより、動作時のメモリを削減したり、より多くのコントロールを同時使用したりといったことができます。
同時発音数、再生チャンネル数、最大再生ピッチなど、再生遅延チューニングなどスペックに応じて調整する場合もあります。

また
各パッケージ毎のSDKのcri/documentationフォルダには、その機種での固有情報が別マニュアルとして書かれています。

設定時に参考にしてみてください。

[参考]PCの情報
(要アカウント) https://www.criware.jp/support/adx2/pc/docs/jpn/criatom_tuning.html

機種固有の追加情報について

BEATWIZと組み合わせる

ADX2でBEATWIZのリアルタイム解析を連携させることができます。

ADX2のフィルターコールバックで、AtomEXプレーヤやバスなどで解析することで、ビートをリアルタイムに解析して結果を出すといったことができます。

[余談]BEATWIZはバッチ処理での超高速、高精度のビート解析や、楽曲の盛り上がり度、ドラムの発音タイミング検出など楽曲に対しての様々な解析処理が入っています。携帯ゲーム機や組み込み用機器など限定された計算資源しかもたないハードでも動作できるように設計されています。

ムービーで5.1ch再生や言語別再生やAmbisonics再生する

CRI Sofdec2を使うと、音声トラックにHCAやADXを選ぶことができます。
HCAは品質も指定できます。

5.1chトラックを複数含めて、再生時に切り替えたり、
センターのチャンネルだけ言語別に持つといったことも可能です。

トラックが32個、つまり5.1chを1トラック(1つのオーディオストリーム)として切り替えが可能です。

また、オーディオトラックとしてAmbisonicsにも対応しています。

ムービーとADX2のオーディオ同期、シーク再生、アルファ再生、シームレス連結再生、再生速度変更、複数再生などさまざまなゲームで行う特殊再生にも対応しています。

ADX2LEからADX2へのデータ移行

ADX2LEとADX2のデータ移行は、CRI Atom Craft上で、ビルド時のターゲットコンフィグPublicからPCに変更するだけでできます。

また、すでに運用中などの既存のADX2LEデータを再生することもできます。(要問い合わせ)

ADX2でADX2LEのデータを出力する場合はPublicで出力をすることで、継続してADX2LEフォーマットを利用することもできます。

[余談] ライセンスは変わってもADX2LEを使い続けるという選択もあります。

Invalid parameter エラーと大量エラー発生

Invalid parameter というエラーが大量に出る時があります。

これは、「無効なパラメータ」というもので、パラメータの解析処理時に想定外の範囲などが設定されていた場合に起こります。
通常は発生しないのですが、例えば未来のフォーマットのデータなどを読み込むと発生する可能性があります。

おそらく、データの読み込み時などに原因となるワーニングが発生しているので確認してみてください。

似ているものに 「No voice pool ~」系のエラーも大量にでる場合があります。これは再生時にボイスプールが存在しないために処理が続行できない場合に発生するので、

  • 文字通りボイスプールが存在しないデータフォーマットのボイスを再生しようとした場合
  • そもそもボイスプールが生成できない要因が初期化段階で起きている

といった可能性があります。
処理によっては毎フレームエラーになり続けるため、エラーのログが流れてしまう場合があります。
これらの発生する前の段階でワーニングやエラーが発生していないか確認する必要があります。

エラーもなく音が鳴らない8つの要因

エラーもでずに音が鳴らない

  • レベルメータなどは動作していますでしょうか?
    レベルメータが反応していない場合は、内部でボリューム系が落とされている可能性があります。
    (バスボリューム、カテゴリボリューム、AISACやセレクタ、ランダム、リミット処理、リスナーが遠いなど様々な要因があります。)
    ボリューム処理で音が小さい場合や、トラックが空のシーケンスや、元波形が無音などの場合はエラーも音が出ません。
  • DAWがWASAPI排他モードなどの場合に、DAWが起動中にサウンド処理を奪ってしまう場合など考えられます。
    この場合は排他モードで動作しているDAWを終了していれば問題ないと思われます。
  • 初期化時にエラーが発生しているか?
    バスが足りない、ボイスプールが足りない、ストリーム数が足りない、再生レートが足りない、ACFが何らかの要因でロードできていないなど、バスセンド先が存在しない場合なども音が鳴らない状況があります。この場合、再生時よりもはるか以前の初期化時にエラーが出ている場合があります。
    プレーヤーの3D有効設定、フェーダー設定などプレーヤーに起因するエラーなども考えられます。
  • PCのボリュームが下がっている/Muteになっている/出力デバイスが異なる
    オーディオインターフェースなどの設定でMuteになっていたりしないでしょうか?
    また、チャンネル数が合わないデバイスなどで、サラウンド側の音が鳴らないなども考えられます。
  • 距離減衰の設定が最大0になっている > ボイスのパンタイプが「3Dポジショニング」で、キューの距離減衰が、初期状態の(最小0.最大0)となっているとリスナーとソースが同じ位置にある時にしか鳴らない
  • キュー、トラック、ウェーブフォームリージョンの「再生確率」が100以下に設定されている。
  • キューのシーケンスタイプが「ポリフォニック」でセレクタ設定されていて且つセレクタがプレーヤーにセットされていない
  • awbに対応するacbが異なる。(awbまたはacbが古いなど。この場合正しく再生されない)リビルドすることで解決する。

 

リミット処理のかかる順番と音が聞こえない条件

ループとランダムを組み合わせて=無限をつくる

シーケンスループに、ランダムなリージョンを入れたり
ランダムな振る舞いをするサブシーケンスを挟むことにより
カオスな振る舞いをする音源を作ることができます。

シーケンスループは、
シーケンスループマーカー(複数トラックで同じ長さのループ)
再生方法をPlayList (トラックごとに長さのことなるループ)
自動繰り返し機能 (ウェーブフォームリージョンごとに再生間隔指定、ランダムなど)
が選べます。(番外:ブロック再生もある種のループ機構)

[余談]どんな音が作れるか? 波、風、雨、水滴が落ちる音、岩が崩れる音、群衆の声など

デモプロジェクトを聴いてみよう

LFOしよう、Modulationしよう

AISACオートモジュレーションを使うと、自動でパラメータの時間変化が加えられます。
ループにするとそれを繰り返します。

AISACはほぼすべての音色に関わるパラメータをグラフで変更できます。

これをモジュレーションしたら・・・ 可能性が無限に広がります。

フィルター、ピッチ、ボリューム、パン、センド、再生速度、リリース、再生確率(プラオリティ)、さらには他のAISACグラフまで(つまりFMっぽいものまで)

音色作りに飽きた時など、試してみると何か新しい発見があるかもしれません。

[余談]FM = Frequency Modulation 主に周波数を変化させるもの。ループの周期を多重にかけることで、変化カーブの速度が歪むことにより、より複雑な変化を発生させることができる。うまくすると、風の音や波の音、自然に存在するカオスな振る舞いな音を作り出すこともできるかもしれません。

デモプロジェクトを聴いてみよう