CRI ADX  Last Updated: 2024-03-21 14:32 p
サンプル

ここでは CRI Atom Craft パッケージに含まれている「CRI Atom Craft ロボット」機能のサンプルスクリプトを紹介します。

サンプルの種類 (ローカル実行用)

サンプル名 サンプルファイル名 ユーザー変数の使用の有無
キューIDの重複確認 check_overlap_cueid.py
キュー名の重複確認 check_overlap_cuename.py
AISACグラフのコピー&ペースト copy_and_paste_aisac.py
オートメーションのコピー&ペースト copy_and_paste_automation.py
スイッチキューをセレクターから作成 create_switch_type_cue_from_selector.py
キューシート内で使用している波形ファイルの列挙 listup_audiofiles_in_cuesheet.py
カテゴリが登録されていないキューの列挙 listup_category_not_registered_cue.py
片方のマテリアルフォルダーにしか存在しないマテリアルを列挙 listup_files_exist_oneside_folder.py
選択キューから指定したカテゴリを削除 remove_category.py
選択キューのカテゴリを置き換え replace_category.py
仲間はずれのマテリアルを検索 search_different_materials.py

サンプルの種類 (リモート実行用)

サンプル名 サンプルファイル名 ユーザー変数の使用の有無
プロファイラーのログ収集を開始(リモート実行) start_profiler_logging.py


サンプルの実行

サンプルスクリプトは全てローカル実行用となっており、次の方法で実行します。

  • 「スクリプトリスト」ウィンドウで、「samples [CRI]」フォルダーから選択して実行
  • 「スクリプト」メニューの「samples [CRI]」サブメニューから選択して実行


スクリプトリストやメニューにてアイコン付きで表示されているスクリプトは、スクリプトエディター用のユーザー変数機能を使用しています。
スクリプトを正しく動作させるにはスクリプトエディターを使用したユーザー変数への設定が必要となります。
設定内容については、各サンプルスクリプトの説明を参照してください。

サンプルファイルの場所

サンプルのスクリプトファイルは以下のフォルダーにあります。

  • macOS (Ver.3.44系の場合)
    ~/Documents/CRIWARE/CriAtomCraft/samples/robot/344/local/Python
    (macOSでは robotの次のフォルダ名にツールバージョンの数字が加わります。)
  • Windows
    cri\tools\criatomex_v3\win\samples\robot\local\Python

必要に応じて、サンプルコードを改変して使用してください。
サンプルコードを改変する際は、ユーザースクリプト検索パスで指定したフォルダーにコピーすることをおすすめします。
これは以下の理由からです。

  • macOS:ツールのサブマイナーバージョン(x.yy.zz のzz部分)更新時に、サンプルスクリプトフォルダーの内容が上書きされるため。
  • Windows:サンプルスクリプトフォルダーがツール直下にあるため、ツールアップデート時に誤って上書きしたり、複数ツール間での共有設定が手間であるため。



キューIDの重複確認

check_overlap_cueid.py

このサンプルスクリプトは、GUI のツリーなどで選択しているキューシート内に、キューIDが重複しているキューがあるかを確認します。
複数のキューシートを選択した場合、最初のキューシートだけ重複確認を行います。
重複が見つかった場合、該当するキューの情報をスクリプトログウィンドウと csv ファイルに出力します。

サンプルで使用している関数

関数名 説明 モジュール
get_selected_objects GUI のツリーなどで選択中のオブジェクトを取得します project モジュール
find_objects 再帰検索を行い一致したオブジェクトをリスト形式で取得します project モジュール
get_value 指定したオブジェクトのパラメーターを取得します project モジュール
get_object_path オブジェクトのパス文字列を取得します project モジュール
warning 警告のログを出力します debug モジュール
log 標準のログを出力します debug モジュール
get_child_objects 親オブジェクトを指定して、複数の子オブジェクトを取得します project モジュール



キュー名の重複確認

check_overlap_cuename.py

