シナリオファイルの基本構成
シナリオを定義するJsonファイルの基本構成です
基本構成
{
"name" : "sample_scenario",
"macros":[
/* Macro定義 */
],
"threads" : {
/* threads定義 */
},
"scenario":[
/* Scenario定義 */
]
}
Class : JNData
key |
type |
notes |
name |
float |
シナリオ名 |
macros |
List<JNMacro> |
マクロ定義 |
threads |
Dictionary<string, List<JNCommandBundle>> |
スレッド定義 |
scenario |
List<JNCommandBundle> |
シナリオ定義(コマンドリスト) |
Scenario定義
タップ毎に逐次的に実行されるコマンド群(CommandBundleData)を定義します
Scenario定義
"scenario":[
{
/* Command Bundle Data */
"label": "start",
"isAuto": true,
"autoDelay": 0.5,
"commands": [
{
/* Command Data */
}
],
"macro":null
}
]
Class : JNCommandBundle
key |
type |
notes |
label |
string |
CommandBundleLabel定義 |
isAuto |
bool |
Auto進行 |
autoDelay |
float |
Auto進行の遅延時間 |
commands |
List<JNCommand> |
実行コマンド定義 |
macro |
JNMacroExecuteData |
実行マクロの指定(指定する場合、commandsは無視される) |
CommandBundleLabel定義
SelectコマンドやIJumpによる遷移先指定においてターゲットとなるCommandBundleを指定する際に参照されます
Command定義
実行されるコマンドを定義します
Command定義
"commands": [
{
"label": "command_label",
"forceWait":true,
"type": "CommandType"
/* Parameters for each command */
}
]
Class : JNCommand
key |
type |
notes |
label |
string |
CommandLabel定義 |
forceWait |
bool |
コマンドの完了を待機する |
type |
string |
コマンドの指定 |
CommandLabel定義
マクロによるパラメータ上書きの対象コマンドを指定する際に参照されます
コマンド固有パラメータについて
全てのコマンドはJNCommandを継承する為、これらのJNCommandの持つパラメータと同階層にそれぞれのコマンド固有のパラメータを定義します。
用意されている各コマンドのパラメータは
CommandsReferenceを参照してください。
Macro定義
実行されるCommandやCommandBundleを定義し、Scenario定義にて単略した指定で繰り返し使用することができます。
Macro定義
"macros":[
{
"id": "singleMacro",
"macro": {
"commands": [
/* Command Data */
]
}
},
{
"id": "multipleMacro",
"macroBundle": [
{
"commands": [
/* Command Data */
]
},
{
/* macroを指定可能 */
"macro" : {
"id" : "singleMacro"
}
}
]
}
]
Class : JNMacro
key |
type |
notes |
id |
string |
Macro ID |
macro |
JNCommandBundle |
実行コマンド |
macroBundle |
List<JNCommandBundle> |
実行コマンド群 |
macroとmacroBundleを合わせて定義した場合
macroが優先して実行され、その後macroBundleが実行されます。
マクロ実行元のJNCommandBundleのパラメータについて
isAutoやautoDelayなどのパラメータはマクロで定義しているものに置換されます。
ただしLabel定義のみは呼び元で指定しているものを維持します。
これはScenario定義上におけるIJumpを使用した遷移の複雑化防ぐ為です。
Macro実行定義
定義したMacroを実行します。
Macroで定義したコマンドのパラメータを上書きして実行することができます。
Macro実行定義
"macros":[
{
"id": "macro_1",
"macro": {
"commands": [
{
"label": "command_1",
"type": "CommandType",
/* Parameters for each command */
"position": { "x" : 0 }
}
]
}
}
],
"scenario":[
{
"label": "label_1",
"macro": {
"id" : "macro_1",
"overwrites": [
{
"commandLabel":"command_1",
"values": {
"position": { "x" : -250 }
}
}
]
}
}
]
Class : JNMacroExecuteData
key |
type |
notes |
id |
string |
実行マクロID |
overwrites |
List<OverwiteData> |
上書きパラメータ |
Class : JNMacroExecuteData.OverwiteData
key |
type |
notes |
commandLabel |
string |
ターゲットとなるコマンドのラベル |
values |
Dictionary<string, object> |
上書きするパラメータ定義 |
Thread定義
タップ毎に逐次的に実行されるコマンド群(CommandBundleData)を定義し、
Scenario定義で定義したシナリオの流れとは別で並列にコマンドを実行します。
Thread定義
"threads" : {
"sample_thread" : [
{
"commands": [
/* Command Data */
]
},
{
"commands": [
/* Command Data */
]
},
{
"commands": [
/* Command Data */
]
}
],
"sample_thread_macro" : [
{
/* シナリオ定義と同様にマクロも使用できます */
"macro" : {
"id" : "target_macro_id"
}
}
]
}
key |
type |
notes |
threads |
Dictionary<string, List<JNCommandBundle>> |
スレッド定義 |
スレッドの実行に関するコマンドは
こちら