はじめに
Craft 3.45.00からADX2ロボット機能で、ダイアログUIが出せるようになったので、使ってみた備忘録。
ADX2 ロボット機能でCSVの内容に従ってキューを再生する
に近い内容ですが、CSVとか余計なのなし版になります。
用途
連続して音を確認したいときとかに使う。
コメントも表示するので、内容確認しながらといったことにも。
動作
ツリーやリストで、キューを選択して、スクリプト実行すると
ダイアログに名前とコメントを表示しつつ再生してくれる。
前、次 ボタンで、再生キューを切り替えられます。
スクリプト
MDS_PreviewSelectedCue.py
# --Description:[tatmos][Preview]選択キューを連続再生する
import sys
import cri.atomcraft.project as acproject
import cri.atomcraft.debug as acdebug
import cri.atomcraft.preview as acpreview
import cri.atomcraft.view as acview
# 選択しているキューを得る
cues = acproject.get_selected_objects("Cue")["data"]
if not cues :
# キューが選択されていない場合は、選択項目の下のキューを探す
# 選択項目を取得
parent_objs = []
for parent_type in ["CueSheet", "CueSheetFolder", "CueFolder"]:
parent_objs.extend(acproject.get_selected_objects(parent_type)["data"])
# 選択項目以下のキューを取得
cues = []
for parent_obj in parent_objs:
cues.extend(acproject.find_objects(parent_obj, "Cue")["data"])
if not cues :
acdebug.warning("再生するキューを選択してください.")
sys.exit()
cueLength = len(cues)
count = 0
while count < cueLength or count > 0:
cue = cues[count]
cue_name = acproject.get_value(cue, "Name")["data"]
comment = acproject.get_value(cue, "Comment")["data"]
acdebug.log("{0}".format(cue_name))
# キューを再生
acpreview.start_playback_cue(cue)
message = "再生 ({0}/{1})\n\n[名前]\n{2} \n\n[コメント]\n{3}".format(count+1,cueLength,cue_name,comment)
button_name_list = ["前", "次", "キャンセル"]
result = acview.show_dialog(message, button_name_list)
if result [ "data" ][ "button_name" ] == "キャンセル" or result [ "data" ][ "button_index" ] == "-1":
sys.exit()
if result [ "data" ][ "button_name" ] == "前":
count-=1
if count < 0:
sys.exit()
if result [ "data" ][ "button_name" ] == "次":
count+=1
if count == cueLength:
sys.exit()
UIつくといろいろできることが増える
AtomCraftの場合、pythonにあるUI系を使うと落ちてしまうようなのですが、
こういう安定した専用UIがつくならありがたいところ。
ダイアログにテキスト入力とかつくとさらにいろいろできるようになるなぁと期待しつつ。