このサンプルスクリプトは、GUI のツリーなどで選択しているキューシート内に、キュー名が重複しているキューがあるかを確認します。
複数のキューシートを選択した場合、最初のキューシートだけ重複確認を行います。
重複が見つかった場合、該当するキューの情報をスクリプトログウィンドウと csv ファイルに出力します。

サンプルで使用している関数

関数名 説明 モジュール
get_selected_objects GUI のツリーなどで選択中のオブジェクトを取得します project モジュール
find_objects 再帰検索を行い一致したオブジェクトをリスト形式で取得します project モジュール
get_value 指定したオブジェクトのパラメーターを取得します project モジュール
get_object_path オブジェクトのパス文字列を取得します project モジュール
warning 警告のログを出力します debug モジュール
log 標準のログを出力します debug モジュール
get_child_objects 親オブジェクトを指定して、複数の子オブジェクトを取得します project モジュール



AISACグラフのコピー&ペースト

copy_and_paste_aisac.py

このサンプルスクリプトは、コピー元 AISAC 内の AISAC グラフを、ペースト先 AISAC にペーストします。
スクリプトエディター用のユーザー変数機能を使用しているため、以下の項目をユーザー変数にて設定後、「適用」ボタンを押してから実行してください。

ユーザー変数 説明 変数タイプ
SOURCE_AISAC コピー元の AISAC オブジェクト object
DEST_SEQUENCE ペースト先の AISAC オブジェクト object
AUTOMATION_GRAPH_TYPE コピー&ペーストする AISAC グラフのタイプ string

ペースト先のAISACに同タイプのグラフが存在していた場合、ペースト処理による上書きは行われません。

サンプルで使用している関数

関数名 説明 モジュール
get_aisac_graph AISACグラフを取得します project モジュール
get_value 指定したオブジェクトのパラメーターを取得します project モジュール
copy_object オブジェクトをコピーします project モジュール
warning 警告のログを出力します debug モジュール
log 標準のログを出力します debug モジュール



オートメーションのコピー&ペースト

copy_and_paste_automation.py

このサンプルスクリプトは、コピー元シーケンスオブジェクトのオートメーションを、ペースト先シーケンスオブジェクトにペーストします。
スクリプトエディター用のユーザー変数機能を使用しているため、以下の項目をユーザー変数にて設定後、「適用」ボタンを押してから実行してください。

ユーザー変数 説明 変数タイプ
SOURCE_SEQUENCE コピー元のシーケンスオブジェクト(キュー or トラック) object
DEST_AISAC ペースト先のシーケンスオブジェクト(キュー or トラック) object
AISAC_GRAPH_TYPE コピー&ペーストするオートメーションのタイプ string

ペースト先のシーケンスオブジェクトに同タイプのグラフが存在していた場合、ペースト処理による上書きは行われません。

サンプルで使用している関数

関数名 説明 モジュール
get_automation オートメーションを取得します project モジュール
get_value 指定したオブジェクトのパラメーターを取得します project モジュール
copy_object オブジェクトをコピーします project モジュール
warning 警告のログを出力します debug モジュール
log 標準のログを出力します debug モジュール



スイッチキューをセレクターから作成

create_switch_type_cue_from_selector.py

このサンプルスクリプトは、選択したセレクター内のセレクタラベルがトラックに適用されている状態の、スイッチキューを作成します。
スクリプトエディター用のユーザー変数機能を使用しているため、以下の項目をユーザー変数にて設定後、「適用」ボタンを押してから実行してください。

ユーザー変数 説明 変数タイプ
SELECTOR キューに設定するセレクター object
CUE_NAME 作成するキュー名 string
MATERIAL_FOLDER (オプション)ウェーブフォームリージョン登録に使用するマテリアルフォルダー object

キューの作成先(キューシート、キューフォルダー)は GUI のツリーなどから選択してください。 マテリアルフォルダーを指定した場合、名前の一部がラベル名と一致するマテリアルをウェーブフォームリージョンとして登録します。

