このチュートリアルでは、get_child_objects 関数を使った、複数のオブジェクトの一括取得について説明します。
キューシート直下のキューを全て取得し、命名規則に従ってカテゴリ設定を行うスクリプトを書いていきます。
本チュートリアルは、チュートリアル「 find_object 関数を使用してみよう 」で作成したプロジェクトを使用します。
プロジェクトを開いていない場合は、プロジェクトを開くか、「 find_object 関数を使用してみよう 」にて作成したスクリプトを実行してから、チュートリアルを進めましょう。
スクリプト メニューで「スクリプトリスト...」を選択し、スクリプトリスト ウィンドウを表示します。
スクリプトリスト ウィンドウの新規作成ボタンを押して、以下の名前でスクリプトファイルを作成します。
スクリプトの保存先 | スクリプトファイル名 |
---|---|
tutorials [CRI] | tutorial05-3_use_get_child_objects.py |
作成したスクリプトをダブルクリックして、 スクリプトエディターからのスクリプト実行 で開きます。
スクリプトリスト ウィンドウ でスクリプトの概要を確認できるように、スクリプトの説明を次のように記述しましょう。
スクリプトの説明が記述できたら、スクリプトでCRI Atom Craftを操作するため、次のモジュールをインポートします。
プロジェクト操作のために project モジュール 、ログ出力のために debug モジュール をインポートします。
「 find_object 関数を使用してみよう 」チュートリアルで、キュー名が"sfx_"で始まるキューを複数作成しました。
この "sfx" から始まるキューにカテゴリ「sfx」を設定します。
次の関数を使って、プロジェクト作成時にデフォルト作成されるカテゴリ「Category_0」を 「sfx」に変更します。
関数名 | 説明 |
---|---|
get_global_folder | 全体設定フォルダー直下の各オブジェクトフォルダーを取得します |
find_object | 再帰検索を行い一致したオブジェクト取得します |
set_value | 指定したオブジェクトのパラメーターを設定します |
これらの関数を使って、カテゴリを取得して名前を変更する処理をスクリプトで記述すると次のようになります。
get_global_folder 関数を使って、カテゴリーフォルダーを取得します。
次に find_object 関数で、カテゴリフォルダー以下から カテゴリ「Category_0」を取得し、 set_value 関数で、カテゴリ名を「sfx」に変更します。
ワークユニット、キューシートを取得し、カテゴリを設定するためにキューシート内のキューをリストで取得します。
今回、キューの取得には、同一階層の同種オブジェクトをリスト取得する get_child_objects 関数を使用します。
関数名 | 説明 |
---|---|
get_workunit | ワークユニットを取得します |
find_object | 再帰検索を行い一致したオブジェクト取得します |
get_child_objects | 親オブジェクトを指定して、複数の子オブジェクトを取得します |
これらの関数を使って、キューシート直下のキューをリスト形式で取得する処理をスクリプトで記述すると次のようになります。
get_child_objects 関数を使用して、キューシート直下のキューをリスト形式で取得しています。
get_child_objects 関数には、「親オブジェクト」、「取得するオブジェクトタイプ」を指定します。
cuesheet 変数、"Cue" (キューのオブジェクトタイプ)を指定して、キューシート直下のキューを全て取得して、cues 変数に格納しています。
get_child_objects 関数を使って取得したキューのリストから、名前が "sfx" で始まるキューのリストを作成します。
キューの名前取得には、次の関数を使用します。
関数名 | 説明 |
---|---|
get_value | 指定したオブジェクトのパラメーターを取得します |
これらの処理をスクリプトで記述すると次のようになります。
for 制御文を使って、cues 変数からキューを1つずつ取り出し、 get_value 関数を使って、名前を取得しています。
find 関数を使って、名前の先頭に "sfx" の文字があるかをチェックし、あれば append 関数を使って cues_for_set_categories リストにキューを追加しています。
cues_for_set_categories リストに格納した、名前が sfx で始まるキューにカテゴリを設定します。
ここでは、1回の呼び出しで複数のキューにカテゴリを設定することができる次の関数を使用します。
関数名 | 説明 |
---|---|
add_category_to_cues | 複数のキューに対して、カテゴリを設定します |
これらの処理をスクリプトで記述すると次のようになります。
add_category_to_cues 関数は、複数のキューへの同一のカテゴリ設定に使用します。
add_category_to_cues 関数には、「キューのリスト」、「カテゴリ」を指定します。
add_category_to_cues 関数以外のカテゴリ設定方法として、 1つのキューに複数のカテゴリをまとめて設定する set_categories 関数もあります。
用途にあわせて、カテゴリ設定の関数を使いわけることで、効率よくキューにカテゴリを設定することができます。
これで本チュートリアルのスクリプト記述は終了です。
スクリプトを保存し、実行します。
スクリプトが正常に実行されると、以下のように CategoryGroup_0 以下の「Category_0」が「sfx」に変わり、名前が "sfx" で始まるキューに「sfx」カテゴリが設定されます。