====== システム ======
===== macro =====
^属性^必須^値^説明^
|name|Yes|タグ名|以降この名前をタグとして使用できる|
新しいマクロ(タグ)を作ることができます。\\
このmacroタグからendmacroまでにある行をユーザー定義タグとして登録し、name属性にしたmacro名でスクリプトから使用できます。\\
マクロはスクリプト本文中に記述しても構いませんが、macro.scのようにマクロ専用の別ファイルを作りそこに記述していくと整理整頓しやすいですのでお勧です。\\
マクロ中に%を頭につけた任意の属性名を指定することで本文中の属性を引き渡すことがでます。\\
また「%%|%%」(or記号)で属性の省略値を指定できます。\\
|[macro name=quakeGo]\\ @quake time=%waitingTime%%|%%1000 hmax=10 vmax=10\\ @wq canskip=true\\ [endmacro]\\ \\ %%//%%以下スクリプト本文\\ セリフセリフセリフセリフセリフ\\ %%//%%timeが500になる\\ [quakeGo waitingTime=500]\\ セリフセリフセリフセリフセリフ\\ %%//%%waitingTimeを指定していないのでtimeには省略値の1000が使用される\\ [quakeGo]|\\
===== endmacro =====
macroタグから記述したマクロの終了地点\\
macroタグと対になります。
===== wait =====
^属性^必須^値^説明^
|time|yes|ミリ秒|待っている時間|
|canskip|no|true(デフォルト)/false|クリックしてスキップできるか|
===== waitclick (クリック待ち) =====
メッセージのクリック待ちの場合は以下を使用してください\\
・l (行末クリック待ち)\\
・p(改ページクリック待ち)\\
===== waitflick (フリック待ち) =====
ユーザーのフリック操作を待ちます\\
【フリック判定基準】\\
画面の横幅に対して20%以上の範囲を300ms以内でなぞる(2021/02現在)\\
フリック判定後、tf.%%_%%%%_%%%%_%%flick_directionにフリックした方向が文字列でセットされます。\\
右から左:'left'\\
左から右:'right'\\
|@waitflick\\ @emb exp="'右から左'" cond="tf.%%_%%%%_%%%%_%%flick_direction == 'left'"\\ @emb exp="'左から右'" cond="tf.%%_%%%%_%%%%_%%flick_direction == 'right'"|
===== s (停止処理) =====
^属性^必須^値^説明^
|waittime|no|ミリ秒|選択確定後、次の処理に移るまで指定時間待つ(初期値:950ミリ秒)\\ 0で即時次に進む|
|v2single|no|true/false|選択時のタップ回数。\\ true:1回で確定, \\ false : 2回タップで確定(初期値)|
|align|no|center|選択肢を中央揃えにする\\ 未指定の場合は左寄せ|
|skiptime|no|ミリ秒|指定ミリ秒経過後、選択肢待ちを解除する(先に進む)|
|skipcond|no|条件式|条件式がtrueの時、選択肢待ちを解除する(先に進む)|
linkタグの後に記述して選択肢待ちする
|サンプル\\ @link storage=sceneList left=800 top=50 width=180 height=50\\ @endlink\\ @s skiptime=300|
|サンプル\\ @link storage=hoge.sc left=800 top=50 width=180 height=50\\ @endlink\\ @s skipcond="tf.hoge == 1"|
===== skipoff =====
スキップ時、通常モードの戻す
===== autooff =====
オート時、通常モードに戻す
===== skipoffdebug =====
デバッグ時かつスキップ時通常モードに戻す
===== cancelautomode =====
オート時通常モードに戻す
===== save(セーブ) =====
スクリプトから任意のタイミングでsave処理ができます。
^属性^必須^値^説明^
|place|yes|ゼロ以外の整数|・正の整数スロット番号(サーバーにセーブ)\\ ・負の整数でローカルに一時的にセーブ\\ ※-1~-3はシステムで使用しているので使用しないでください。\\ ※ローカルへのセーブはブラウザのlocalstorageに保存されます。ブラウザを閉じてもセーブデータは消えません。ただし、ブラウザのキャッシュをクリアすると消えることがあります。|
例\\
@save place=5\\
@save place=-10
===== saveimage(セーブ画像取得) =====
セーブしたスクリーンショット画像をスクリプト内で使用します。
^属性^必須^値^説明^
|time|yes|数字|セーブしたおおよその日時を設定\\ (設定しない場合ブラウザにキャッシュされた古いセーブ画像が表示されてしまう)|
|storage|yes|数字|ファイル名はセーブスロット番号を指定(0~)|
※その他の属性はimageタグに準ずる
|例:\\ [eval exp="tf.time = sf.map.savetime.get('0')"]\\ [saveimage layer=save0 storage=0 visible=true time=&tf.time]|
===== menuon (サブメニューを表示) =====
サブメニューのクローズボタンを表示する。 menuoffで非表示にしたサブメニューを再度表示します。\\
※[[システムメニュー#メニュー表示の設定|サブメニューに関してはこちらを参照ください。]]
===== menuoff (サブメニューを非表示) =====
サブメニューを非表示にする。 画面表示の都合でサブメニューを非表示にしたい際に使用します。\\
非表示中はメニューボタンが押せなくなります。
===== menuexec(メニュー機能実行) =====
^属性^必須^値^説明^
|category|yes|メニューカテゴリ番号(以下参照)|実行する処理|
|;%%//%%コンフィグ画面へ遷移する\\ @menuexec category=1|
<メニューカテゴリ番号>:<内容>\\
1:コンフィグ画面\\
2:テキストオートモード\\
3:テキストスキップモード\\
4:「タイトルに戻る」ダイアログ表示\\
5:ヘルプ画面\\
6:クイックセーブ\\
7:クイックロード\\
8:セーブ画面表示\\
9:ロード画面表示\\
10:テキストバックログ\\
11:SCREEN_FIT(未使用)\\
12:CG一覧画面表示\\
13:シーン回想画面表示\\
14:新規ゲームSTART(start.scから開始)\\
17:メッセージレイヤ非表示\\
18:MAIN_MENU表示\\
19:クイックスタート※1\\
20:タイトル画面へ\\
21:「タイトルに戻る」ダイアログを閉じてゲームに戻る\\
22:自動セーブした箇所から開始(非推奨)\\
24:START_WITH_TF1※2\\
25:START_WITH_TF2\\
26:START_WITH_TF3\\
27:START_WITH_TF4\\
28:START_WITH_TF5\\
30:START_WITH_TF6\\
31:START_WITH_TF7\\
32:START_WITH_TF8\\
33:START_WITH_TF9\\
34:デバッグメニュー表示(開発用)\\
35:AUDIO_RESET**←使わないでください**\\
100:START_WITH_TF100※3\\
↓\\
129:START_WITH_TF129
※1、saveのplace=-3でブラウザにセーブされた時点から再開。\\
place=-3にセーブされるタイミングは次の2つ。\\
1.テキストクリック待ちでplace=-3に自動セーブ\\
2.スクリプトにて@save place=-3で明示的に-3にセーブ\\
※2、24~28、30~33について\\
ゲーム再開(14と同じ動き)に加えて一時変数「tf.menu_start_with_tf」に24~33の値が入ります。タイトル画面、システムメニューを独自に作成する場合などに使用。
|@if exp="tf.menu_start_with_tf == 24"\\ @eval exp="tf.menu_start_with_tf = -1"\\ @jump storage=splash.sc\\ @endif\\ @if exp="tf.menu_start_with_tf == 25"\\ @eval exp="tf.menu_start_with_tf = -1"\\ @jump storage=title.sc\\ @endif|
※3、100~129について\\
一時変数「tf.menu_start_with_tf」に100~129の値が入り、start.scの先頭にジャンプする
【注意】\\
24~28、30~33、100~129の実行後は必ずtf.menu_start_with_tfを-1に設定してください。tf.menu_start_with_tfが1以上の状態ではメニュー連打防止機能が働いて画面タップが無効になってしまいます。
===== nop =====
デバッグログコメント表示\\
使い方1 記述内容をデバッグログに表示する\\
使い方2 リリース後の修正でスクリプト行数を変えたくない場合の調整用\\
\\
@nop ここの文章がデバッグログに表示されます
===== tapeffect =====
タップした場所をパラパラアニメで表現します。
^属性^必須^値^説明^
|storage|yes|ファイル名|エフェクト画像が縦に連結した画像|
|interval|yes|ミリ秒|画像を切り替える時間|
|count|yes|数値|画像の種類数|
例:init.scの最初に以下を記述\\
[tapeffect storage=hoge interval=200 count=5]
===== payment =====
プラットフォーマーの課金画面に遷移します。\\
課金の詳しい説明は[[課金実装|課金実装]]を参照ください。
^属性^必須^値^説明^
|place|yes| |opensocila固定|
例\\
@payment place=opensocial
===== timerexec (時間制御繰り返し処理) =====
intervalで設定した時間でexp,execをfinish条件が充足するまで繰り返し実行する。\\
一定のシーンで信号が点滅し続けるような処理での使用を想定。\\
^属性^必須^値^説明^
|interval|no|ミリ秒|繰り返す時間\\ ※未指定の場合、100[ms]が設定されます|
|exp|no|式|変数処理。コロンもしくはカンマ区切りで複数指定可能|
|exec|no|スクリプト|実行するスクリプト。セミコロン区切りで複数指定可能。スクリプトは半角角括弧で表記する(@表記はNG)|
|finish|yes|式|終了条件|
|name|no|文字列|timerexec名\\ ※未指定の場合、現在時刻(ミリ秒)がnameとして設定されます|
※timerexecは複数同時に起動可能。(例:目パチと口パクの両方をそれぞれtimerexec起動で実行)\\
※execの都度、exp→execの順で実行します。\\
※同じnameのtimerexecは複数起動しません。起動中のtimerexec名と重複するnameでtimerexecすると起動中のtimerexecが強制的に停止されます。
|[timerexec interval=555 exp="tf.rnd = func.random ; tf.x = tf.rnd % 800 " exec="[image layer=0 storage=hoge visible=true left=&tf.x top=66];[layopt layer=0 top=&tf.x];" finish="tf.finsh == 1"]|
※exec内にダブルクォーテーションを使用する場合、ダブルクォーテーションをエスケープします。
|[timerexec interval=555 exec="[layopt layer=0 visible=true cond=\"tf.hoge == 1\"]" finish="tf.finsh == 1"]|
===== stoptimerexec (timerexec強制停止) =====
起動中のtimerexecを終了条件の如何にかかわらず強制停止します。
^属性^必須^値^説明^
|name|no|文字列|stop対象のtimerexec名\\ ※未指定の場合、起動中のすべてのtimerexecがstopします。|
|@timerexec name=exec1 interval=555 exec="[image layer=0 storage=hoge]" finish="tf.finsh == 1"]\\ @timerexec name=exec2 interval=555 exec="[image layer=1 storage=hoge]" finish="tf.finsh == 2"]\\ @timerexec interval=555 exec="[image layer=2 storage=hoge]" finish="tf.finsh == 3"]\\ @stoptimerexec name=exec1\\ ;exec1だけ終了\\ @stoptimerexec\\ ;全てのtimerexecが終了|
===== canvas (キャンバス属性) =====
キャンバス描画の属性を操作できます
^属性^必須^値^説明^
|refresh|no|true/false|true:画面をリフレッシュします(初期値)\\ false:画面をリフレッシュしません。前の描画がそのまま残ります|
|pinchio|no|true/false|true:ピンチイン/ピンチアウト操作を有効にします\\ false:ピンチイン/ピンチアウト操作を無効にします(初期値)\\ ※ピンチ操作有効時はスマホ縦横方向による画面サイズ自動調整機能が効かなくなります。\\ ※ピンチイン/アウトタグを実行する前にユーザーの画面タップ操作が一度以上必要になります。|
|flushsf|no|true/false|true:システム変数の更新をサーバーに通知します(初期値)\\ false:システム変数の更新をサーバーに通知しません。パフォーマンス重視のシーンではfalseにします|
|backmove|no|true/false|true:move,move2でpage=back指定が有効になる\\ false:move,move2でpage=back指定が効かず、moveタグが無視される(初期値)|
|tfnumber|no|true/false|true:一時変数がtf.<数字>の場合、<数字>が設定される\\ false:通常の変数ルール(初期値)\\ 【例】\\ @eval exp="tf.hoge = tf.1234"\\ の場合、tf.hogeには「1234」が入る|
例:\\
@canvas refresh=true pinchio=true
===== holdstep (実行保留) =====
スクリプト実行の保留を制御します。
実行保留中はシナリオが実行されずname属性に指定された一時領域にstopholdstepが実行されるまでプールされます。releasestepタグで一時領域にプールしたシナリオを実行します。
^属性^必須^値^説明^
|name|no|text|一時領域名\\ 初期値:”default”|
|【例】\\ @holdstep name=hoge1\\ @image storage=foo1\\ 保留中です1[l][r]\\ @stopholdstep\\ @holdstep name=hoge2\\ @image storage=foo2\\ 保留中です2[l][r]\\ @stopholdstep\\ 通常シナリオ[l][r]\\ @releasestep name=hoge2\\ @releasestep name=hoge1|
↓実際の実行順序
|通常シナリオ[l][r]\\ @image storage=foo2\\ 保留中です2[l][r]\\ @image storage=foo1\\ 保留中です1[l][r]|
【制約事項】\\
・whileタグは保留しないでください。\\
・execパラメータ中のタグにholdstepは効きません。\\
ダメな例:[link exec="[playse storage=hoge holdstep=foo]"]←holdstep=fooは効かない\\
【参考】\\
holdstep属性を付けることによってholdstepすることもできます。
|【例】\\ @image storage=foo1 holdstep=hoge1\\ @image storage=foo2 holdstep=hoge2\\ @image storage=foo3 holdstep=hoge1\\ 通常シナリオ[l][r]\\ @releasestep name=hoge2\\ @releasestep name=hoge1|
↓実際の実行順序
|通常シナリオ[l][r]\\ @image storage=foo2\\ @image storage=foo1\\ @image storage=foo3|
※↓holdstep属性とcond属性の両方が指定されている場合、releasestepにてcondの評価がされます。
|【例】\\ @eval exp="tf.bar = 0"\\ @image storage=hoge holdstep=foo cond="tf.bar == 1"\\ @eval exp="tf.bar = 1"\\ @releasestep name=foo\\ ;;ここでcond="tf.bar ==1"が評価され@image行が実行される|
===== stopholdstep (実行保留停止) =====
holdstep (実行保留)を停止します
===== releasestep (保留シナリオ実行) =====
holdstepで保留されて一時領域にプールされたシナリオを実行します。
^属性^必須^値^説明^
|name|no|text|一時領域名\\ 初期値:”default”|