# スクリプトエディタ

ファンクションの一種である スクリプトを作成・編集できます。
このエディタではスクリプト言語文法に従ってプログラミングすることができます。
文法を理解している場合はご自身ですべてプログラミングできますが、ボタンを利用してプログラミングをアシストすることができます。
このスクリプトは上から随時実行されます。

### 設定項目

| 再生します。
名前 | ファンクション名を設定できます。
| ボタンをクリックするとポップアップが表示され以下の機能をカーソル位置に追加できます。 ファンクション開始: ファンクションの選択ダイアルログが表示されます。 コマンドの末端にファンクション名がコメントアウトされて追加されます。 ファンクション停止: ファンクションの選択ダイアルログが表示されます。選択したファンクションが再生されていなかった場合は何も起こりません。 コマンドの末端にファンクション名がコメントアウトされて追加されます。 機器をセット: フィクスチャーを追加できます。複数のチャンネルが選択されている場合でも追加されるコマンドは１行です。デフォルトでは、DMX値は0としてコマンドが追加されます、お好きな数値に書き換えてください。 コマンドの末端にファンクション名がコメントアウトされて追加されます。 System Command: ファイル選択ダイアルログが開き外部スクリプトを呼び出すことができます。文法に従って記述された実行可能な外部ファイルを選択してください。ファイルが選択されると別のダイアルログで引数を入力するように求められます。外部スクリプトに引数を渡す必要がない場合は空のままで大丈夫です。 ウェイト: スクリプトの次の行を実行するまで指定時間待ちます。 コメント: コメントアウトできます。 コメントはC言語に似た方式で" // "の後行末までをコメントアウトします。 Random Number: 乱数を生成します。生成する乱数の範囲を指定できます。 File Path: ファイルを開きます。絶対パスとファイル名がコマンドとして追加されます。 パスにスペースがある場合は " ダブルクォーテーションで囲みます。
| 選択したテキストを切り取ります。
| 選択したテキストをコピーします。
| カーソル位置にペーストします。
| 戻る
| 文法チェックをします。文法に問題があった場合はポップアップでエラー箇所が表示されます。

### 文法

基本構文として、keyword:valueを覚えておいてください。
keyword と valueは以下を参照してください。

ファンクションの開始 | keyword: startfunction value: ファンクションIDを引数に指定します。 例: startfunction:{functionID} functionID はQLC+上でファンクションを管理している連番の数字です。この数値はユーザーは設定できず、QLC+が自動的に割り振る番号です。エディターの右にある＋ボタンからファンクションを追加してください。 あなたがこの文法を理解しているならば、スクリプトを全て入力してもOKです。 例:
    startfunction:2 // Green scene
ファンクションの停止 | keyword: startfunction value: ファンクションIDを引数に渡します。 例: stopfunction:{functionID} functionID はQLC+上でファンクションを管理している連番の数字です。この数値はユーザーは設定できず、QLC+が自動的に割り振る番号です。エディターの右にある＋ボタンからファンクションを追加してください。 例:
    stopfunction:0 // Blue scene
System Command | keyword: systemcommand value: 実行したいプログラムを絶対パスで指定し、プログラムに応じて引数も記述してください。 例: systemcommand:{programPath} arg:{arg1} arg:{arg2} ... arg:{argN} programPath 実行したいプログラムの絶対パスを入力してください。For example "/usr/bin/vlc" or "C:\Tools\myTool.exe" パスにスペースが含まれる場合は " ダブルクォーテーションで囲ってください。 arg1 ... argN 実行したいプログラムに応じた引数を指定してください 引数を必要としないプログラムの場合は省略できます。 引数にスペースが含まれる場合は " ダブルクォーテーションで囲ってください。 例
            systemcommand:/usr/bin/vlc arg:-f arg:/home/user/video.mp4 // plays my video with VLC in fullscreen
            systemcommand:"C:\Program Files\Tools\My Tool.exe" arg:"D:\My Files\My file.txt"
機器をセット | keyword: setfixture value: チャンネルに設定したいDMX値を入力してください。 例: setfixture:{fixtureID} ch:{channelIndex} val:{DMXValue} functionID はQLC+上でファンクションを管理している連番の数字です。この数値はユーザーは設定できず、QLC+が自動的に割り振る番号です。エディターの右にある＋ボタンからファンクションを追加してください。 channelIndex フィクスチャー内のチャンネル番号です、フィスクチャー内で0からの連番が振られています。 DMXValue DMXの出力値を設定できます。0~255 例:
    setfixture:0 ch:1 val:135 // Generic RGB, Red. Sets the red channel of a Generic RGB fixture to DMX value 135
ウェイト | keyword: wait value: 待ち時間を指定してください。 ※後述する乱数を生成して秒数に指定することもできます。 例: wait:{time} time 数値のみを入力するとミリ秒として解釈し、単位を付与するとその単位で解釈します。(h,m,s)。 例
            wait:1800 // Waits for 1 second and 800 milliseconds
    	wait:03s.20 // Waits for 3 seconds and 200 milliseconds
コメント | コメントアウト 説明スクリプト内にコメントを書くことができます。コメントは実行されないので好きに説明文やメモを残すことができます。 C言語と同じように" // "から行末までをコメントとして扱います。 コードの中に間違えて" // "と意図しないコメントを書かないように注意しましょう。 コメントはコード内のどこにでも記述することができます。
乱数 | 乱数 説明: 範囲を指定して整数の乱数を生成できます。 例: random({min}, {max}) {min}範囲の最小値を設定できます。 {max} 範囲の最大値を設定できます。生成される乱数は整数ですが、waitなど、時間を乱数で設定した場合には自動的に時間文字列に変換され、思った通りに動作します。 例
          wait:random(02s.00,05s.00) // Waits a random time between 2 and 5 seconds

          // set channel 3 of fixture with ID:1 to a random DMX value between 20 and 235
          setfixture:1 ch:2 val:random(20,235)