CRI ADX  Last Updated: 2024-03-21 14:32 p
キュー作成情報CSVからキューの作成

「キュー作成情報CSVからキューの作成」とは、シンプルなCSVからキューを作成する機能です。
キュー作成情報が書かれたCSVを読み込み、キューを作成します。

CSVから作成するメリット

再生するマテリアルは異なるが、パラメーターや構造が同じキューシートを大量に作成する時に
CSVをテンプレートのように利用することができます。
マテリアルの差し替えは、CSVの情報をエクセルやテキストツールで置換して変更します。

キューの細かな最終調整はCRI Atom Craft上で行いますが、
導入となるデータの作成はCRI Atom Craft外で行うことが可能となり、分業することも可能です。

操作の流れ

  1. CRI Atom Craftを起動
  2. プロジェクトを開く
  3. マテリアルを登録(例:波形の入ったフォルダーをマテリアルルートへドロップ)
  4. 読み込み先のキューシートを用意する
  5. キュー作成情報CSVを開く
    キューシートの右クリックのメニューから、「キュー作成情報CSVからキューの作成」メニューを選択します。
    (このCSVファイルで指定しているマテリアルは (3.) のタイミングであらかじめ用意が必要です。)
  6. キューが追加される

キュー作成情報CSVをドラッグ&ドロップで開く

  • キューシートを作成しつつ読み込む
    「キュー作成CSVフォーマット」のCSVファイルを、ワークユニットツリーのキューシートフォルダーへドロップした時、CSVのファイル名でキューシートを作成します。

入出力

  • 入力: テキストファイル (拡張したCSV形式)
  • 出力: キュー

テキストフォーマット

基本

入力csv

0,gun1.wav,銃声
1,bomb1.wav,爆発

結果

キューID キュー名
0 gun1
1 bomb1

のキューができます。

「キューID,マテリアル名,テキスト」 の一行で1キューが作成可能

テキストは省略可能です。後述する拡張機能で利用可能です。

一つのキューに複数波形を指定する

連続して同じキューIDの場合は一つのキューにまとめます。

入力csv

0,footstep1.wav
0,footstep2.wav
0,footstep3.wav

結果

キューID キュー名
0 footstep1

キュー名について

キュー名は、拡張子を除いた名前で生成されます。

コメントの記述

「//」で始まる行はコメントとして認識します。
この仕組みを知らない人向けにコメントを書いておくことが可能です。
コメント行は基本的に無視されますが、後述の拡張機能で解釈を変更することも可能です。

// この行はコメントです。下の3つは同じキュー「footstep1」として作成されます。
#CopyTextTo CueComment
0,footstep1.wav,足音1
0,footstep2.wav,足音2
0,footstep3.wav,足音3
1,cancel.wav,システムキャンセル音
2,ok.wav,システム決定音

結果

キューID キュー名 コメント
0 footstep1 足音3
1 cancel システムキャンセル音
2 ok システム決定音

コメント、パース処理の詳細

カンマ、タブが区切り文字です。 スペースは区切り文字として認識しません。

テキストについて

#CopyTextTo CueComment
#CopyTextTo UserData

の拡張コマンドがある場合、テキストを指定の項目(キューコメントまたはユーザーデータ)へ書き込みます。
空欄の場合は書き込みません。

#CopyTextTo CueComment UseBlank
#CopyTextTo UserData UseBlank

とすると空欄も扱います。(キューコメントやユーザーデータに空文字を書き込む)
同じキューの場合、テキストは上書きされます。

サンプル

#MaterialPath voice/
//===================================================
// CSVのフォーマットテスト
//===================================================
#CopyTextTo CueComment
1, TEST_01_A.wav,これは上書きされる
1, TEST_01_B.wav,キューのコメントとして
#CopyTextTo UserData
2, TEST_02_C.wav,ユーザーデータ1として
3, TEST_03_D.wav,ユーザーデータ2として
4, sin.wav,これはサイン波形です
#CopyTextTo CueComment UseBlank
5, TEST_05_E.wav,空白で上書きされる
5, TEST_05_E.wav,

結果

キューID キュー名 コメント ユーザーデータ
1 TEST_01_A キューのコメントとして
2 TEST_02_C ユーザーデータ1として
3 TEST_03_D ユーザーデータ2として
4 sin     これはサイン波形です
5 TEST_05_E

追加時には初期値を参照する

「ツール設定」の「初期値設定」を参照します。

拡張コマンド

CSVの解釈の前に#から始まる行を加えることで、その行以下の動作を拡張することができます。

