CRI ADX2(AtomCraft)
ロボット編07 パラメーター変更とプレビュー
「プロジェクトの作成と波形ファイルをキューに登録」チュートリアルで、CRI Atom Craft ロボットによって、プロジェクトやキューといった一連のデータを作成しました。
このチュートリアルでは、作成したキューの音量を変更して、キューをプレビューするスクリプトを書いていきます。
本チュートリアルは、「プロジェクトの作成と波形ファイルをキューに登録」チュートリアルで作成したプロジェクトを使用します。
完了していない場合は、「プロジェクトの作成と波形ファイルをキューに登録」チュートリアルを先に進めましょう。
スクリプトファイルの準備
スクリプトメニューで「スクリプトリスト...」を選択し、 スクリプトリストからのスクリプト実行ウィンドウ表示します。
スクリプトリストウィンドウの新規作成ボタンを押して、以下の名前でスクリプトファイルを作成します。
スクリプトの保存先 | スクリプトファイル名 |
---|---|
tutorials [CRI] | tutorial03-1_edit_and_preview.py |
スクリプトの説明
作成したスクリプトをダブルクリックして、スクリプトエディターでからのスクリプト実行開きます。
スクリプトリストからのスクリプト実行 ウィンドウでスクリプトの内容が一覧できるように、スクリプトの説明を次のように記述しましょう。
# --Description:[チュートリアル]パラメータ変更とプレビュー
モジュールのインポート
スクリプトの説明が記述できたら、スクリプトで CRI Atom Craftを操作するため、次のモジュールをインポートします。
import cri.atomcraft.project as acproject import cri.atomcraft.preview as acpreview
CRI Atom Craftのプロジェクトデータを操作するProjectモジュールに加え、プレビューを行うためのPreviewモジュールをインポートします。
編集するキューの取得
キューに対するパラメーター編集を行うためには、対象となるキューのオブジェクトを取得する必要があります。
オブジェクトの取得方法は大きく分けて次の2通りあります。
- 検索による取得
- 階層を辿る取得
階層を辿る取得方法は、キューに辿りつくための階層構造が分かっている場合に有効です。
検索による取得方法については、「オブジェクト検索関数の種類」以降のチュートリアルにて説明します。
次の関数を使って、ワークユニット、キューシートフォルダー、キューシート、キューを順に取得します。
関数名 | 説明 |
---|---|
get_workunit | ワークユニットを取得します |
get_cuesheet_rootfolder | ワークユニットのキューシートルートフォルダーを取得します |
get_child_object | 親オブジェクトを指定して、子オブジェクトを取得します |
これらの関数を使用してキュー取得のスクリプトを記述すると次のようになります。
# ワークユニットを取得 workunit = acproject.get_workunit("WorkUnit_Tutorial")["data"] # キューシートルートフォルダ cuesheet_rootfolder = acproject.get_cuesheet_rootfolder(workunit)["data"] # キューシートフォルダ「WorkUnit_Tutorial」を取得 cuesheet_folder = acproject.get_child_object(cuesheet_rootfolder, "CueSheetFolder", "WorkUnit_Tutorial")["data"] # キューシートを取得 cue_sheet = acproject.get_child_object(cuesheet_folder, "CueSheet", "Tutorial")["data"] # キューを取得 cue = acproject.get_child_object(cue_sheet, "Cue", "gun1_High")["data"]
キューの取得の解説
階層構造を辿ってオブジェクトを取得するには、まずルートオブジェクトと呼ばれる、起点となるオブジェクトを取得する必要があります。
キューオブジェクトを含むオブジェクト構造のルートオブジェクトはワークユニットオブジェクトです。
ワークユニットオブジェクトは、get_workunit関数に「ワークユニット名」を指定して取得します。
ここでは、ワークユニット名に"WorkUnit_Tutorial"を指定してワークユニットを取得しています。
次に、ワークユニットからget_cuesheet_rootfolder関数でワークユニットのキューシートルートフォルダーを取得しています。
キューシートルートフォルダーからはget_child_object関数でキューシートフォルダー、キューシート、キューと階層を辿ってオブジェクトを取得しています。
キューのパラメーター変更
キューを取得することができましたので、パラメーターを変更してみましょう。
次の関数を使って、キューのボリュームパラメーターを変更します。
関数名 | 説明 |
---|---|
set_value | 指定したオブジェクトのパラメーターを設定します |
この関数を使用して「キューの音量を0.5に変更」するスクリプトを記述すると次のようになります。
# キューのボリュームを変更
acproject.set_value(cue, "Volume", 0.5)
キューのパラメーター変更の解説
パラメーターの変更には汎用関数である set_value関数を使用しています。
set_value関数は、「対象オブジェクト情報」、「パラメーターフィールド名」、「パラメーター値」を指定して使用します。
ここまでのスクリプトを実行する前に、キュー「gun1_High」の音量が1.0であることを確認します。
確認が終わったら、実行ボタンを押してスクリプトを実行してみましょう。
キュー「gun1_High」の音量が0.5に変わっていることが確認できます。
キューのプレビュー
最後に、インポートしたPreviewモジュールの次の関数を使って、キューのプレビュー処理を書いていきます。
関数名 | 説明 |
---|---|
start_playback_cue | 指定したキューのプレビュー再生を開始します |
start_playback_cue関数はシンプルなプレビュー関数となっており、キューを指定するだけでプレビュー再生を行います。
先程ボリュームを変更したキュー「gun1_High」をプレビューするスクリプトは、次のようになります。
# キューを再生
acpreview.start_playback_cue(cue)
スクリプトの保存と実行
これで本チュートリアルのスクリプト記述は終了です。
スクリプトを保存し、実行しましょう。
スクリプトが正常に実行されると、「gun1_High」キューのボリュームを0.5に変更し、プレビュー再生が行われます。