CRI ADX
Last Updated: 2024-09-25 17:41 p
|
このチュートリアルでは、次のような書式のCSVファイルを使用して以下の操作をするスクリプトを書いてきます。
波形ファイル名 | キュー名 | キューID | コメント |
---|---|---|---|
Alert.wav | SE1000_Alert | 1000 | 警報 |
Attack_03.wav | SE1001_Attack | 1001 | 攻撃 |
ObjectAppearance.wav | SE1002_ObjectAppearance | 1002 | 出現 |
~ | ~ | ~ | ~ |
本チュートリアルは、チュートリアル「 プロジェクトの作成と波形ファイルをキューに登録 」で作成したプロジェクトを使用します。
プロジェクトを開いていない場合は、プロジェクトを開くか、「 プロジェクトの作成と波形ファイルをキューに登録 」にて作成したスクリプトを実行してから、チュートリアルを進めましょう。
スクリプト メニューで「スクリプトリスト...」を選択し、 スクリプトリスト ウィンドウを表示します。
スクリプトリスト ウィンドウの新規作成ボタンを押して、以下の名前でスクリプトファイルを作成します。
スクリプトの保存先 | スクリプトファイル名 |
---|---|
tutorials [CRI] | tutorial07-1_importcsv.py |
作成したスクリプトをダブルクリックして、 スクリプトエディターからのスクリプト実行 で開きます。
スクリプトリスト ウィンドウ でスクリプトの概要を確認できるように、スクリプトの説明を次のように記述しましょう。
スクリプトの説明が記述できたら、スクリプトで CRI Atom Craft を操作するため、次のモジュールをインポートします。
CSV ファイルを読み込むため、Python の標準ライブラリの csv モジュールをインポートします。
プロジェクト操作のために project モジュール 、ログ出力のために debug モジュール をインポートします。
読み込みするCSVのパスを設定します。
チュートリアル波形ファイルフォルダー’tutorial_data/tutorial_data03’以下の tutorial_data3.csv を指定します。
これらの処理をスクリプトで記述すると次のようになります。
読み込みする CSV ファイルには、波形ファイルのフルパスではなく、波形ファイル名だけが記述されています。
register_material 関数を使った波形ファイルの登録にはフルパスを指定する必要があります。
あとで波形ファイルのフルパスを作るため、波形ファイルフォルダーパス「 data_dir 」と CSV パス「 csv_path 」を分けて変数定義しています。
ファイルが存在しない場合、スクリプトを中断できるように、 os.path.isfile 関数でファイルが存在するかのチェックを記述しています。
読み込んだ CSV 情報には、波形ファイル名と作成するキューの情報が記述されています。
次の関数を使って、波形ファイルを登録するためのマテリアルフォルダーの取得と、キューを作成するためのキューシートの作成を行います。
関数名 | 説明 |
---|---|
get_workunit | ワークユニットを取得します |
get_material_rootfolder | ワークユニットのマテリアルルートフォルダーを取得します |
get_cuesheet_rootfolder | ワークユニットのキューシート ルートフォルダーを取得します |
create_object | タイプを指定してオブジェクトを作成します |
作成するキューシートの名前には、拡張子を除いた CSV ファイル名を使用します。
これらの処理をスクリプトで記述すると次のようになります。
CSV のパスから拡張子なしのファイル名の取り出しには、os モジュールの os.path.splitext 関数、 os.path.basename 関数を使います。
os.path.basename 関数は、パス文字列からファイル名を取得します。
os.path.splitext 関数は、最後(一番右側)のドット.で文字列を分割します。
2つの関数を組み合わせて、拡張子なしのファイル名を取得しています。
ここからは、実際に CSV ファイルを読み込み、マテリアルの登録・キューを作成する処理になります。
CSV ファイルの読み込みには、csv モジュールの csv.reader 関数を使います。
open 関数でファイルを開き、ファイルオブジェクトを取得し、 csv.reader 関数に指定します。
次の関数を使って、CSV ファイルの内容を1行ずつ読み込み、マテリアルの登録・キューを作成を行います。
関数名 | 説明 |
---|---|
register_material | 波形ファイルを登録しマテリアルを作成します |
create_simple_cue | マテリアルから情報を使って新規に単純なキューを作成します |
set_values | 指定したオブジェクトのパラメーターをまとめて設定します 指定には、キーをフィールド名、バリューをパラメーターの値の文字列とした連想配列を使用します |
これらの処理をスクリプトで記述すると次のようになります。
for 制御文を使って reader 変数から CSV の内容を1行ずつ取得していきます。
取得した CSV のデータは、「,(カンマ)」ごとに分割され row に配列で格納しています。
row には、「波形ファイル名、キュー名、キューID、コメント」の順で格納されています。
1つずつ情報を取得し、波形ファイルの登録、マテリアルの作成、キューの作成を順に行い、作成したキューに対して、 CSV から取得した「キュー名、キューID、コメント」情報を連想配列に格納して set_values を使って設定しています。
CSVファイルから波形ファイルの登録、キューの作成処理の記述ができました。 最後に、プロジェクトの保存処理を記述します。
これで本チュートリアルのスクリプト記述は終了です。
スクリプトを保存し、実行しましょう。
スクリプトが正常に実行されると以下のように、CSV ファイルの情報に従ってキューシート「tutorial_data3」が作成され、その中にキューが作成されます。