CRI ADX  Last Updated: 2024-09-25 17:41 p
パラメーター変更とプレビュー

プロジェクトの作成と波形ファイルをキューに登録 」チュートリアルで、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"]
# キューシートを取得
cuesheet = acproject.get_child_object(cuesheet_folder, "CueSheet", "Tutorial")["data"]
# キューを取得
cue = acproject.get_child_object(cuesheet, "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に変更し、プレビュー再生が行われます。