キューの作成先に既に同名のキューが存在している場合、新規作成による上書きは行われません。
マテリアルの検索は指定フォルダー直下のみ行います。

サンプルで使用している関数

関数名 説明 モジュール
get_selected_objects GUI のツリーなどで選択中のオブジェクトを取得します project モジュール
get_child_objects 親オブジェクトを指定して、複数の子オブジェクトを取得します project モジュール
get_value 指定したオブジェクトのパラメーターを取得します project モジュール
create_object タイプを指定してオブジェクトを作成します project モジュール
set_value 指定したオブジェクトのパラメーターを設定します project モジュール
create_waveform_region ウェーブフォームリージョンを作成します project モジュール
warning 警告のログを出力します debug モジュール
log 標準のログを出力します debug モジュール



キューシート内で使用している波形ファイルの列挙

listup_audiofiles_in_cuesheet.py

このサンプルスクリプトは、GUI のツリーなどで選択中のキューシートで使用している波形ファイルの列挙を行います。
波形ファイルの名前とファイルパスをスクリプトログウィンドウに出力します。

サンプルで使用している関数

関数名 説明 モジュール
find_objects 再帰的にオブジェクトを検索し、条件に合致したものを全て取得します project モジュール
get_selected_objects GUI のツリーなどで選択中のオブジェクトを取得します project モジュール
get_value 指定したオブジェクトのパラメーターを取得します project モジュール
warning 警告のログを出力します debug モジュール
log 標準のログを出力します debug モジュール



カテゴリが登録されていないキューの列挙

listup_category_not_registered_cue.py

このサンプルスクリプトは、GUI のツリーなどで選択中のキューに対して、指定カテゴリが登録されていないキューの列挙を行います。
列挙したキューの名前をスクリプトログウィンドウに出力します。
スクリプトエディター用のユーザー変数機能を使用しているため、以下の項目をユーザー変数にて設定後、「適用」ボタンを押してから実行してください。

ユーザー変数 説明 変数タイプ
SEARCH_CATEGORY 検索するカテゴリ object

サンプルで使用している関数

関数名 説明 モジュール
get_selected_objects GUI のツリーなどで選択中のオブジェクトを取得します project モジュール
get_value 指定したオブジェクトのパラメーターを取得します project モジュール
get_categories キューに設定してあるカテゴリを取得します project モジュール
warning 警告のログを出力します debug モジュール
log 標準のログを出力します debug モジュール



片方のマテリアルフォルダーにしか存在しないマテリアルを列挙

listup_files_exist_oneside_folder.py

このサンプルスクリプトは、GUI のツリーなどで選択中の2つのマテリアルのフォルダーに対して、片方のマテリアルフォルダーにしか存在しないマテリアルの列挙を行います。
同じマテリアルであるかの判定には、選択したフォルダーからの相対パスを使用します。
比較をしたい2つのマテリアルフォルダーを選択して実行してください。

サンプルで使用している関数

関数名 説明 モジュール
find_objects 再帰的にオブジェクトを検索し、条件に合致したものを全て取得します project モジュール
get_selected_objects GUI のツリーなどで選択中のオブジェクトを取得します project モジュール
get_object_path ツール上のデータ構造を示すパス文字列を取得します project モジュール
get_value 指定したオブジェクトのパラメーターを取得します project モジュール
warning 警告のログを出力します debug モジュール
log 標準のログを出力します debug モジュール



選択キューから指定したカテゴリを削除

remove_category.py

このサンプルスクリプトは、GUI のツリーなどで選択中のキューから指定したカテゴリを削除します。
スクリプトエディター用のユーザー変数機能を使用しているため、以下の項目をユーザー変数にて設定後、「適用」ボタンを押してから実行してください。

ユーザー変数 説明 変数タイプ
REMOVE_CATEGORY 削除するカテゴリ object

