FAQ

ACBファイルを差し替えたいのですが、どうすれば良いのでしょうか?

コンテンツブラウザでAtom Cue Sheetアセットを選択し、右クリックメニューで[Reimport]を実行してください。
CRI Atom Craft上でキューを新規に追加した場合、この操作によりAtom Cueアセットが新規に作成されます。
補足:
CRI Atom Craft上でキューを削除した場合でも、上記の操作により既存のAtom Cueアセットが削除されることはありません。
不要になったAtom Cueアセットは、ユーザ操作で削除する必要があります。

ACBファイルは自動で再インポートされないのでしょうか?

技術的な問題により、現在ACBファイルは自動で再インポート(Auto Reimport)されません。
ただ、UE4.18ではエンジンソースを次の手順に従って編集することにより実現させることが可能です。
[UE4のルートディレクトリ]/Engine/Source/Editor/UnrealEd/Private/AutoReimport/AutoReimportManager.cpp
上記ソースファイルを編集します。
FAutoReimportManager::GetAllFactoryExtensions関数定義内のreturn文の直前に以下のコードを追加します。
Scratch.GetCharArray().Reset();
Scratch.AppendChars(TEXT("acb;"), 4);
AllExtensions += Scratch;
ソースファイルを保存後ビルドすることで、ACBファイルが自動で再インポートされるようになります。

ACBファイル(〜.acb)をパッケージに含める必要はありますか?

ACBファイルの内容はuasset内にコピーされているため、ACBファイルをパッケージに含める必要はありません。
注意:
AWBファイル(〜.awb)の内容はuassetにはコピーされないため、ストリーム再生を行う場合、AWBファイルを別途パッケージに含める必要があります。
(詳細については データの読み込み をご参照ください。)

AWBファイルを複数のフォルダに分けて配置することはできますか?

Atom Cue SheetアセットのACBファイルのパスを指定することで、プロジェクト設定画面の [Non-Asset Content Directory] で指定したパス以外のフォルダからAWBファイルをロードすることが可能です。
具体的な設定方法は、 「 AWBファイルパスの指定 」を参照してください。

エディタの「起動」ボタンで実行すると、「'CriWareRuntime'が見つからない」旨のエラーが出て起動できない。

プラグインをエンジンに組み込み、Visual Studioで「UE4」プロジェクトを[Development]構成でビルドしてください。
これにより、CriWareRuntimeモジュールが組み込まれたUE4Game.exeが生成され、エディタの「起動」ボタンで実行できるようになります。

3Dポジショニング設定された音が鳴りません。

音源の減衰距離が正しく設定されているか、確認してください。
デフォルト状態では、CRI Atom Craft上で設定した距離の値が、Unreal Engine 4上で単位変換なくそのまま使用されます。
例えば、CRI Atom Craft上で減衰距離を1.0に設定した場合、Unreal Engine 4上で距離が1.0(=1cm)離れると音が聞こえなくなります。
そのため、CRI Atom Craft上で距離の単位をメートル単位と想定してデータを作成すると、Unreal Engine 4上では音の範囲が1/100になってしまいます。
CRI Atom CraftとUnreal Engine 4との距離単位の違いを吸収する方法として、プロジェクト設定に [Distance Factor] という項目が用意されています。
[Distance Factor] は、「Unreal Engine上の距離1を、Atomライブラリでいくつと解釈するか」を示す値です。
例えば、Unreal Engine 4の座標系をセンチメートル単位、CRI Atom Craftの距離単位をメートルと想定してデータを作成する場合、 [Distance Factor] には0.01を指定します。

エディタの「起動」ボタンで実行すると音が鳴りません。

以下の点について確認してください。
  • プロジェクト設定の [Non-Asset Content Directory] にAWBファイルを配置したフォルダのパスが設定されているかどうか。
  • プロジェクト設定の [Packaging] > [Additional Non-Asset Directories To Copy] に、ストリーム再生用データのフォルダが指定されているかどうか。
  • プロジェクト設定の [Packaging] > [Additional Non-Asset Directories to Package]に、ストリーム再生用データのフォルダが指定されているかどうか。
  • ログファイルにエラー情報が出力されていないかどうか。
詳細については データの読み込み をご参照ください。

音声は再生されますが、リバーブ等のエフェクトがかかっていません。

デフォルト状態ではDSPバス設定が適用されていません。
DSPエフェクトを有効にするには、ブループリントAPIの「Attach Dsp Bus Setting」を使用してDSPバス設定のアタッチを行う必要があります。
補足:
CRI Atom Craft Ver.2.23.00以降では、デフォルトで適用するDSPバス設定をツール上で指定可能です。
CRI Atom Craft上で「DefaultDspSetting」を指定し、ACFファイルをリビルド&リロードすることで、上記操作なしにDSPバス設定を適用することも可能です。
(この場合、ACFがロードされた時点でデフォルトのDSPバス設定が適用されます。)

音声再生時に以下のログが表示されます。