項目 内容 説明
#CopyTextTo CueComment CSVのコメントをキューのコメント欄にコピーします。 (CopyTextTo指定が無い時のデフォルト)
UseBlankで複数トラックがある時に空白による上書きを利用する。
#CopyTextTo CueComment UseBlank
#CopyTextTo UserData CSVのコメントをキューのユーザーデータ欄にコピーします。 UseBlankで複数トラックがある時に空白による上書きを利用する。
#CopyTextTo UserData UseBlank
#MaterialPath マテリアルのパス指定 例:#MaterialPath system/
項目 内容 説明 列フォーマット
#GenerateCueNameBy MaterialName キュー名を「マテリアル名から拡張子を省いたもの」で生成します。 (GenerateCueNameBy指定が無い時のデフォルト) 「キューID,マテリアル名,テキスト」例:0,gun1.wav,銃声 
#GenerateCueNameBy CueID キュー名をCue0といった「Cue(キューIDの数字)」としてキューを生成します。 「キューID,マテリアル名,テキスト」例:0,gun1.wav,銃声 
#GenerateCueNameBy CueName キュー名指定で生成します。 「キュー名,マテリアル名,テキスト」例:gun,gun1.wav,銃声

列フォーマットの詳細

項目 説明 補足
キュー名 キュー名 同じ名前の場合同じキューとして設定される。(先頭のキュー名で作成される)
キューID キューID(数値) 同じ番号の場合同じキューとして設定される。(先頭のキュー名で作成される)
マテリアル名 マテリアル名(パス名) マテリアルルートからパス名で全検索し、最初に見つけたものを使用します。
テキスト 任意のテキスト テキストを拡張コマンドで利用する。キューコメントやユーザーデータとして扱われる。

#GenerateCueNameBy CueNameの例

第1要素の文字列にてキュー名が生成されます。

#GenerateCueNameBy CueName
#CopyTextTo CueComment
footsteps,footstep1.wav,足音1
footsteps,footstep2.wav,足音2
footsteps,footstep3.wav,足音3
cancel,cancel.wav,システムキャンセル音
ok,ok.wav,システム決定音

結果

キューID キュー名 コメント
0 footsteps 足音3
1 cancel システムキャンセル音
2 ok システム決定音

キューIDは自動で割り当てられます。

#GenerateCueNameBy CueIDの例

キュー名がCue0といった名前で生成されます。
キューIDでしか呼ばないようなプロジェクトの場合に利用します。

#GenerateCueNameBy CueID
0,gun1.wav
1,game.wav

というCSVを読み込むと

キューID キュー名
0 Cue0
1 Cue1

が作成されます。

#MaterialPathの例

マテリアルの参照先パスの前方に文字列を追記して検索します。
未指定の場合はマテリアルルートから全検索します。

//マテリアルフォルダーのパス system以下から検索
#MaterialPath system/
0,ok.wav
1,cancel.wav
//マテリアルフォルダーのパス weapon以下から検索
#MaterialPath weapon/
1,gun1.wav
//マテリアルフォルダーのパス bgm以下から検索
#MaterialPath bgm/
2,title.wav
3,game.wav
4,gameover.wav

#SeqTypeの例

#GenerateCueNameBy CueName
#CopyTextTo CueComment
#SeqType RandomNoRepeat
footsteps,footstep1.wav,足音1
footsteps,footstep2.wav,足音2
footsteps,footstep3.wav,足音3
#SeqType Polyphonic
cancel,cancel.wav,システムキャンセル音
ok,ok.wav,システム決定音

結果

キューID キュー名 コメント
0 footsteps 足音3
1 cancel システムキャンセル音
2 ok システム決定音

footstepsのキューがシーケンスタイプランダムノーリピートで作成されます。

項目 内容 説明
#SeqType キューのシーケンスタイプ  未指定でPolyphonic
#SeqType Polyphonic ポリフォニック シーケンスタイプがポリフォニックになる。
#SeqType Sequential シーケンシャル シーケンスタイプがシーケンシャルになる。
#SeqType Shuffle シャッフル シーケンスタイプがシャッフルになる。
#SeqType Random ランダム シーケンスタイプがランダムになる。重みの設定はなし。
#SeqType RandomNoRepeat ランダムノーリピート シーケンスタイプがランダムノーリピートになる。
#SeqType Switch スイッチ シーケンスタイプがスイッチになる。
#SeqType ComboSequential コンボシーケンシャル シーケンスタイプがコンボシーケンシャルになる。

エラー処理とログ出力

「キュー作成情報CSVからキューの作成」処理によってエラーが発生した場合、エラー内容がログビューに出力されます。
エラーが出力された場合は、CSVを修正し再インポートするか、作成したキューシートを修正し問題を解決してください。
(問題を解決しないと、ACBのビルド処理で再度エラーが発生しACBデータの出力が行えません。)
また、エラーではありませんが、読み込みCSV内での同一キューID指定等でマージ処理が行われた場合は、マージ処理が適用されたことをログに出力します。
意図しない結果になった場合はログを確認してください。

読込結果 エラー発生要因
キューシートが生成されない ドラッグ&ドロップによる追加時にcsv名と同名のキューシートが既に存在している
キューシート内でキュー名が重複する CSV内にキュー名が同じになる要素(キューIDは異なる)がある、マージ元に同一のキュー名が既にある
キューシート内でキューIDが重複する CSV内にキューIDが同じになる要素がある、マージ元に同一のキューIDが既にある
マテリアルへの参照がおこなわれない 指定パスにマテリアルが存在しない