このチュートリアルでは、find_objects 関数を使った、複数のオブジェクトの一括取得について説明します。
これまで、CRI Atom Craft を操作するための様々な関数を紹介してきましたが、 どの関数も1回の呼び出しで1つのオブジェクトを取得する関数でした。
find_objects 関数は、1回の呼び出しで複数のオブジェクト取得ができるとても便利な関数です。
是非、このチュートリアルで、 find_objects 関数の使い方を覚えましょう。
これからワークユニット内の全てのウェーブフォームリージョンに、ボイスリミットグループを設定するスクリプトを書いていきます。
本チュートリアルは、チュートリアル「 プロジェクトの作成と波形ファイルをキューに登録 」で作成したプロジェクトを使用します。
プロジェクトを開いていない場合は、プロジェクトを開くか、「 プロジェクトの作成と波形ファイルをキューに登録 」にて作成したスクリプトを実行してから、チュートリアルを進めましょう。
スクリプト メニューで「スクリプトリスト...」を選択し、スクリプトリスト ウィンドウを表示します。
スクリプトリスト ウィンドウの新規作成ボタンを押して、以下の名前でスクリプトファイルを作成します。
スクリプトの保存先 | スクリプトファイル名 |
---|---|
tutorials [CRI] | tutorial05-2_use_find_objects.py |
作成したスクリプトをダブルクリックして、 スクリプトエディターからのスクリプト実行 で開きます。
スクリプトリスト ウィンドウ でスクリプトの概要を確認できるように、スクリプトの説明を次のように記述しましょう。
スクリプトの説明が記述できたら、スクリプトで CRI Atom Craft を操作するため、次のモジュールをインポートします。
プロジェクト操作のために project モジュール 、ログ出力のために debug モジュール をインポートします。
ウェーブフォームリージョンに設定するボイスリミットグループを取得します。
ボイスリミットグループの取得には、「 ゲームデータ(ACF, ACB)の出力 」チュートリアルでのターゲットコンフィグの取得と同じように次の関数を使います。
関数名 | 説明 |
---|---|
get_global_folder | 全体設定フォルダー直下の各オブジェクトフォルダーを取得します |
get_child_object | 親オブジェクトを指定して、子オブジェクトを取得します |
これらの関数を使って、ボイスリミットグループの取得をスクリプトで記述すると次のようになります。
同時発音数を管理するためのボイスリミットグループは get_global_folder 関数 を使って、全体設定にあるボイスリミットグループフォルダーから取得します。
ボイスリミットグループフォルダーを取得後、 get_child_object 関数を使って、 ボイスリミットグループフォルダー直下のボイスリミットループ「VoiceLimitGroup_0」を取得して voicelimit_group 変数に格納しています。
続いて、次の関数を使って、ワークユニット以下の全てのウェーブフォームリージョンを取得します。
関数名 | 説明 |
---|---|
get_workunit | ワークユニットを取得します |
find_objects | 再帰検索を行い一致したオブジェクトをリスト形式で取得します |
これらの関数を使って、ウェーブフォームリージョンの取得をスクリプトで記述すると次のようになります。
find_objects 関数を使用して、ワークユニット以下の全てのウェーブフォームリージョンをリスト形式で取得しています。
find_objects 関数には、「検索のルートとなるオブジェクト」、「取得するオブジェクトタイプ」を指定します。
ワークユニット以下の全ウェーブフォームリージョンの取得なので、 workunit 変数、"WaveformRegion" (ウェーブフォームリージョンのタイプ名)を指定して、取得したリストを waveform_regions 変数に格納しています。
先ほど取得したウェーブフォームリージョンのリストから1つずつウェーブフォームリージョンを取り出し、ボイスリミットグループを設定します。
ウェーブフォームリージョンのリストからウェーブフォームリージョンのを取り出しには for 制御文を使います。
これで本チュートリアルのスクリプト記述は終了です。
スクリプトを保存し、実行します。
スクリプトが正常に実行されると以下のように、ワークユニット内の全てのウェーブフォームリージョンにボイスリミットグループ「VoiceLimitGroup_0」が設定されます。