CRI ADX  Last Updated: 2024-09-25 17:41 p
キュー作成情報CSVからキューの作成

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

CSVから作成するメリット

再生するマテリアルは異なるが、パラメーターや構造が同じキューシートを大量に作成する時に
CSVをテンプレートのように利用できます。
マテリアルの差し替えは、CSVをExcelやテキストエディタに読み込んで置換することで行います。

キューの元となる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行につき1キューが作成可能です。

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

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

連続して同じキューIDが指定された場合は、一つのキューにまとめられます。この際のキュー名は一番最初のものになります。

入力csv

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

結果

キューID キュー名
0 footstep1

キュー名について

指定されたマテリアル名から拡張子(ピリオドを含む)を除いたものがキュー名になります。

CSVの区切り記号について

キュー作成情報CSVにおいては、カンマ及びタブを区切り記号として扱います。 一方、スペースは通常の文字として扱いますのでご留意ください。

コメントの記述

「//」で始まる行はコメントとして認識します。
複数人でCSVを共有する場合など、他メンバー向けにコメントを書いておくことが可能です。
コメント行は基本的に無視されます。

// この行はコメントです。下の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 テキストをユーザーデータに書き込む

テキストが空欄の場合は処理を行いません。
しかし、「UseBlank」を指定すると、空文字をキューコメントやユーザーデータに書き込むことができます。

拡張コマンド 動作
#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 CueComment UseBlank CSVのテキスト項が空欄の場合、空文字をキューのコメント欄にコピーします。 複数トラックがある時に空白で上書きすることが可能です。
#CopyTextTo UserData CSVのテキスト項をキューのユーザーデータ欄にコピーします。
#CopyTextTo UserData UseBlank CSVのテキスト項をキューのユーザーデータ欄にコピーします。 複数トラックがある時に空白で上書きすることが可能です。
#MaterialPath マテリアルのパスを指定します。 例:#MaterialPath system/

| 項目 | 内容 | 列の指定方法 | | — | — | — | — | | #GenerateCueNameBy MaterialName | マテリアル名から拡張子を省いたものをキュー名としてキューを生成します。
拡張コマンドの指定が無い場合のデフォルト動作もこちらです。 | 列を「キューID,マテリアル名,テキスト」で指定します。
例:0,gun1.wav,銃声
キュー名は「gun1」になります。 | | #GenerateCueNameBy CueID | 「Cued (dはキューIDの数字)」をキュー名としてキューを生成します。 | 列を「キューID,マテリアル名,テキスト」で指定します。
例:0,gun1.wav,銃声
キュー名は「Cue0」になります。 | | #GenerateCueNameBy CueName | 指定された名前のキュー名で、キューを生成します。 | 列を「キュー名,マテリアル名,テキスト」で指定します。
例:gun,gun1.wav,銃声
キュー名は「gun」になります。 |

項目 内容
#SeqType シーケンスタイプを指定されたものに設定します。詳しくは下記「::SeqTypeについて」の項を参照ください。

列フォーマットの詳細

CSVの各列の詳細は以下になります。

項目 説明 詳細
キュー名 キュー名 CueName指定の拡張コマンドが指定された場合に、ここで指定された文字列がキュー名として採用されます。
複数列に同じ名前がある場合は同じキューにまとめられます。
キューID キューID(数値) キューを表す数値IDです。CueID指定の拡張コマンドが指定された場合、ここで指定された値がキュー名に用いられます。
複数列に同じ番号がある場合は同じキューにまとめられます。
マテリアル名 マテリアル名(パス名) マテリアルルートからパス名で全検索し、最初に見つけたものを使用します。
テキスト 任意のテキスト 拡張コマンドを指定することで、キューコメントやユーザーデータとして扱えます。

#GenerateCueNameBy CueNameの例

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

入力CSV

#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でしか呼ばないようなプロジェクトの場合に利用します。

入力CSV

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

結果

キュー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について

拡張コマンド「::SeqType」を指定することで、シーケンスタイプを指定することができます。

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

入力CSV

#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のキューがシーケンスタイプランダムノーリピートで作成されます。

エラー処理とログ出力

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

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