サンプルで使用している関数

関数名 説明 モジュール
get_selected_objects GUI のツリーなどで選択中のオブジェクトを取得します project モジュール
get_value 指定したオブジェクトのパラメーターを取得します project モジュール
get_categories キューに設定してあるカテゴリを取得します project モジュール
set_categories キューにカテゴリを設定します project モジュール
warning 警告のログを出力します debug モジュール
log 標準のログを出力します debug モジュール



選択キューのカテゴリを置き換え

replace_category.py

このサンプルスクリプトは、GUI のツリーなどで選択中のキューのカテゴリ設定を置き換えます。
スクリプトエディター用のユーザー変数機能を使用しているため、以下の項目をユーザー変数にて設定後、「適用」ボタンを押してから実行してください。

ユーザー変数 説明 変数タイプ
REPLACE_FROM 置き換え元カテゴリ object
REPLACE_TO 置き換え先カテゴリ object

サンプルで使用している関数

関数名 説明 モジュール
get_selected_objects GUI のツリーなどで選択中のオブジェクトを取得します project モジュール
get_value 指定したオブジェクトのパラメーターを取得します project モジュール
get_categories キューに設定してあるカテゴリを取得します project モジュール
set_categories キューにカテゴリを設定します project モジュール
warning 警告のログを出力します debug モジュール
log 標準のログを出力します debug モジュール



仲間はずれのマテリアルを検索

search_different_materials.py

このサンプルスクリプトは、GUI のツリーなどで選択中のマテリアルフォルダー以下にある全てのマテリアルから、「仲間はずれ」のマテリアルを列挙します。
仲間はずれと判定されたマテリアルの名前をスクリプトログウィンドウに出力します。

「仲間はずれ」は、他の多くのマテリアルと異なる設定値を持っているかどうかで判定します。
より具体的には、検索対象のマテリアルのうち、同じ設定値を持っているものの比率が BORDER_RATIO 未満の場合に「仲間はずれ」と判定します。
判定には以下のフィールドを使用します。

スクリプトエディター用のユーザー変数機能を使用しているため、以下の項目をユーザー変数にて設定後、「適用」ボタンを押してから実行してください。

ユーザー変数 説明 変数タイプ
BORDER_RATIO 仲間はずれの判定基準とする比率 number

サンプルで使用している関数

関数名 説明 モジュール
find_objects 再帰的にオブジェクトを検索し、条件に合致したものを全て取得します project モジュール
get_selected_objects GUI のツリーなどで選択中のオブジェクトを取得します project モジュール
get_actual_value 指定したオブジェクトの実際に適用されるパラメーターを取得します project モジュール
get_value 指定したオブジェクトのパラメーターを取得します project モジュール
warning 警告のログを出力します debug モジュール
log 標準のログを出力します debug モジュール



プロファイラーのログ収集を開始(リモート実行)

start_profiler_logging.py

このサンプルスクリプトは、リモート実行時に対象のアプリケーションとインゲーム接続を行い、プロファイラーのログ取得を行います。

更に、取得したログをCSV形式で出力します。

サンプルで使用している関数

関数名 説明 モジュール
open_project 指定したプロジェクトを開きます。 project モジュール
start_ingame_preview 指定したIPアドレスに対してインゲーム接続を開始します preview モジュール
stop_ingame_preview インゲーム接続を終了します preview モジュール
start_profiler_logging プロファイリングを開始します。 profiler モジュール
stop_profiler_logging プロファイリングを停止します。 profiler モジュール
export_alllog_to_csv プロファイリングした全てのログをCSV形式で出力します profiler モジュール
initialize 通信機能の初期化を行います 通信 モジュール
finalize 通信機能を終了します 通信 モジュール
connect CRI Atom Craft との接続を行います 通信 モジュール
disconnect CRI Atom Craft との接続を解除します 通信 モジュール
warning 警告のログを出力します debug モジュール
log 標準のログを出力します debug モジュール