LogCriWare: W2015113001:Specified frequency ratio exceeds the player's capability. (Increase max_sampling_rate of AtomPlayer or VoicePool up to …Hz.)
LogCriWare: W2010110801:Specified frequency ratio exceeds the player's capability. (Increase max_sampling_rate of AtomPlayer or VoicePool up to …Hz.)
上記警告は、再生しようとしている音声のサンプリングレートが高く、再生可能なボイスが存在しない場合に発生します。
ADX2では音声のピッチの上げ下げを、再生速度を変える方法で実現しています。
(例えば、48kHzの音声データを1オクターブ上げる場合、96kHzで音声を再生します。)
そのため、ゲーム中でピッチを上げる操作を行う場合、あらかじめ音声データのサンプリングレートにピッチによる倍率を掛け合わせた値をボイスプールの作成パラメータとして設定する必要があります。
具体的には、CRIWAREプラグイン設定の、[Sampling Rate of Standard Memory Voice] や [Sampling Rate of Standard Streaming Voice] の値を、ピッチ変更幅を考慮した大きめの値に設定しておく必要があります。
(CRIWAREの初期化パラメータ詳細については、「 CRIWAREの初期化パラメータ詳細 」をご確認ください。)

音声再生時に以下のログが表示されます。

LogCriWare: W2010030405:ACF file is not registered.
LogCriWare: W2010110104:ACF file is not registered.
上記警告は、音声の再生に必要なACFファイルが登録されていない場合に返されます。
Atom Craftが出力したACFファイルがアプリケーション起動時にロードされるよう、「 データの読み込み 」ページに記載の手順でACFファイルに関する設定を行ってください。

音声再生時に以下のログが表示されます。

LogCriWareRuntime:Warning: Could not find file ….awb
上記警告は、ストリーム再生用の音声データが見つからない場合に返されます。
ACBファイルについてはエディタに登録した時点でuassetファイル内にデータが取り込まれますが、AWBファイルはuassetファイルには含まれません。
そのため、uassetファイルとは別にAWBファイルをGameディレクトリ以下に配置しておく必要があります。
具体的な設定方法については、「 データの読み込み 」や「 AWBファイルパスの指定 」を参照してください。

ACBファイルをコンテンツブラウザにドロップすると、「同じ名前のアセットが存在します。別アセットを上書きできません。」というエラーメッセージが表示されます。

キューシート名とキュー名に同じ名前が使われている場合に上記エラーが発生します。
CRIWARE UE4プラグインは、キューシート名(ACBファイルの名前)を使用してAtom Cue Sheetアセットを作成し、キュー名(ACBファイルに含まれるキューの名前)を使用してAtom Cueアセットを作成します。
そのため、キューシート名とキュー名が同一の場合、コンテンツブラウザでアセットをインポートした際、エラーが発生してしまいます。
(Atom Cue Sheetアセットは作成されますが、名前が重複するAtom Cueアセットは作成されません。)
問題を回避するには、以下のいずれかの修正を行ってください。
  • Atom Craft上でキュー名を変更する。
  • アンリアルディタ上でAtom Cue Sheetアセットをリネームし、再インポートを行う。

Atom Cue Sheetの再インポートに失敗します。

エディタ上でプレビューを行っている最中など、Atom Cue Sheetアセット使用中に再インポート操作を行うと、再インポートに失敗します。
問題を回避するには、エディタ上でのプレビューを停止してから再インポート操作を行ってください。

SetSoundを行うと音声が止まってしまいます。

音声再生中にUAtomComponent::SetSound関数を呼び出した際、下記の条件を満たすと音声が停止します。
音声が停止する条件
※キューシートAのキューを「キューA」とし、キューシートBのキューを「キューB」とします
・キューAを再生している AtomComponent のSetSound関数を実行し、キューBをセットする
・他のどの AtomComponent もキューシートAのキューを再生していない
・キューシートAの Atom Cue Sheet アセットがシーンに配置されていない
音声が停止する理由
異なるキューシートのキューを指定してSetSound関数を実行すると、元々設定されていたキューシートは参照が解除されます。
このとき、キューシートがどのオブジェクトからも参照されていない場合、キューシートが破棄されます。
これはキューシートがメモリ上に残ったままになってしまうのを防ぐためです。
キューシートが破棄されたことにより、そのキューシートのキューは再生を停止します。
回避方法
異なるキューシートのキューを指定してSetSound関数を実行したときに音声を停止したくない場合は、Atom Cue Sheet アセットをシーンに配置します。
こうすることで、そのキューシートが常に参照されている状態になり、SetSound関数を実行した際にキューシートが破棄されることがなくなります。
Atom Cue Sheet アセットをシーンに配置する方法については「 Atom Cue Sheetアセットのロードタイミングの制御 」をご覧ください。

5.1chや7.1chの音声が再生できません

プロジェクト設定で、以下の項目を6に設定する必要があります。
  • (メモリ再生の場合)Number of Channels of Standard Memory Voice
  • (ストリーム再生の場合)Number of Channels of Standard Streaming Voice

CRI Middleware logo Copyright (c) 2012-2018 CRI Middleware Co., Ltd. CRIWARE Unreal Engine 4 プラグインマニュアル SDKVer.2.10版