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に変更し、プレビュー再生が行われます。