このチュートリアルでは、find_object 関数を使って、ワークユニットからキューシートを再帰的に検索し、複数の波形ファイルを連続処理でマテリアルに登録して、それらを参照するキューを作成するスクリプトを書いていきます。
「 プロジェクトの作成と波形ファイルをキューに登録 」チュートリアルでは、キュー、マテリアルを1つずつ作成しました。
実際のサウンドデータ製作では、1回に1つの波形ファイルを登録するのではなく、まとまった数の波形ファイルを一度にまとめて登録することが多いと思いますので連続処理の参考にしてください。
本チュートリアルは、チュートリアル「 プロジェクトの作成と波形ファイルをキューに登録 」で作成したプロジェクトを使用します。
プロジェクトを開いていない場合は、プロジェクトを開くか、「 プロジェクトの作成と波形ファイルをキューに登録 」にて作成したスクリプトを実行してから、チュートリアルを進めましょう。
スクリプト メニューで「スクリプトリスト...」を選択し、スクリプトリスト ウィンドウを表示します。
スクリプトリスト ウィンドウの新規作成ボタンを押して、以下の名前でスクリプトファイルを作成します。
スクリプトの保存先 | スクリプトファイル名 |
---|---|
tutorials [CRI] | tutorial05-1_use_find_object.py |
作成したスクリプトをダブルクリックして、 スクリプトエディターからのスクリプト実行 で開きます。
スクリプトリスト ウィンドウ でスクリプトの概要を確認できるように、スクリプトの説明を次のように記述しましょう。
スクリプトの説明が記述できたら、スクリプトで CRI Atom Craft を操作するため、次のモジュールをインポートします。
フォルダーに含まれる波形ファイルパスを取得するため、glob という Python 標準モジュールをインポートします。
glob モジュールを使用すると、指定されたパターンに一致するファイルパスを取得することが出来ます。
プロジェクト操作のために project モジュール 、ログ出力のために debug モジュール をインポートします。
glob モジュールを使って、チュートリアル波形ファイルフォルダー「/tutorial_data/tutorial_data02」以下の波形ファイル取得します。
スクリプトで記述すると次のようになります。
glob.glob 関数で取得したファイルパスリストを files 変数に格納しています。
次に、len 関数を使って files 変数に格納されたファイルパスの個数を調べ、1つも無ければログを出力してスクリプトを終了するようにしています。
次の関数を使ってワークユニットを取得し、波形ファイルを登録するマテリアルフォルダーと、キューを作成するためのキューシートを取得します。
関数名 | 説明 |
---|---|
get_workunit | ワークユニットを取得します |
get_material_rootfolder | マテリアルルートフォルダーを取得します |
find_object | 再帰検索を行い一致したオブジェクト取得します |
find_object 関数を使用したキューシートの取得をスクリプトで記述すると次のようになります。
find_object 関数を使用してキューシートの取得をしています。
find_object 関数には、「検索のルートとなるオブジェクト」、「取得するオブジェクトタイプ」、「取得するオブジェクト名」を指定します。
find_object 関数は、指定された値を元にオブジェクト構造を辿って、条件に一致した最初のオブジェクトを戻します。
このため、スクリプトでオブジェクト階層を辿ることなく、1回の呼び出しで目的のオブジェクトを取得することができます。
次の関数を使って、先ほど取得したファイルパスのリストから1つずつファイルパスを取り出し、マテリアルとキューを作成します。
関数名 | 説明 |
---|---|
register_material | 波形ファイルを登録します |
create_simple_cue | マテリアルから情報を使って新規に単純なキューを作成します |
ここでは、キューの作成に create_simple_cue 関数を使用します。
for 制御文を使用して、glob.glob 関数で取得したファイルパスリストの要素数分、連続処理します。 これらの処理をスクリプトで記述すると次のようになります。
create_simple_cue 関数は、基本構成のキューを作成します。
create_simple_cue 関数には、「作成先のキューシート」、「キューが参照するマテリアル」を指定します。
作成するキューの名前にはマテリアル名(拡張子を除く)が使用されます。
波形ファイルの登録とキューの作成処理の記述ができました。 最後に、プロジェクトの保存処理を記述します。
これで本チュートリアルのスクリプト記述は終了です。
スクリプトを保存し、実行します。
スクリプトが正常に実行されると、以下のように「tutorial_data02」内の波形ファイルのマテリアル登録が行われ、それらを参照するキューが作成されます。