SKYNovel タグリファレンス

SKYNovel Tag Reference

変数操作

[clearsysvar] システム変数の全消去

sys:変数を全消去。削除すると言うより、初期化する

属性無し

[clearvar] ゲーム変数の全消去

save:変数を全消去。削除すると言うより、初期化する

属性無し

[let_abs]絶対値

絶対値を求める。結果を変数に代入する

属性必須省略時値域・型コメント
namey変数名代入する変数
textyNumber絶対値を求める数
cast出来るだけ数値変換値をセットする際の型。(詳細は[let]を参照)

[let_char_at] 文字列から一字取りだし

文字列中の一文字を取り出す。結果を変数に代入する

属性必須省略時値域・型コメント
namey変数名代入する変数
textyString元になる文字列
pos00(先頭)〜何番目の文字を取り出すか
cast出来るだけ数値変換値をセットする際の型。(詳細は[let]を参照)

[let_index_of]文字列で検索

文字列内を検索し、文字列内の start 以降で、最初に val が見つかった位置を返す。

属性必須省略時値域・型コメント
namey変数名代入する変数。-1の場合は見つからなかった
textyString元になる文字列
valyString探す文字列
start00(先頭)〜検索を開始する位置
cast出来るだけ数値変換値をセットする際の型。(詳細は[let]を参照)

[let_length]文字列の長さ

文字列の長さを求める。結果を変数に代入する

属性必須省略時値域・型コメント
namey変数名代入する変数
textyString長さを求める文字列
cast出来るだけ数値変換値をセットする際の型。(詳細は[let]を参照)

[let_ml]インラインテキスト代入

[let_ml]〜[endlet_ml]で囲んだ複数行テキストを代入する

属性必須省略時値域・型コメント
namey変数名代入する変数

[let_replace]正規表現で置換

文字列を正規表現で検索し、マッチする箇所を文字列で置き換える。

属性必須省略時値域・型コメント
namey変数名代入する変数
textyString置換対象の文字列
regyString正規表現
flags(なし)String正規表現のフラグ
valyString置き換える文字列
cast出来るだけ数値変換値をセットする際の型。(詳細は[let]を参照)

[let_round]四捨五入

四捨五入する。結果を変数に代入する

属性必須省略時値域・型コメント
namey変数名代入する変数
textyNumber四捨五入する数
cast出来るだけ数値変換値をセットする際の型。(詳細は[let]を参照)

文字列内を正規表現で検索し、最初に val が見つかった位置を返します。

属性必須省略時値域・型コメント
namey変数名代入する変数
textyString検索対象の文字列
regyString正規表現
flags(なし)String正規表現のフラグ
cast出来るだけ数値変換値をセットする際の型。(詳細は[let]を参照)

[let_substr] 文字列から抜きだし

文字列の一部を取り出す。結果を変数に代入する

属性必須省略時値域・型コメント
namey変数名代入する変数
textyString元になる文字列
pos00(先頭)〜
または
〜-1(末尾)
何番目の文字から取り出すか。
負の値なら「後ろから何個目か」。-1が最後の文字。
【pos=-3 len=all】とすると、後ろから3文字を取り出す。
len1文字数、または all何文字取り出すか。all でpos以降の全て
cast出来るだけ数値変換値をセットする際の型。(詳細は[let]を参照)

[let] 変数代入・演算

変数に値を代入する

変数については「SKYNovel 組み込み変数」を参照して下さい

属性必須省略時値域・型コメント
namey変数名代入する変数
textyStringセットする値
cast出来るだけ数値変換(コメントを参照)値をセットする際の型。
num……数値(実数)。「01」は数値の1となる。
int……数値(符合付き整数)
uint……数値(符合なし整数)
bool……Boolean
str……文字列。「01」は「01」のまま。
[let]を使わない、より簡潔な記述文法があります。
	※condのような条件分岐、「=aaa|0x0」のような省略記法はできません。
以下の記述は、
	[let name=a text=1]
	[let name="b" text=2]
	[let name=ret text="&a + b"](文字列ではなく計算の場合、右辺に&をつける)
	[let name="&'ret'+ a" text="&1 + b"](左辺で&を使える)
	以下のようにも書けます。(&から改行かタブまでを[let]文と解釈します)
	&a=1
	&b=2
	&ret = a + b(このように、右辺の&は省略します。常に&がついているイメージ)
	&&'tst' + a = 1+b(左辺で&を使える。&ret1 = 1 + b と同じ)
キャストも記述できます。(両者は同じ意味)
	[let name=ret text=&1+2 cast=int](結果は3。1+2の計算結果が入る)
	&ret=1+2=int(同上)
キャスト動作そのものは、以下のとおり。
	&num = '0+1' = int(結果は0、文字列「0+1」を計算せず文字列のまま、数値に変換できないため)
	&num = 0+1 = int(結果は1、0+1という計算結果をintで変数へ)
	&txt = '0+1' = str(結果は文字列「0+1」、文字列をそのまま変数に)
	&txt = 0+1 = str(結果は文字列「1」、0+1を計算してから結果1を文字列「1」として変数に)

レイヤ共通

[add_lay]レイヤを追加する

レイヤを追加する。

レイヤはページの裏表があり、文字レイヤや画像レイヤなどの種類があります。

レイヤの追加と同時に、[lay]に指定できる属性を指定できます。(内部的に[lay]を呼ぶ)
これにより、[add_lay visible=false ...]等とすると、非表示状態でレイヤ追加できます。

属性必須省略時値域・型コメント
layeryStringレイヤ名を指定する。
未使用のレイヤ名でなければエラー&アプリ停止
classygrp(画像レイヤ)、
txt(文字レイヤ)、
またはプラグインで追加した値
レイヤの種類
(その他)[lay]に指定できる属性

[clear_lay]レイヤ設定の消去

画像や文字などレイヤ状態をクリアする。

alpha、blendMode、rotation、scaleX、scaleYを初期値にする
※背景や背景画像はクリアしません(b_color、b_alpha、b_alpha_isfixed)  クリアしたい場合は、[lay back_clear=true]

属性必須省略時値域・型コメント
layer全てのレイヤレイヤ名(半角カンマ区切りで複数レイヤを指定可能)
pageforefore、back、bothページの裏表(both指定で両面)
filterfalseBooleantrue:フィルタもクリア

[finish_trans] トランス強制終了

[trans]で開始したトランスをすぐ終了させる

属性無し。

[trans]で開始したトランス終了を待たず、すぐ終了させる。
終了次第、スクリプト処理を次へ進める

[lay]レイヤ設定(共通)

レイヤに各種設定を行う。

レイヤの種類ごとに使用できる属性もあるが、共通な属性をここで解説する

属性必須省略時値域・型コメント
layeryレイヤ名処理対象のレイヤ
pageforefore、backページの裏表
visible現在値Booleantrue:表示、false:非表示
alpha1.00.0〜1.0(実数)レイヤの透過度。0(完全透明)〜0.5(半透明)〜1(不透明)
blendmode何もしないブレンドモード名("screen"など)このレイヤと下のレイヤとの重なりにおいて、
ドット単位で色のブレンド演算を行なう。
詳細はblendModeの解説を参照。
posc※c、l、r、横座標主に立ち絵に使う。横と縦座標を同時に設定する。
横座標は指定した値(文字cの場合は画面中央、lは左寄り、rは右寄り)に設定し、画像下端を画面下端に接するように自動計算する。
left0画面左上を(0, 0)とする横座標※レイヤやボタン左端の画面左端からの距離
center(↑と同じ)(↑と同じ)レイヤやボタン中央の画面左端からの距離
right(↑と同じ)(↑と同じ)レイヤやボタン右端の画面左端からの距離
s_right(↑と同じ)(↑と同じ)レイヤやボタン右端の画面右端からの距離
top0画面左上を(0, 0)とする縦座標※レイヤやボタン上端の画面上端からの距離
middle(↑と同じ)(↑と同じ)レイヤやボタン中央の画面上端からの距離
bottom(↑と同じ)(↑と同じ)レイヤやボタン下端の画面上端からの距離
s_bottom(↑と同じ)(↑と同じ)レイヤやボタン下端の画面下端からの距離
rotation0-180〜180回転角を度単位で指定。時計回りは0~180、反時計回りは0~-180を指定。 左上を中心に回る
scale_x1.0正負の実数値横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転
scale_y1.0正負の実数値縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転
pivot_x0.0正負の実数値左上を基準として、回転や移動時の基準を指定
pivot_y0.0正負の実数値左上を基準として、回転や移動時の基準を指定
float何もしないBooleantrue:レイヤを最前面に移動する。
index何もしない0〜レイヤをindexで指定したインデックスに移動する。
0がもっとも背後。レイヤを重ねるたびに1加算したindexになる
dive何もしないレイヤ名レイヤをdiveで指定したレイヤのすぐ後ろに潜り込ませる。

blendModeの解説

SKYNovel での blendmode 属性の値Photoshop ブレンドモード名コメント
normal 標準 表示オブジェクトは、背景の前に表示されます。(なにもしない)
add 加算 表示オブジェクトの要素カラーの値を背景色に加算し、その際に上限 0xFF を適用します。
multiply 乗算 表示オブジェクトの要素カラーの値と背景色の要素カラーの値を乗算した後、0xFF で割って正規化し、色を暗くします。
screen スクリーン 表示オブジェクトの色の補数(逆)と背景色の補数を乗算して、ブリーチ効果を得ます。

[lay]レイヤ設定(文字レイヤ)

属性必須省略時値域・型コメント
b_color(↑と同じ)色指定。0x000000などテキスト背後の矩形色。初期値は 0x000000(黒)
b_alpha(↑と同じ)実数:0.0(透明)〜1.0(不透過)テキスト背後の矩形不透明度。
表示しない場合は0を指定。初期値は 0
b_alpha_isfixed現在値Booleantrue:テキスト背後の矩形不透明度を、「b_alpha属性と sys:TextLayer.Back.Alpha の掛け算とせず」、b_alpha属性値そのものにする。(これは2017/2/13以前の仕様)
b_pic(↑と同じ)画像ファイル名文字レイヤ背後の枠画像を指定する。b_alphaの影響を受ける。
(これを指定するとb_colorは無視される)
back_clear現在値Booleantrue:背景をクリアする
break_fixed現在値Boolean true:クリック待ちマークを固定位置に表示
false:最後に表示した文字の次、改行せずぶら下げ位置に表示
break_fixed_leftIntegerクリック待ちマークの表示位置を指定する
break_fixed_top
style何もしないCSS style 文字の CSS Style を指定する。
[span][ch]などで style を指定しない際のデフォルト値。
「color: red;」「color: blue;」と個別指定時は、過去値を上書きする。
空白文字を指定時は全てクリアする
r_style何もしないCSS style ルビの CSS Style を指定する。
「color: red;」「color: blue;」と個別指定時は、過去値を上書きする。
空白文字を指定時は全てクリアする
r_align現在値(コメントで解説)ルビ揃えを指定する。
left ……(肩付き)先頭親文字から、ルビ間は密着
center ……(中付き)センター合わせ、〃
right ……(右/下揃え)末尾親文字から、〃
justify ……(両端揃え)先頭から末尾親文字間に、ルビ間は均等にあける
121 ……(1-2-1(JIS))ルビの前後を比率1、ルビ間を比率2であける
even ……(均等アキ)ルビの前後、ルビ間も均等にあける
1ruby ……(1ルビ文字アキ)ルビの前後をルビ一文字空け、ルビ間は均等にあける

初期値は center。

※親文字よりルビの方が長い場合は、親文字に対する「中付き」表示になる
参考(機能ギャラリー・直感的なルビ文法)
属性必須省略時値域・型コメント
ch_in_style何もしない文字出現演出名[ch_in_style]で定義した文字出現演出名
ch_out_style何もしない文字消去演出名[ch_out_style]で定義した文字消去演出名
ffs現在値(コメントで解説) CSS の文字詰め font-feature-settingsでの「"pwid"」「"palt"」など指定できる。
(styleで指定してはいけない)
(二重引用符・ダブルコーテーションマークも必要なので、【ffs='"pwid"'】と指定する。
これは【ffs='"palt" 1, "trad" 1'】という指定も CSS にできるため)
初期値は指定なし
→【参考】文字詰めできるCSSのfont-feature-settingsが凄い! 日本語フォントこそ指定したい自動カーニング - ICS MEDIA
noffs現在値String font-feature-settingsの対象としない文字を指定できる。複数指定可能。
デフォルト値は指定なし。(ただしインライン画像やクリック待ち記号表示のため、全角空白は必ず指定に含まれる)
kinsoku_sol何もしないString 行頭禁則の禁則処理文字を変更できる。対象文字を列挙した文字列を指定。
デフォルト値は以下の通り。
、。,.)]}〉」』】〕”〟ぁぃぅぇぉっゃゅょゎァィゥェォッャュョヮヵヶ!?!?‼⁉・ーゝゞヽヾ々
kinsoku_eol何もしないString 行末禁則の禁則処理文字を変更できる。対象文字を列挙した文字列を指定。
デフォルト値は以下の通り。
[({〈「『【〔“〝
kinsoku_dns何もしないString 分割禁止の禁則処理文字を変更できる。対象文字を列挙した文字列を指定。
デフォルト値は以下の通り。
─‥…
属性必須省略時値域・型コメント
(以下は未作成)(以下は未作成)
draggablefalseBooleantrue:テキスト背後の矩形をドラッグできる
drag_x0画面左上を(0, 0)とする座標ドラッグ範囲の左上始点。
drag_y0(↑と同じ)(↑と同じ)
drag_w画面横幅ドラッグ範囲縦横ピクセル数ドラッグ範囲縦横サイズ。
drag_h画面縦幅(↑と同じ)(↑と同じ)
dragmove_fn.........ドラッグ中にサブルーチンコールする先。
指定方法は[jump]と同様
dragmove_label(↑と同じ)(↑と同じ)(↑と同じ)(↑と同じ)
dragmove_argString指定した場合、ドラッグ中コール先で「&sn.eventArg」にて値を受け取れる
h_scrollピクセル数横スクロールさせる量
v_scrollピクセル数縦スクロールさせる量
mouse_wheel_enabledBooleanマウスホイールでスクロール許可するか否か

[lay]レイヤ設定(画像レイヤ)

属性必須省略時値域・型コメント
fny何もしない画像ファイル名 基本画像・動画ファイルを指定する
動画ファイルを指定時はロードしてすぐに動画再生が始まる。

※ただし、ブラウザ版では「ページロード後に一度だけでもクリック(クリック待ちでもボタンでも可)されていないと再生させない」というブラウザの挙動があるため、再生する前のいつでもいいのでクリックの機会を作ること。
※ ムービー再生されない場合、DevTools に【Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.】のようなエラーが出ていればこの件。
face何もしない[add_face]で登録した差分名称(半角カンマ区切りで複数可能)差分名称を指定する。
[fg fn="a" face="b,c,d"]なら「基本a」の上に「差分b」を重ね、「差分c」を重ね、「差分d」を重ねる。

【注意】fnは同じでface属性だけを指定→指定なしにした場合、表示が変わりませんが不具合ではありません。 「face属性指定なし」は「何もしない」、つまり変化させないからです。
[fg layer=upd fn="a" face="b"]
[l]
[fg layer=upd fn="a"]
[l]

差分名称を無くしたい場合、明確に空文字("")を指定します。
[fg layer=upd fn="a" face="b"]
[l]
[fg layer=upd fn="a" face=""]
[l]
(以下は未作成)(以下は未作成)
draggablefalseBooleantrue:テキスト背後の矩形をドラッグできる
drag_x0画面左上を(0, 0)とする座標ドラッグ範囲の左上始点。
drag_y0(↑と同じ)(↑と同じ)
drag_w画面横幅ドラッグ範囲縦横ピクセル数ドラッグ範囲縦横サイズ。
drag_h画面縦幅(↑と同じ)(↑と同じ)
dragmove_fn.........ドラッグ中にサブルーチンコールする先。
指定方法は[jump]と同様
dragmove_label.........(↑と同じ)
dragmove_argString指定した場合、ドラッグ中コール先で「&sn.eventArg」にて値を受け取れる

[trans]ページ裏表を交換

裏ページを表ページとクロスフェードする。

クロスフェードを開始すると、終了を待たずに次のタグへと処理を進める。
終了を待ちたい場合は[wt]を使用する。

クロスフェード終了後は元・裏ページから元・表ページに内容をコピーし、同じ内容になる。

ルール画像は白黒かグレースケールを推奨。(見た目と動きが一致する)
また[trans]~[wt]間で文字表示や[ch]は動作未定義、非推奨。
[trans]終了を待たず何かをするのは避けた方がよいでしょう。

属性必須省略時値域・型コメント
layer全てのレイヤ処理対象レイヤ名(カンマ区切りで複数可能)クロスフェードするレイヤ。指定以外のレイヤは変化させない
time0ミリ秒変化にかける時間
delay0ミリ秒変化する前に待機する遅延時間
rule画面全体ピクセルで同時にクロスフェードする画像ファイル名指定した場合はルール画像として、ピクセル単位でクロスフェードするタイミングをずらす。
ルール画像の黒いピクセル(と同じ位置にあるピクセル)が先に処理され、白が最後になる。
vague0.04トランジション期間全体を1とした値表レイヤと裏レイヤの境界を曖昧にぼかす度合い
easeLinear.None(イージング無し)イージング名揺れのイージング(値の変化の仕方)を指定する。
イージングの変化はこちらの図(またはこちら)が分かりやすい。
指定できる値は以下の通り。
Back.In、Back.InOut、Back.Out
Bounce.In、Bounce.InOut、Bounce.Out
Circular.In、Circular.InOut、Circular.Out
Cubic.In、Cubic.InOut、Cubic.Out
Elastic.In、Elastic.InOut、Elastic.Out
Exponential.In、Exponential.InOut、Exponential.Out
Linear.None
Quadratic.In、Quadratic.InOut、Quadratic.Out
Quartic.In、Quartic.InOut、Quartic.Out
Quintic.In、Quintic.InOut、Quintic.Out
Sinusoidal.In、Sinusoidal.InOut、Sinusoidal.Out

tween.js/README.md at master · tweenjs/tween.js
CreateJS でのトゥイーンの作成方法 - ICS MEDIA
glslシェーダー記述言語GLSL 動作サンプルがありますので、詳細はそちらで。
機能ギャラリー【[フラグメントシェーダで[trans]](https://famibee.github.io/SKYNovel_gallery/?cur=glsl_slide)】
ざっくり説明すると、
【vTextureCoord】がピクセルの位置、
【uSampler】が一ピクセル単位の画像データ、
【tick】が時間経過、です。

[wt]トランス終了待ち

[trans]で開始したトランスの終了を待つ。

終了次第、スクリプト処理を次へ進める。

また[trans]~[wt]間で文字表示や[ch]は動作未定義、非推奨。
[trans]終了を待たず何かをするのは避けた方がよいでしょう

属性必須省略時値域・型コメント
canskiptrueBooleantrueでクリックキャンセル可能にする。
globaltrueBooleanグローバルイベント待ちを有効にするか

トゥイーンアニメ

[pause_tsy]一時停止

レイヤーやフレームのトゥイーンアニメを一時停止させる

「layer(とpage)」を指定した場合はレイヤーの操作、
「id」を指定した場合はフレームの操作を行なう。

属性必須省略時値域・型コメント
layeryレイヤ名処理対象のレイヤ
pageforefore、backページの裏表
idyStringフレーム名

[resume_tsy]一時停止再開

レイヤーやフレームのトゥイーンアニメ一時停止を再開させる

「layer(とpage)」を指定した場合はレイヤーの操作、
「id」を指定した場合はフレームの操作を行なう。

属性必須省略時値域・型コメント
layeryレイヤ名処理対象のレイヤ
pageforefore、backページの裏表
idyStringフレーム名

[stop_tsy]トゥイーン中断

レイヤーやフレームのトゥイーンアニメを中断、終了する。

「layer(とpage)」を指定した場合はレイヤーの操作、
「id」を指定した場合はフレームの操作を行なう。

属性必須省略時値域・型コメント
layeryレイヤ名処理対象のレイヤ
pageforefore、backページの裏表
idyStringフレーム名

[tsy]トゥイーン開始

レイヤーにトゥイーンアニメ(変形・移動・回転アニメーション)を加える。

「目標値」を設定する時、相対値あるいは絶対値を指定できる。

指定説明
x=500 X位置を500に
x='=500' 現在のX位置に+500加算した位置
x='=-500' 現在のX位置に-500加算した位置
x='250,500' +250から+500までの間でランダムな値をX位置に
x='=250,500' +250から+500までの間でランダムな値を現在のX位置に加算

注:フレームのトゥイーンアニメは[tsy_frame]で行なう。
属性必須省略時値域・型コメント
layeryレイヤ名処理対象のレイヤ
pageforefore、backページの裏表
timeyミリ秒数トゥイーンにかける時間
delay0ミリ秒数トゥイーンを始める前の、何もしない待ち時間
repeat10〜繰返し回数。0以下で無限ループ。1を設定すると「繰り返しなし」、2を設定すると「二回同じ動き」を行なう。
arrivefalseBooleantrueならクリックキャンセルでアニメ終端までSkip。
falseならその場で停止
backlayfalseBooleantrueならトゥイーン終了時、fore→backへ属性をコピーする。
コピーする属性はalpha, height, rotation, scale_x, scale_y, pivot_x, pivot_y, width, left, top。
easeLinear.None(イージング無し)イージング名揺れのイージング(値の変化の仕方)を指定する。
イージングの変化はこちらの図(またはこちら)が分かりやすい。
指定できる値は以下の通り。
Back.In、Back.InOut、Back.Out
Bounce.In、Bounce.InOut、Bounce.Out
Circular.In、Circular.InOut、Circular.Out
Cubic.In、Cubic.InOut、Cubic.Out
Elastic.In、Elastic.InOut、Elastic.Out
Exponential.In、Exponential.InOut、Exponential.Out
Linear.None
Quadratic.In、Quadratic.InOut、Quadratic.Out
Quartic.In、Quartic.InOut、Quartic.Out
Quintic.In、Quintic.InOut、Quintic.Out
Sinusoidal.In、Sinusoidal.InOut、Sinusoidal.Out

tween.js/README.md at master · tweenjs/tween.js
CreateJS でのトゥイーンの作成方法 - ICS MEDIA
yoyofalseBoolean(暫定)ヨーヨーのように逆方向に戻って繰り返す
chainなにもしないレイヤ名指定したレイヤのトゥイーンアニメが終了してから、このトゥイーンを続けて開始する
alphaいずれかを指定何もしない同名属性の変化目標値
height
rotation
scale_x
scale_y
pivot_x
pivot_y
width
x
y
path※コメントで解説 指定すると複数のポイントを連続してトゥイーンアニメする。
ポイントは半角丸括弧()【吉里吉里拡張】や{}【JSON形式】が連続する文字列。

・半角丸括弧に囲んで属性 x、y、alpha の三つを指定する(吉里吉里仕様)
 例)(1, 2, 0.3)
・以降はSKYNovel拡張
 ・変更しない項目を省略できる
  例)(,10, 0.11) (12,,0.13 ) (14,15,) ()
 ・[tsy]属性のような「初期位置からの相対値」形式
  先頭に=を追加する。
  例)(=-22)
 ・[tsy]属性のような「範囲内でランダムな値」形式
  'か"で囲み、カンマ , で【最小値】【最大値】を区切る。
  例)('=23,24','0.3, 1')
 ・[tsy]属性をJSONで指定できる形式
  文字列は " で囲む。
  例){"scale_x":100, "scale_y":"=101"}
  指定できる属性は[tsy]と同様、rotation・scale_x・pivot_x・width など
・動作が上手くいかないときは path 属性の解析に失敗しているかも?
 設定画面の debugLog スイッチを入れると、括弧ごとの逐次処理をコンソール出力する。
 JSON解析失敗はスイッチにかかわらず出力する。
renderfalseBoolean trueを指定すると[trans]のように絵を合成してから不透明度を適用するように(半透明時に差分境界が見えなくなる)

[wait_tsy]トゥイーン終了待ち

レイヤーやフレームの終了を待ち、再開する。

[event]などでイベントが登録されていても、イベント発生待ちを行わない。 繰返し回数が0(無限ループ)の場合、何もせず終了する 「layer(とpage)」を指定した場合はレイヤーの操作、
「id」を指定した場合はフレームの操作を行なう。

属性必須省略時値域・型コメント
layeryレイヤ名処理対象のレイヤ
pageforefore、backページの裏表
idyStringフレーム名
canskiptrueBooleanクリックなど(→詳細は[waitclick])でウエイトをキャンセルできるか
globaltrueBooleanグローバルイベント待ちを有効にするか

文字・文字レイヤ

[autowc]文字ごとのウェイト

特定の文字の直後に自動的にウェイトを入れる。

textに指定した文字に対し、timeに指定した数値が対応する。
通常の文字表示速度にtimeの数値を掛け算する。

属性必須省略時値域・型コメント
enabled現在値Boolean自動ウェイトを有効にするか。初期値false
text両方同時に指定、或いは省略現在値Stringウェイトを指定する文字の集まり
time(↑と同じ)現在値カンマ区切りの数値文字表示ウェイト倍数

 以下のように指定する。
[autowc enabled=true text="456" time="50,100,150"]
[autowc enabled=true text="456" time="100,100,100"]
[autowc enabled=false]

 以下はエラーとなる。
;x [autowc enabled=true text="456" time="100,100"]
;x [autowc enabled=true text="456" time="100,100,100,100"]
;x [autowc enabled=true text="456"]
;x [autowc enabled=true time="100,100,100"]
;x [autowc enabled=true]
;x [autowc enabled=true text="" time=""]
;x [autowc text="" time=""]

[ch_in_style]文字出現演出定義

文字出現演出アニメを定義する

[lay][span]などの ch_in_style属性で指定すると、定義どおりの文字出現演出アニメを行なう

属性必須省略時値域・型コメント
namey文字出現演出名文字出現演出を特定する名前
wait500ミリ秒一時的な文字表示速度。0で瞬時。
alpha0.00.0〜1.0(実数)透過度。0(完全透明)〜0.5(半透明)〜1(不透明)
x'=0' 以下のような相対位置指定が出来る
500 ── X位置を500に
'=500' ── 文字表示位置を基準に+500加算した位置
'=-500' ── 文字表示位置を基準に-500加算した位置
変化の初期値
y
scale_x1.0正負の実数値横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転
scale_y1.0正負の実数値縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転
rotate0Number回転角度(単位:deg 度)、正の値は時計回り
jointrueBoolean文字を順番に出すか(true)同時か(false)
ease'ease-out' CSSのanimation-timing-function プロパティ

[ch_out_style]文字消去演出定義

文字消去演出アニメを定義する

[lay][span]などの ch_out_style属性で指定すると、定義どおりの文字消去演出アニメを行なう。
文字消去演出は、次ページの文字出現演出と同時に行なわれる。文字消去演出を待ちたい場合は、[wait]などで待つ。

属性必須省略時値域・型コメント
namey文字消去演出名文字消去演出を特定する名前
wait500ミリ秒一時的な文字消去速度。0で瞬時。
alpha0.00.0〜1.0(実数)透過度。0(完全透明)〜0.5(半透明)〜1(不透明)
x'=0' 以下のような相対位置指定が出来る
500 ── X位置を500に
'=500' ── 文字位置を基準に+500加算した位置
'=-500' ── 文字位置を基準に-500加算した位置
変化の目標値
y
scale_x1.0正負の実数値横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転
scale_y1.0正負の実数値縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転
rotate0Number回転角度(単位:deg 度)、正の値は時計回り
joinfalseBoolean文字を順番に出すか(true)同時か(false)
ease'ease-out' CSSのanimation-timing-function プロパティ

[ch]文字を追加する

文字レイヤに文字を出力する

属性必須省略時値域・型コメント
layerデフォルト文字レイヤ文字レイヤ名文字を表示するレイヤ
pageforefore、backページの裏表
textyString表示したい文字列。ルビ文法(《》)も解析する。改行も [r] で出来る
recordtrueBoolean履歴に保存するか
wait現在の文字表示速度ミリ秒一時的な文字表示速度。0で瞬時。
style何もしないCSS style 文字の CSS Style を指定する。
このタグによる表示のみに適用、以降は元に戻る。
※[ch]でのみ、背景styleなどを一塊とする。
例)以下は表示が異なる
[span style='background-image: linear-gradient(70deg, tomato 0%, lightskyblue 100%); border-radius: 8px;']SPAN[span]
[ch text='CH' style='background-image: linear-gradient(70deg, tomato 0%, lightskyblue 100%); border-radius: 8px;']
r_style何もしないCSS style ルビの CSS Style を指定する。
このタグによる表示のみに適用、以降は元に戻る
ch_in_style何もしない文字出現演出名[ch_in_style]で定義した文字出現演出名
ch_out_style何もしない文字消去演出名[ch_out_style]で定義した文字消去演出名

[ch]を使わない、より簡潔な記述文法があります。
以下の記述は、
[ch text=&test]
[ch text=test]
[ch text="&a + b"]

以下のようにも書けます。&から&までを[ch]文と解釈します。
&test&
&'test'&
&a + b&

では「&(半角)」を表示するには?(これらの文法のせいで普通に書けない)
[ch text="&'&'"]として下さい。

[clear_text]文字消去

文字のみをクリアする

属性必須省略時値域・型コメント
layerデフォルト文字レイヤ文字レイヤ名文字を表示するレイヤ
pageforefore、backページの裏表

[current] デフォルト文字レイヤ設定

デフォルト文字レイヤを設定する

属性必須省略時値域・型コメント
layery文字レイヤ名デフォルトとするレイヤ

[link](ハイパーリンク)で開始したリンク区間を終了する

属性必須省略時値域・型コメント
layerデフォルト文字レイヤ文字レイヤ名文字を表示するレイヤ
pageforefore、backページの裏表

[er]ページ両面の文字消去

デフォルト文字レイヤの裏と表の両方に対して[clear_lay]を行う。

属性必須省略時値域・型コメント
rec_page_breaktrueBoolean履歴を改ページするか

[graph]インライン画像表示

文字レイヤに画像を文字として表示する。ルビは同時に設定する。

フォントにない外字やアニメpng画像表示に使える。 [span]は強制的に解除される。

属性必須省略時値域・型コメント
layerデフォルト文字レイヤ文字レイヤ名文字を表示するレイヤ
pageforefore、backページの裏表
picy画像ファイル名表示する画像やアニメpng
rルビ無しStringルビ文字列(ただしあまりに他の文字サイズと大きく異なる場合は正しい位置に表示されない)
width画像の横サイズ(※)1〜表示する画像の横ドットサイズ。
元のサイズと異なる場合は拡大・縮小される。
height画像の縦サイズ(※)1〜保存する画像の縦ドットサイズ。
元のサイズと異なる場合は拡大・縮小される。
style何もしないCSS style 他の文字と並べて表示したい場合は style='font-size: 60px;' などとサイズ指定する。
このタグによる表示のみに適用、以降は元に戻る。
width, height属性は正確にサイズ指定できるが他の文字に関係なくはみ出して表示する
r_style全てクリアCSS style ルビの CSS Style を指定する。
このタグによる表示のみに適用、以降は元に戻る
wait現在の文字表示速度ミリ秒一時的な文字表示速度。0で瞬時。

※省略時は画像サイズになるが、ロード完了直後に文字配置を決めるのでちらつく。それを嫌う際に指定する
※特にモバイルなどでゲーム画面が自動で拡大縮小される場合、省略したらその時の本文文字サイズとして扱われる。なるべくサイズ指定を推奨。

指定した文字レイヤの表ページに、ハイパーリンクを作成する。

[link]から[endlink](ハイパーリンクの終了)までで囲った範囲をリンク区間と呼び、
その区間の文字や縦中横がハイパーリンクになる。(リンク区間は入れ子に出来ません)
※選択肢として使用する場合、ジャンプ先のラベル直後には必ず[record_place]を記述して、ジャンプ直後でセーブしても正しくセーブされるようにして下さい。

属性必須省略時値域・型コメント
layerデフォルト文字レイヤ文字レイヤ名文字を表示するレイヤ名
pageforefore、backページの裏表
style'background-color: rgba(255,0,0,0.5);'CSS styleリンク上にマウスカーソルが乗っていない状態のCSS スタイル
style_hover'background-color: rgba(255,0,0,0.9);'CSS style文字ボタン上にマウスカーソルが乗っている状態(クリックしていない)のCSS スタイル
style_clickedstyleの値CSS style文字ボタン上にマウスカーソルが乗っている状態(クリックしている)のCSS スタイル
r_stylestyleの値CSS styleリンク上にマウスカーソルが乗っていない状態のルビの CSS スタイル
r_style_hoverstyle_hoverの値CSS style文字ボタン上にマウスカーソルが乗っている状態(クリックしていない)のルビの CSS スタイル
r_style_clickedr_styleの値CSS style文字ボタン上にマウスカーソルが乗っている状態(クリックしている)のルビの CSS スタイル
ch_in_style何もしない文字出現演出名[ch_in_style]で定義した文字出現演出名
ch_out_style何もしない文字消去演出名[ch_out_style]で定義した文字消去演出名
wait現在の文字表示速度ミリ秒一時的な文字表示速度。0で瞬時。
callfalseBooleantrueの場合は[call]、falseは[jump]。
ただしcall=trueによりサブルーチンコールした場合、[return]によって「コールする前のイベント予約状態&待ち状態」に戻る。
fnどちらか、もしくは両方を指定処理中のスクリプトファイルスクリプトファイル名クリック時にジャンプする先
labelスクリプトファイルの先頭ラベル名(半角アスタリスク*も含む)コール先のスクリプトファイルにあるラベルクリック時ジャンプ先で「&sn.eventLabel」にて値を受け取れる
urlfnかlabelか、このurlを指定fn・label によるスクリプトジャンプブラウザで開けるURLクリック時にURLを開く。指定時は fn・label を無視する
globalfalseBoolean詳細は[event]と同様。
※ボタンを[trans]する場合はtrueにしておく
argString指定した場合、クリック時ジャンプ先で「&sn.eventArg」にて値を受け取れる
onenter何もしないラベル名マウス重なり(フォーカス取得)時、指定したラベルをコールする。 必ず[return]で戻ること。
onleave何もしないラベル名マウス重なり外れ(フォーカス外れ)時、指定したラベルをコールする。 必ず[return]で戻ること。
clickse省略時は無音音声ファイル名指定すると、クリック時に効果音を再生する
enterse省略時は無音音声ファイル名指定すると、ボタン上にマウスカーソルが載った時に効果音を再生する
leavese省略時は無音音声ファイル名指定すると、ボタン上からマウスカーソルが外れた時に効果音を再生する
clicksebufSYSサウンドバッファ名クリック時効果音を再生するサウンドバッファを指定する
entersebufSYSサウンドバッファ名クリック時効果音を再生するサウンドバッファを指定する
leavesebufSYSサウンドバッファ名クリック時効果音を再生するサウンドバッファを指定する
hint表示しないString 指定した場合のみ、マウスカーソルを載せるとツールチップス表示する。
hint(.pngなど)をプロジェクトに含めると、それをツールチップス図形として使う
hint_style background-color: #3c3225;
color: white;
padding: 4px 8px;
border-radius: 4px;
font-size: 1.2em;
ほか(狭いので省略)
cssツールチップ矩形のスタイル
hint_opt[button]と同様json 解説は[button]を参照
hint_tate文字レイヤの縦書き指定(writing-mode: vertical-rl なら true)Boolean ツールチップスをリンクに対してどの位置に表示するか。
false:リンクの上に表示(横書き文字レイヤの動作)
true:リンクの右に横倒しで表示(縦書き文字レイヤの動作)
hint_width801〜ドット数hintの幅を指定できる
hint_color'white'css色指定。'white', '#FF0000'などツールチップス文字色を指定
hint_font'22px Arial'文字サイズとフォントhint文字サイズとフォントを指定

[r] 改行

指定した文字レイヤの表ページに、改行を出力する。

属性必須省略時値域・型コメント
layerデフォルト文字レイヤ文字レイヤ名文字を表示するレイヤ名
pageforefore、backページの裏表

[rec_ch]履歴書き込み

履歴に文字や付加情報を出力する。

「現在のページ」のテキストに文字を追加する。
「現在のページ」に対する、任意の属性も自由に追加できる。その属性はconst.sn.log.jsonにも含まれ、フレームに渡しJavaScriptなどで(JSON.parse()して)利用できる。
文字列内では[r]で改行できる。
参考(機能ギャラリー・履歴と機能追加)

属性必須省略時値域・型コメント
text現在値String 表示したい文字列。ルビ文法(《》)も使用可能、[r]で改行
style何もしないCSS style 文字の CSS Style を指定する。
このタグによる履歴表示のみに適用、以降は元に戻る。
※[ch]でのみ、背景styleなどを一塊とする。
r_style何もしないCSS style ルビの CSS Style を指定する。
このタグによる履歴表示のみに適用、以降は元に戻る

[rec_r]履歴改行

履歴に改行を出力する。

属性無し。

[reset_rec]履歴リセット

履歴をクリアする。

応用として、履歴に加工した文字列を設定し、履歴画面に機能を追加する事も。

属性必須省略時値域・型コメント
text全てクリアString履歴に設定したい文字列

[ruby2]文字列と複数ルビの追加

親文字列とルビ文字列のセットで文字を追加する

【参考】ルビ記法

属性必須省略時値域・型コメント
layerデフォルト文字レイヤ文字レイヤ名文字を表示するレイヤ名
pageforefore、backページの裏表
tyString親文字列
ryStringルビ文字列
style全てクリアCSS style 文字の CSS Style を指定する。
このタグによる表示のみに適用、以降は元に戻る
r_style全てクリアCSS style ルビの CSS Style を指定する。
このタグによる表示のみに適用、以降は元に戻る

[set_focus] フォーカス移動

[button][link]やフレーム内HTML要素などのフォーカスを移動する。

[button][link]が文字レイヤに追加された順番、あるいは逆順に「マウスオーバー」表示を移動し、選択する。Enter(Return)キーでボタンクリックと同じ動作をする。
フレーム内HTML要素も[event key='dom=(略)']で自動的にフォーカス移動対象に加えられる。
キーボードやゲームパッド、スイッチコントロールなどの操作を補助する。

「data-focus="false"」指定したHTML要素は、一時的にフォーカスさせなく出来る。"true"指定か属性削除で再度有効化。

属性必須省略時値域・型コメント
toy(いずれかを指定)prev、next、null prev……追加順で前に移動
next……追加順で次に移動
null……どの[button][link]にもフォーカスがない状態にする
add(querySelectorAll()引数なセレクタ指定) [event key='dom=(略)']指定していないフレーム内HTML要素にフォーカス移動対象に加えられる。
【例】[set_focus add='dom=archive:.card-image,.btn_delete']
del(querySelectorAll()引数なセレクタ指定) フォーカス移動対象から外す。
【例】[set_focus del='dom=archive:.card-image,.btn_delete']
need_errtrueBoolean HTML内にセレクタ(add・del属性)に対応する要素が見つからない場合にエラーを出すか

[span]インラインスタイル設定

この指定以降の文字のレイアウト(フォントや文字色など)を指定する。

一時的に文字レイヤのlayout属性への指定を上書きするイメージ。 文字レイヤをクリア([clear_text]、[clear_lay])するとリセット、以降は元通り文字レイヤのlayout属性に従う
【参考】ルビ記法

属性必須省略時値域・型コメント
layerデフォルト文字レイヤ文字レイヤ名文字を表示するレイヤ
pageforefore、backページの裏表
wait現在の文字表示速度ミリ秒一時的な文字表示速度。0で瞬時。
style全てクリアCSS style 文字の CSS Style を指定する。
このタグ以降の文字表示に適用される。
r_style全てクリアCSS style ルビの CSS Style を指定する。
このタグ以降のルビ表示に適用される。
ch_in_style何もしない文字出現演出名[ch_in_style]で定義した文字出現演出名
ch_out_style何もしない文字消去演出名[ch_out_style]で定義した文字消去演出名
r_align現在値ルビ揃えを指定する。
設定値は「[lay]レイヤ設定(文字レイヤ)」を参照

[tcy]縦中横を表示する

縦中横文字を追加する。ルビは同時に設定する

属性必須省略時値域・型コメント
layerデフォルト文字レイヤ文字レイヤ名文字を表示するレイヤ
pageforefore、backページの裏表
tyString縦中横文字列、通常半角文字を指定する。
rルビ無しStringルビ文字列
style全てクリアCSS style 文字の CSS Style を指定する。
このタグによる表示のみに適用、以降は元に戻る
r_style全てクリアCSS style ルビの CSS Style を指定する。
このタグによる表示のみに適用、以降は元に戻る

画像・画像レイヤ

[add_face]差分名称の定義

差分名称を定義する。

本タグだけでは差分画像を表示しない。画像レイヤの[lay]タグface属性で指定する差分名称を登録するのみ。

属性必須省略時値域・型コメント
namey差分名称[lay]タグface属性で指定する差分名称
fn属性nameの値画像ファイル名表示する画像、アニメpng
dx0基本画像左上を(0, 0)とする座標差分画像の表示横位置
dy0(↑と同じ)差分画像の表示縦位置
blendmode何もしないブレンドモード名("screen"など)このレイヤと下のレイヤとの重なりにおいて、
ドット単位で色のブレンド演算を行なう。
詳細はblendModeの解説を参照。
例えば同じ画像で差分表示位置やブレンドモードが違う登録をしたい場合、
[add_face name="a_normal" fn="画像" dx=0 dy=0]
[add_face name="a_10_10" fn="画像" dx=10 dy=10]
[add_face name="a_screen" fn="画像" dx=0 dy=0 blendmode="screen"]
とnameを変えることで登録できます。

[wv]動画再生終了待ち

[lay]で開始したムービー再生の終了を待つ

何かしらの画像レイヤで再生している動画の終了を待つ

属性必須省略時値域・型コメント
fny動画ファイル名再生終了を待つ動画
canskiptrueBooleanクリックなど(→詳細は[waitclick])でウエイトをキャンセルできるか
globaltrueBooleanグローバルイベント待ちを有効にするか
stoptrueBooleantrueで「クリックキャンセル時の再生停止」、falseなら行なわない。

HTMLフレーム

[add_frame]フレーム追加

HTMLファイルをベースとする「フレーム」を追加する

注:これは HTML要素の iframe(インラインフレーム要素)で、フレームは全てのレイヤの手前に表示され、互い違いに重ねられない。
const.sn.frm.(フレーム名)系の値もセットする。

属性必須省略時値域・型コメント
idyStringフレーム名。他のタグなどで操作・参照する歳の名前となる。
srcy ファイルパス
ファイル名
フレームとして読み込むhtmlファイルの
パス(prj/をルートとする相対指定)
ファイル名(画像や音声などのfn属性と同じように)
alpha1.00.0〜1.0(実数)透過度。0(完全透明)〜0.5(半透明)〜1(不透明)
scale_x1.0正負の実数値横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転
scale_y1.0正負の実数値縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転
rotate0Number回転角度(単位:deg 度)、正の値は時計回り
visibletrueBooleantrueで行末クリック待ち記号を表示、falseで非表示
b_color透過色指定。0x000000など背後の矩形色。初期値は 透過(htmlで画像を表示すれば表示)
x0画面左上を(0, 0)とする座標画面内におけるフレームの横位置を指定
y0(↑と同じ)画面内におけるフレームの縦位置を指定
widthフレームの横サイズ1〜表示するフレームの横ドットサイズ。
元のサイズと異なる場合は拡大・縮小される。
heightフレームの縦サイズ1〜保存するフレームの縦ドットサイズ。
元のサイズと異なる場合は拡大・縮小される。

[frame]フレームに設定

フレームそのものの属性を設定する

属性必須省略時値域・型コメント
idyフレーム名[add_fram]で定義したフレーム名
alpha1.00.0〜1.0(実数)透過度。0(完全透明)〜0.5(半透明)〜1(不透明)
scale_x1.0正負の実数値横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転
scale_y1.0正負の実数値縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転
float何もしないBooleantrue:フレームを最前面に移動する。
index何もしない0〜フレームをindexで指定したインデックスに移動する。
0がもっとも背後。フレームを重ねるたびに1加算したindexになる
dive何もしないフレーム名フレームをdiveで指定したフレームのすぐ後ろに潜り込ませる。
rotate0Number回転角度(単位:deg 度)、正の値は時計回り
visibletrueBooleantrueで行末クリック待ち記号を表示、falseで非表示
disabledfalseBooleantrueでスライダーなど操作不可・[event]の【dom=系】イベント無効、falseで可能
b_color透過色指定。0x000000など背後の矩形色。初期値は 透過(htmlで画像を表示すれば表示)
x0画面左上を(0, 0)とする座標画面内におけるフレームの横位置を指定
y0(↑と同じ)画面内におけるフレームの縦位置を指定
widthフレームの横サイズ1〜表示するフレームの横ドットサイズ。
元のサイズと異なる場合は拡大・縮小される。
heightフレームの縦サイズ1〜保存するフレームの縦ドットサイズ。
元のサイズと異なる場合は拡大・縮小される。

[let_frame]フレーム変数を取得

フレーム内の変数から、値を取得する

関数名を指定した場合は関数を実行し、その戻り値を取得する。
【const.sn.frm.(id名).(var_name名)】に値がセットされる。

属性必須省略時値域・型コメント
idyフレーム名[add_fram]で定義したフレーム名
var_nameyStringフレーム内の変数/関数名。

[set_frame]フレーム変数に設定

フレーム内の変数に、値を設定する

属性必須省略時値域・型コメント
idyフレーム名[add_fram]で定義したフレーム名
var_nameyStringフレーム内の変数名。
textyフレーム内の変数にセットする値。

[tsy_frame]フレームをトゥイーン開始

フレームのトゥイーンアニメを行なう

フレームのトゥイーンアニメを開始したあと、id属性指定により以下のタグを使用できる。
[pause_tsy](一時停止)
[resume_tsy](一時停止再開)
[stop_tsy](トゥイーン中断)
[wait_tsy](トゥイーン終了待ち)

属性必須省略時値域・型コメント
idyフレーム名[add_fram]で定義したフレーム名
timeyミリ秒数トゥイーンにかける時間
delay0ミリ秒数トゥイーンを始める前の、何もしない待ち時間
repeat10〜繰返し回数。0以下で無限ループ。1を設定すると「繰り返しなし」、2を設定すると「二回同じ動き」を行なう。
easeLinear.None(イージング無し)イージング名揺れのイージング(値の変化の仕方)を指定する。
イージングの変化はこちらの図(またはこちら)が分かりやすい。
指定できる値は[tsy]を参照
yoyofalseBoolean(暫定)ヨーヨーのように逆方向に戻って繰り返す
chainなにもしないレイヤ名指定したレイヤのトゥイーンアニメが終了してから、このトゥイーンを続けて開始する
alphaいずれかを指定何もしない同名属性の変化目標値
height
rotation
scale_x
scale_y
width
xleftの変化目標値
ytopの変化目標値
path[tsy]を参照

イベント

[clear_event] イベントを全消去

イベント予約を全て削除する

属性必須省略時値域・型コメント
globalfalseBooleantrueを指定すると全ての大域イベントを削除する。
falseの場合は大域以外の全てのイベントを削除する

[enable_event] イベント有無の切替

文字レイヤごとのイベント発生有効無効を設定する。

無効にするとマウスイベントが無効になり、[s]待ちなどでイベントが発生しなくなるが、イベント予約は別の話であり、削除などされない。 有効にすればマウスイベントが発生するようになり、再びイベント待ちされるようになる

属性必須省略時値域・型コメント
layerデフォルト文字レイヤ文字レイヤ名イベント有効無効を設定するレイヤ
enabledtrueBooleanイベントを有効にするか

[event]イベントを予約

次の[s]などのイベント待ちに向けてイベント処理を予約する。

あるイベントが発生した際、global=falseのイベント予約は全て削除(予約破棄)される

属性必須省略時値域・型コメント
keyyclick、rightclick、middleclick、upwheel、downwheel、
イベントのキー名※1
イベントを発生させるトリガーイベント

修飾キーの同時押し(あるいは修飾キーを押しといて通常キー)を任意に組み合わせられます。「半角プラスで」「ABC順に」「イベントのキー名の前に」繋げて下さい。
(例1)key=alt+enter
(例2)key=alt+ctrl+shift+enter
callfalseBooleantrueの場合は[call]、falseは[jump]。
ただしcall=trueによりサブルーチンコールした場合、[return]によって「コールする前のイベント予約状態&待ち状態」に戻る。
fn.........イベント発生時にジャンプする先。指定方法は[jump]と同様。
callの場合、ジャンプ先から[return]で戻ると、
再度[s]などのイベント待ち状態に戻る。
label.........(↑と同じ)
クリック時ジャンプ先で「&sn.eventLabel」にて値を受け取れる
urlfnかlabelか、このurlを指定fn・label によるスクリプトジャンプブラウザで開けるURLクリック時にURLを開く。指定時は fn・label を無視する
globalfalseBooleantrueを指定すると大域的なイベント扱いとなり、
イベント発生時にイベント予約が削除されない
argString指定した場合、クリック時ジャンプ先で「&sn.eventArg」にて値を受け取れる
delBooleantrueを指定すると予約済みイベントを削除する。
fn/label/callとdelは同時指定できません
frame101〜※未実装

key=enter_frameの場合のみ有効。
フレームイベントは毎秒何度も([window]のframerate回)発生するが、 アプリ全体が重くなるので、適度に間引いてイベントを時々発生させるため、 フレーム何回に一回イベントを発生させるかを指定する。
例)30フレームで動作するアプリでframe=15を指定すると、30/15=0.5秒に一回発生(タイミングにより厳密ではない)
need_errtrueBoolean HTML内にセレクタ(key属性)に対応する要素が見つからない場合にエラーを出すか
※1 イベントのキー名は以下の表を参考に。

技術的の話をすると、値は JavaScriptでの keydownイベントの keyプロパティの値Key Values - Web APIs | MDN)を基本とする。
(keyCode(非推奨)・codeプロパティとは違うので注意)
重要な点として、「key属性の値」は大文字小文字区別無し、どちらでもよい。
ただし【dom=【フレーム名】:【ボタン系 HTML要素の id名】】系はHTML要素名なども含むので、大小区別あり。

修飾キー(shiftなど)は、その前に追加していく。(追加順は決まっており、以下を参照。ABC順)
key属性の値コメント
Clickマウスボタンクリック([button][link]以外のどこか)
RightClickマウス右ボタンクリック([button][link]以外のどこか)
MiddleClickマウス中(ホイール)ボタンクリック([button][link]以外のどこか)
UpWheelマウスホイール回転(手前に)※回転開始時に一度のみ発生
DownWheelマウスホイール回転(奥に)※回転開始時に一度のみ発生
ControlMac/Winの Controlキー。単体押し検知用
AltMacの Optionキー。Winの ALT(Option)キー。単体押し検知用
MetaMacは ⌘ Command キー、 Windowsは Windows キー ⊞。単体押し検知用
ShiftMac/Winの Shiftキー。単体押し検知用
Backspace
EnterMacの Enterキー、Winの returnキー
=※注:イコールキーはMacキーボードにしか無い
AAキー
' 'スペースキー(半角空白文字を「'」や「"」で囲う。「space」ではない。文字キーの一種であるイメージ)
(その他文字)文字そのままの値を指定。 (B、¥ など)
alt+AAltキーと Aキーを同時押し
ctrl+AControlキーと Aキーを同時押し
shift+AShiftキーと Aキーを同時押し
alt+ctrl+AAltキーと Controlキーと Aキーを同時押し
ctrl+shift+AControlキーと Shiftキーと Aキーを同時押し
alt+shift+AAltキーと Shiftキーと Aキーを同時押し
alt+ctrl+shift+AAltキーと Controlキーと Shiftキーと Aキーを同時押し
ArrowLeft矢印キーの左
ArrowRight矢印キーの右
ArrowUp矢印キーの上
ArrowDown矢印キーの下
Tabタブキー
Delete
Home
End
PageUp
PageDown
Escape※注:新型MacBook Proではキーがないかも(他に割り当て可能
F1ファンクションキー(Macなどではユーザーが機能を割り当てている恐れ)
F12
F13※注:F13以上は、キーボードによっては存在しない
dom=【フレーム名】:【ボタン系 HTML要素の id名】 [add_frame]で読み込んだ HTML要素に発生したイベントを検知し、イベントとする。

「ボタン系 HTML要素」とは、【<a id="close">x</a>】など。
【key='dom=config:#close'】と記述した場合、その要素をクリックした際にイベントが発生する。

HTML要素に【<a id="close" data-arg="res">x</a>】などとカスタムデータ属性を付加すると、イベント発生時に tmp変数として値を受け取れる。
例では、sn.event.domdata.arg に文字列【res】が入る。
dom=【フレーム名】:【スライダー系 HTML要素の id名】 [add_frame]で読み込んだ HTML要素に発生したイベントを検知し、イベントとする。

「スライダー系 HTML要素」とは、【<input type="range" id="sldBackAlpha" min="0" max="100" step="5" value="70"/>】など。
【key='dom=config:#sldBackAlpha'】と記述した場合、そのスライダーを変更した際にイベントが発生する。

HTML要素に【<input type="range" id="sldBackAlpha" min="0" max="100" step="5" value="70" data-arg2="res2"/>】などとカスタムデータ属性を付加すると、イベント発生時に tmp変数として値を受け取れる。
例では、sn.event.domdata.arg2 に文字列【res2】が入る。
dom=【フレーム名】:【トグルボタン系 HTML要素の id名】 [add_frame]で読み込んだ HTML要素に発生したイベントを検知し、イベントとする。

「トグルボタン系 HTML要素」とは、【<input type="checkbox" id="chkScrMode" checked="."/>】など。
【key='dom=config:#chkScrMode'】と記述した場合、その要素をクリックした際にイベントが発生する。

HTML要素に【<input type="checkbox" id="chkScrMode" checked="." data-arg3="res3"/>】などとカスタムデータ属性を付加すると、イベント発生時に tmp変数として値を受け取れる。
例では、sn.event.domdata.arg3 に文字列【res3】が入る。
sn:chgDarkMode ダークモード切り替えイベント。モードは const.sn.isDarkMode で取得できる
sn:chgNavLang 言語設定切り替えイベント。言語設定は const.sn.navigator.language で取得できる。以下で発生
・ブラウザ版:ブラウザの言語設定を変更した時
・アプリ版:OSの言語設定を変更した時
sn:imported[import]によるインポート完了時

[l] 行末クリック待ち

シナリオファイルの順次処理を停止し、クリックやキー押下(→詳細は[waitclick])を待つ。

「breakline」という画像やアニメpngファイルが用意されていれば、行末クリック待ちマークとして表示する。
クリックやキー押下が発生した場合、処理を再開する。
[event]などでイベントが登録されていれば、イベント発生待ちを行う。
吉里吉里仕様【スキップできない】記述から、スキップや自動読みさせない

属性必須省略時値域・型コメント
visibletrueBooleantrueで行末クリック待ち記号を表示、falseで非表示
x0正負の実数値文字表示位置左上を(0, 0)とする横座標
y0正負の実数値文字表示位置左上を(0, 0)とする縦座標
width画像の横サイズ1〜表示する画像の横ドットサイズ。
元のサイズと異なる場合は拡大・縮小される。
height画像の縦サイズ1〜保存する画像の縦ドットサイズ。
元のサイズと異なる場合は拡大・縮小される。
globaltrueBooleanグローバルイベント待ちを有効にするか

[p]改ページクリック待ち

シナリオファイルの順次処理を停止し、クリックやキー押下(→詳細は[waitclick])を待つ。

「breakpage」という画像やアニメpngファイルが用意されていれば、改ページクリック待ちマークとして表示する。
クリックやキー押下が発生した場合、処理を再開する。
[event]などでイベントが登録されていれば、イベント発生待ちを行う。

属性必須省略時値域・型コメント
visibletrueBooleantrueで改ページ記号を表示、falseで非表示
er何もしないBooleantrueで改ページ待ち後に[er]処理を行なう
x0正負の実数値文字表示位置左上を(0, 0)とする横座標
y0正負の実数値文字表示位置左上を(0, 0)とする縦座標
width画像の横サイズ1〜表示する画像の横ドットサイズ。
元のサイズと異なる場合は拡大・縮小される。
height画像の縦サイズ1〜保存する画像の縦ドットサイズ。
元のサイズと異なる場合は拡大・縮小される。
globaltrueBooleanグローバルイベント待ちを有効にするか

[s] 停止する

シナリオファイルの順次処理を停止する

属性必須省略時値域・型コメント
globaltrueBooleanグローバルイベント待ちを有効にするか
シナリオファイルの順次処理を停止する。
[event]などでイベントが登録されていれば、イベント発生待ちを行う。

[set_cancel_skip] スキップ中断予約

スキップ中断を予約

廃止、不要に

[wait]ウェイトを入れる

指定時間スクリプト処理を待ち、再開する。

[event]などでイベントが登録されていても、イベント発生待ちを行わない。

属性必須省略時値域・型コメント
timeyミリ秒処理を待つ時間
canskiptrueBooleanクリックなど(→詳細は[waitclick])でウエイトをキャンセルできるか
globalfalseBooleanグローバルイベント待ちを有効にするか

[waitclick]クリックを待つ

シナリオファイルの順次処理を停止し、クリックやキー押下※を待つ。

属性無し。

クリックやキー押下が発生した場合、処理を再開する。
[event]などでイベントが登録されていれば、イベント発生待ちを行う。

※クリックやキー押下とは、以下のイベントを差す。
  click
  downwheel(下方向へのマウスホイール)
  enter
  space
  down(矢印キーの下)

BGM・効果音

[fadebgm]BGMのフェード

BGMを指定した音量に、段階的に変化させる。

属性必須省略時値域・型コメント
volumey0.0〜1.0(実数)音量
timeyミリ秒フェード時間
delay0ミリ秒変化する前に待機する遅延時間

[fadeoutbgm] BGMのフェードアウト

BGMを無音に、段階的に変化させる。

属性必須省略時値域・型コメント
timeyミリ秒フェード時間
stoptrueBooleantrueで「フェード終了時の再生停止」、falseなら行なわない。
delay0ミリ秒変化する前に待機する遅延時間

[fadeoutse] 効果音のフェードアウト

効果音を無音に、段階的に変化させる。

属性必須省略時値域・型コメント
bufSE効果音を識別するサウンドバッファ名サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。
timeyミリ秒フェード時間
stoptrueBooleantrueで「フェード終了時の再生停止」、falseなら行なわない。
delay0ミリ秒変化する前に待機する遅延時間

[fadese]効果音のフェード

効果音を指定した音量に、段階的に変化させる。

属性必須省略時値域・型コメント
bufSE効果音を識別するサウンドバッファ名サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。
volumey0.0〜1.0(実数)音量
timeyミリ秒フェード時間
delay0ミリ秒変化する前に待機する遅延時間

[playbgm]BGM の演奏

BGMを再生する。

[playse]とは違い、キー押下Skip中でも必ず再生を行なう。(canskip = false)

属性必須省略時値域・型コメント
fnyBGM音声ファイル名再生する音声ファイル名
looptrueBooleantrueでBGMのようにループ再生する。
volume1.00.0〜1.0(実数)再生音量。ただし音量を示すシステム変数(sys:const.an.sound.BGM.volume)は変更しない
speed1.00.0〜1.0(実数)再生速度(0:遅い、1.0:元のまま)
pan0.0-1.0〜1.0(実数)音を出す左右位置(-1.0=左端、0.0=中央(省略値)、1.0=右端)
jointrueBooleantrueで読み込みを待って次のタグへ進む。
canskiptrueBooleantrueでキー押下Skip中なら再生をしない
start_ms0(冒頭)ミリ秒 再生の開始位置を指定する。
end_ms末端ミリ秒 再生の終了位置を指定する。
正の値は「冒頭から何ms目を終端とするか」
負の値は「末尾から何ms手前を終端とするか」の指定。
ret_ms0(冒頭)ミリ秒 ループ戻り位置を指定する。
ループ再生中にend_ms指定位置(省略時は末尾)に到達した場合、この指定位置に戻る。 ループ再生しない(loop=false)際は無視される。

[playse]効果音の再生

効果音を再生する。

属性必須省略時値域・型コメント
fny効果音音声ファイル名再生する音声ファイル名
bufSE効果音を識別するサウンドバッファ名サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。
loopfalseBooleantrueでBGMのようにループ再生する。
volume1.00.0〜1.0(実数)再生音量。ただし音量を示すシステム変数(sys:const.an.sound.【サウンドバッファ名】.volume)は変更しない
speed1.00.0〜1.0(実数)再生速度(0:遅い、1.0:元のまま)
pan0.0-1.0〜1.0(実数)音を出す左右位置(-1.0=左端、0.0=中央(省略値)、1.0=右端)
jointrueBooleantrueで読み込みを待って次のタグへ進む。
canskiptrueBooleantrueでキー押下Skip中なら再生をしない
start_ms0(冒頭)ミリ秒 再生の開始位置を指定する。
end_ms末端ミリ秒 再生の終了位置を指定する。
正の値は「冒頭から何ms目を終端とするか」
負の値は「末尾から何ms手前を終端とするか」の指定。
ret_ms0(冒頭)ミリ秒 ループ戻り位置を指定する。
ループ再生中にend_ms指定位置(省略時は末尾)に到達した場合、この指定位置に戻る。 ループ再生しない(loop=false)際は無視される。

[stop_allse] 全効果音再生の停止

全てのサウンドを停止する。ぴたっと止める。

[stopbgm]BGM 演奏の停止

BGM 演奏を停止する。ぴたっと止める。

[stopfadese] 音声フェードの停止

音声フェードを停止する。

属性必須省略時値域・型コメント
bufSE効果音を識別するサウンドバッファ名サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。
BGMと指定するとBGMの指定。

[stopse]効果音再生の停止

効果音再生を停止する。

属性必須省略時値域・型コメント
bufSE効果音を識別するサウンドバッファ名サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。

[volume]音量設定

BGMや効果音の音量を指定

BGMや効果音を指定した音量にする。

属性必須省略時値域・型コメント
bufSE効果音を識別するサウンドバッファ名サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。
BGMと指定するとBGMの音量設定。
volume1.00.0〜1.0(実数)音量

[wb]BGM フェードの終了待ち

BGM フェードの終了を待つ。

属性必須省略時値域・型コメント
canskipfalseBooleantrueでクリックキャンセル可能にする。
globaltrueBooleanグローバルイベント待ちを有効にするか

[wf]効果音フェードの終了待ち

効果音 フェードの終了を待つ。

属性必須省略時値域・型コメント
bufSE効果音を識別するサウンドバッファ名サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。
canskipfalseBooleantrueでクリックキャンセル可能にする。
globaltrueBooleanグローバルイベント待ちを有効にするか

[wl]BGM 再生の終了待ち

BGM 再生の終了を待つ。

loop=true([playbgm]のデフォルト値)なら待たない。
利用時は【音声再生[playbgm]がjoin=true(ちなみにデフォルト)であること】を必須条件とします。

属性必須省略時値域・型コメント
globaltrueBooleanグローバルイベント待ちを有効にするか

[ws]効果音再生の終了待ち

効果音再生の終了を待つ。

loop=trueなら待たない。 利用時は【音声再生[playse]がjoin=true(ちなみにデフォルト)であること】を必須条件とします。

属性必須省略時値域・型コメント
bufSE効果音を識別するサウンドバッファ名サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。
canskipfalseBooleantrueでクリックキャンセル可能にする。
globaltrueBooleanグローバルイベント待ちを有効にするか
stoptrueBooleantrueで「クリックキャンセル時の再生停止」、falseなら行なわない。

[xchgbuf]サウンドバッファの交換

二つのバッファを交換する。未再生でも再生中でも良いが、フェード中は避けること。

属性必須省略時値域・型コメント
bufSE効果音を識別するサウンドバッファ名サウンドバッファ名
buf2SE効果音を識別するサウンドバッファ名もう一つのサウンドバッファ名

条件分岐

[else]その他ifブロック開始

プログラム言語における、条件分岐のelse文。

属性無し。

詳細は【開発者向け情報:式の評価と条件分岐】をご覧下さい。

[elsif]別条件のifブロック開始

プログラム言語における、条件分岐のelsif文。

詳細は【開発者向け情報:式の評価と条件分岐】をご覧下さい。

属性必須省略時値域・型コメント
expyBooleantrueの場合処理は直後にうつる。
falseなら次の[elsif][else]の評価を行なう。

[endif]ifブロックの終端

プログラム言語における、条件分岐のendif文。

属性無し。
詳細は【開発者向け情報:式の評価と条件分岐】をご覧下さい。

[if]ifブロックの開始

プログラム言語における、条件分岐のif文。

詳細は【開発者向け情報:式の評価と条件分岐】をご覧下さい。

属性必須省略時値域・型コメント
expyBooleantrueの場合処理は直後にうつる。
falseなら次の[elsif][else]の評価を行なう。

ラベル・ジャンプ

[button]ボタンを表示

文字レイヤにボタンを配置する。

※選択肢として使用する場合、ジャンプ先のラベル直後には必ず[record_place]を記述して、ジャンプ直後でセーブしても正しくセーブされるようにして下さい。

属性必須省略時値域・型コメント
layerデフォルト文字レイヤ文字レイヤ名ボタンを配置する文字レイヤ
pagebackfore、backページの裏表
picy画像ファイル名画像ボタンとして配置する画像を指定する。
ただし画像は縦に三等分し、左から「通常時」「クリック押下時」「マウスカーソルを載せた時」の画像として表示する。
text...ボタンにする文字列文字ボタンとして配置する文字列を指定する。
picかtextのどちらかの指定を必須とする
b_pic画像ファイル名文字ボタンの背景画像が指定できる。画像の大きさにかかわらず、文字ボタンのちょうど真ん中に来るよう配置される。
width※1001〜文字ボタンの横幅を指定する。画像ボタンの場合はこの指定を無視し、画像横幅の1/3にする。
height※301〜文字ボタンの縦幅を指定する。画像ボタンの場合はこの指定を無視し、画像横幅の1/3にする。
また、文字は必ず横一列になるため、この設定値はフォントサイズと兼用になる。
styleCSS style
PIXI TextStyleのJSON文字列(右項で列挙した一部)
文字ボタン上にマウスカーソルが乗っていない状態のCSS スタイル。
JSONは style='{"fill": "deepskyblue"}' のように指定する。

※以下がデフォルト値であり、指定できる主なプロパティ。
fill: 'black';
align: 'center';
fontFamily: 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', '游ゴシック Medium', meiryo, sans-serif;
fontSize: 【height属性の値。未指定時は 30】;
padding: 5;
dropShadow: true;
dropShadowAlpha: 0.7;
dropShadowColor: white;
dropShadowColor: #ffffff';(※pixi.js v5.0.3 頃から色名前が使えない不具合)
dropShadowBlur: 3;
dropShadowDistance: 0;
style_hoverstyleの設定+「fill: white;」を採用PIXI TextStyleのJSON文字列文字ボタン上にマウスカーソルが乗っている状態(クリックしていない)のCSS スタイル。
設定できる値はstyleと同様。
style_clickedstyle_hoverの設定+「dropShadow: false;」を採用PIXI TextStyleのJSON文字列文字ボタン上にマウスカーソルが乗っている状態(クリックしている)のCSS スタイル。
設定できる値はstyleと同様。
alpha1.00.0〜1.0(実数)透過度。0(完全透明)〜0.5(半透明)〜1(不透明)
left
top
※詳細は[lay]を参照
rotation0-180〜180回転角を度単位で指定。時計回りは0~180、反時計回りは0~-180を指定。 左上を中心に回る
scale_x1.0正負の実数値横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転
scale_y1.0正負の実数値縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転
pivot_x0.0正負の実数値左上を基準として、回転や移動時の基準を指定
pivot_y0.0正負の実数値左上を基準として、回転や移動時の基準を指定
enabledtrueBooleanfalseだと押せないボタンとなり、クリックイベントが発生しない。
これにより文字レイヤの任意の位置に画像表示できる機能を提供する。
画像は三等分しない。イベントや効果音指定は無効だが、ヒント機能は有効。
callfalseBooleantrueの場合は[call]、falseは[jump]。
ただしcall=trueによりサブルーチンコールした場合、[return]によって「コールする前のイベント予約状態&待ち状態」に戻る。
fnどちらか、もしくは両方を指定処理中のスクリプトファイルスクリプトファイル名クリック時にジャンプする先
labelスクリプトファイルの先頭ラベル名(半角アスタリスク*も含む)コール先のスクリプトファイルにあるラベルクリック時ジャンプ先で「&sn.eventLabel」にて値を受け取れる
urlfnかlabelか、このurlを指定fn・label によるスクリプトジャンプブラウザで開けるURLクリック時にURLを開く。指定時は fn・label を無視する
globalfalseBoolean詳細は[event]と同様。
※ボタンを[trans]する場合はtrueにしておく
argString指定した場合、クリック時ジャンプ先で「&sn.eventArg」にて値を受け取れる
onenter何もしないラベル名マウス重なり(フォーカス取得)時、指定したラベルをコールする。 必ず[return]で戻ること。
onleave何もしないラベル名マウス重なり外れ(フォーカス外れ)時、指定したラベルをコールする。 必ず[return]で戻ること。
clickse省略時は無音音声ファイル名指定すると、クリック時に効果音を再生する
enterse省略時は無音音声ファイル名指定すると、ボタン上にマウスカーソルが載った時に効果音を再生する
leavese省略時は無音音声ファイル名指定すると、ボタン上からマウスカーソルが外れた時に効果音を再生する
clicksebufSYSサウンドバッファ名クリック時効果音を再生するサウンドバッファを指定する
entersebufSYSサウンドバッファ名クリック時効果音を再生するサウンドバッファを指定する
leavesebufSYSサウンドバッファ名クリック時効果音を再生するサウンドバッファを指定する
blendmode何もしないブレンドモード名("screen"など)このボタンと下のレイヤとの重なりにおいて、
ドット単位で色のブレンド演算を行なう。
詳細はblendModeの解説を参照。
hint表示しないString 指定した場合のみ、マウスカーソルを載せるとツールチップス表示する。
hint(.pngなど)をプロジェクトに含めると、それをツールチップス図形として使う
hint_style background-color: #3c3225;
color: white;
padding: 4px 8px;
border-radius: 4px;
font-size: 1.2em;
ほか(狭いので省略)
cssツールチップ矩形の CSS スタイル
hint_opt
 {
  "placement": "bottom",
  "modifiers": [
   {
    "name": "flip",
    "options": {
     "fallbackPlacements": ["top", "bottom"]
    }
   }
  ]
 }
json 基本的には以下の形式です。
・{"placement": "(値)"}
・{"placement": "(値)","modifiers": []}
「画面外にはみ出たときは placement の値を切り替えたい」
「ちょっとだけずらしたい」場合は、modifiers配列に設定を追加していきます。
設定については以下のサイトを参照してください。
Flip | Popper
Offset | Popper

【tips】JSON文法は「文字列は " で囲む、' はダメ」などむやみに厳密なため、サイト「JSON Pretty Linter - JSONの整形と構文チェック」などを使用することを推奨します。
hint_tate文字レイヤの縦書き指定(writing-mode: vertical-rl なら true)Boolean ツールチップスをリンクに対してどの位置に表示するか。
false:リンクの上に表示(横書き文字レイヤの動作)
true:リンクの右に横倒しで表示(縦書き文字レイヤの動作)
hint_width801〜ドット数hintの幅を指定できる
hint_color'white'css色指定。'white', '#FF0000'などツールチップス文字色を指定
hint_font'22px Arial'文字サイズとフォントhint文字サイズとフォントを指定
(以下は未作成)(以下は未作成)
event_at_downfalseBooleantrue:押すだけでイベント発動(画面常駐のシステムボタンなどに)
false:押して離すとイベント発動
draggablefalseBooleantrue:テキスト背後の矩形をドラッグできる。
event_at_down=trueだとクリックイベントが発生しなくなる。
drag_x0画面左上を(0, 0)とする座標ドラッグ範囲の左上始点。
drag_y0(↑と同じ)(↑と同じ)
drag_w画面横幅ドラッグ範囲縦横ピクセル数ドラッグ範囲縦横サイズ。
drag_h画面縦幅(↑と同じ)(↑と同じ)
dragmove_fn.........ドラッグ中にサブルーチンコールする先。
指定方法は[jump]と同様
dragmove_label.........(↑と同じ)
dragmove_argString指定した場合、ドラッグ中コール先で「&sn.eventArg」にて値を受け取れる

[call]サブルーチンコール

スクリプト処理の現在位置をコールスタックに積み、ジャンプする。

ジャンプ先での[return]により本タグの次の位置に戻る事が出来る。
※マニアックな話ですが、あらゆるタグの中で唯一「通常、既読としない」タグです。

属性必須省略時値域・型コメント
fnどちらか、もしくは両方を指定処理中のスクリプトファイルスクリプトファイル名コール先のスクリプトファイル
[call fn=ext_*]のようにワイルドカードをサポート。マッチするスクリプトを順不同にコールする。 (ワイルドカードは後方のみ)
labelスクリプトファイルの先頭ラベル名(半角アスタリスク*も含む)コール先のスクリプトファイルにあるラベル
countfalseBooleanタグ位置を既読とするか
clear_local_event何もしないBooleantrueの場合は[clear_event]を行なってからコールする。

[jump]シナリオジャンプ

指定位置のスクリプトにジャンプする

属性必須省略時値域・型コメント
fnどちらか、もしくは両方を指定処理中のスクリプトファイルスクリプトファイル名コール先のスクリプトファイル
labelスクリプトファイルの先頭ラベル名(半角アスタリスク*も含む)コール先のスクリプトファイルにあるラベル
counttrueBooleanタグ位置を既読とするか

ラベルは例えば以下のように使います。

*aaa
無限ループ
[jump label=*aaa]
; =======================

さらにラベル名を考えるのが面倒なとき、「無名ラベル」ともいうべき機能が使えます。
「**after」は「そのタグ以降で最初に見つかった**ラベルに」
「**before」は「そのタグ以前で最初に見つかった**ラベルに」
ジャンプ・コールする、という指定です。次のように書きます。
; =======================
[jump label=****after]
***
**
も
[jump label=**after]
;**
っ
**
[l]
ぷ
[jump label=**before]
**
@[s]
**
****
す
[jump label=***before]
; =======================
この例では「すもぷぷぷ……」と文字が表示されます。
「**」とか「***」とかアスタリスクは二個以上の任意の数が使え、同じ数同士が対応するラベルとなります。
が、上記例で見るとおりあんまり複雑に使うと可読性が下がってしまう気がしますので、局所的な用途に限ったほうが良さげです。

[page]ページ移動

[p]停止位置を一つ移動する

[p]などの停止位置を「ページ」とみなし、既読ページを戻ったり進んだりできる。
(レイヤの .page とページ移動の [page] の言葉混乱注意)
・save:sn.doRecLog の影響を受け、true の状態でのみ、[p][s]など。([l][waitclick][wait][wv][wait_tsy][wf][ws]は対象外)で停止した際にそのページ状態の記録を行う。
・save変数も復元する。
  ・前述二項の理由により、冒頭ページに &save:sn.doRecLog = true と [record_place]が必須。
   (save変数復元で &save:sn.doRecLog = false になるケースがある)

属性必須省略時値域・型コメント
clearいずれかを指定なにもしないBooleantrueでページ状態記録をクリアする
toなにもしないprev または next prev:ひとつ前のページに戻る
next:ひとつ次のページに進める
styleなにもしないcssページ移動中の既読文字に適用する CSS スタイル。初期値は【color: yellow;】

[pop_stack]コールスタック破棄

コールスタックを一つ破棄する

極力使用しないコーディングを推奨します。

属性必須省略時値域・型コメント
clearfalseBooleantrue:全て破棄する。空でもエラーを出さない
false:スタックを一つ破棄する。空の場合はエラーメッセージ&アプリ停止

[return]サブルーチンから戻る

コールスタックに積まれているジャンプ先に戻るようなジャンプをする。

最後に積んだコールスタックを一つ破棄する。
マクロ内で実行した場合はマクロを脱出する。
fn・label属性で戻り先を上書き指定できる。(マクロ内からジャンプしたいときなど)

属性必須省略時値域・型コメント
fnどちらか、もしくは両方を指定処理中のスクリプトファイルスクリプトファイル名戻り先のスクリプトファイル
labelスクリプトファイルの先頭ラベル名(半角アスタリスク*も含む)戻り先のスクリプトファイルにあるラベル

マクロ

[bracket2macro] 括弧マクロの定義

属性textを持つマクロやタグを、任意の二つの文字を括弧とし、括弧で囲った記述で代用できるよう

例 …… [bracket2macro name=title text=⦅⦆]
(訂正:「任意の二つの文字」は特定の半角文字じゃなくてもよいです)
※適用範囲について
  本タグより前にロードされたスクリプトファイルには適用されません。
  またスクリプトファイルに本タグが記述された場合、本タグより前に出現した半角文字にも適用されません。

属性必須省略時値域・型コメント
texty特定の文字括弧にする任意の二つの文字。
マクロに出来るのは英文字、空白、;、[、]、、=、&、|、《、》以外のみ。
正規表現で言えば /[\w\s;[]
=&|《》]/ 以外。
一文字マクロや定義済みの括弧文字は使用できない。
namey定義済みのマクロ名半角文字に割り当てるマクロ名を指定。
組み込みタグか、[macro]による定義済みマクロ名で無ければならない。
組み込みタグやマクロは属性textだけを指定しても問題なく動作し、 それを処理すること。渡される属性textは空文字の場合もある。

[char2macro] 一文字マクロの定義

属性無しのマクロやタグを、半角文字の記述で代用できるよう定義する

本タグより前にロードされたスクリプトファイルには適用されません。
またスクリプトファイルに本タグが記述された場合、本タグより前に出現した半角文字にも適用されません。

属性必須省略時値域・型コメント
chary特定の半角文字マクロにする半角文字。
マクロに出来るのは英文字、空白、;、[、]、、=、&、|、《、》以外のみ。
正規表現で言えば /[\w\s;[]
=&|《》]/ 以外。
括弧文字や定義済みの一文字マクロは使用できない。
namey定義済みのマクロ名半角文字に割り当てるマクロ名を指定。
組み込みタグか、[macro]による定義済みマクロ名で無ければならない。

[endmacro]マクロ定義の終了

[macro]と[endmacro]に囲まれた部分をマクロとして定義する。

[macro]マクロ定義の開始

[macro]と[endmacro]に囲まれた部分をマクロとして定義する。

定義したマクロは既存のタグと同様に使用できる。
渡した属性は、マクロ側で「mp:」「%」スコープにより参照できる。
(ただし式では %a という記述はできず、mp:a 記述のみサポートする)

属性必須省略時値域・型コメント
nameyマクロ名String既存のタグやマクロと重複しないマクロ名
nowarn_unusedfalse(警告する)Boolean 拡張機能の未使用マクロ警告を抑制、表示しないようにする。
「使われなくても構わないマクロ」であると示す。
SKYNovelの動作には影響なく、拡張機能のみが使用する。
sumString 拡張機能に表示(※1)するこのマクロの概要。改行記述(※2)が出来る。
SKYNovelの動作には影響なく、拡張機能のみが使用する。
%〜(任意のマクロ引数名)(コメントで解説) 拡張機能に表示(※1)するこのマクロの引数説明。
その見た目通り、マクロ定義時の変数名に沿っている。(mp:〜 と同様)
記述に文法がある(※3)。
SKYNovelの動作には影響なく、拡張機能のみが使用する。
detailString 拡張機能に表示(※1)するこのマクロの詳細説明。改行記述(※2)が出来る。
SKYNovelの動作には影響なく、拡張機能のみが使用する。

※1 マクロの概要や引数の説明や詳細説明を以下に表示する

 ・リファレンス検索パレット(【コマンドパレット】-【リファレンス検索パレットを開く】)
 ・アウトライン(アウトラインビューに表示)
 ・マウスホバー(タグ・マクロ名あたりにマウスカーソルを重ねる)
 ・コード補完機能(スクリプト中で [ や = や半角空白入力時に表示される入力候補)
 ・引数の説明(スクリプト中で [ や = や半角空白入力時に表示されるホバー)

※2 改行記述について

 【\n】文字を入れると、
 ・一行しか表示できない状況(コード補完機能によるタグ選択中)では【\n】手前までの一行目だけ表示
 ・複数行表示可能なホバーチップスなどでは、改行して全て表示する

※3 引数説明記述について

書き方があるので、要素を分解して解説する。

例)%no_voice_stop?='Boolean|false|trueなら改ページ後、音声(バッファ名「音声」の効果音)をフェードアウトしない'

  1. 【%】

    この属性が引数説明記述であることを示す。

    • [macro]タグでのみ、「%」で始まる属性は、そのマクロ使用時引数の同名属性解説を示す
    • その見た目通り、マクロ定義時の変数名に沿っている。(mp:〜 と同様)
  2. 【no_voice_stop】

    属性名

    • 【余談】SKYNovel 1.36.0 以降は漢字や平仮名なども属性名に使用できる
  3. 【?】

    省略記号

    • ? を書くと【省略可能な属性】であると示す。
    • ? を書かないと必須属性。

      【余談】TypeScriptの省略可能なプロパティを意味する「?」と同様の意味合い

  4. 【=】
  5. 【Boolean|false|trueなら〜】

    属性値はその他の項目。値は | で区切られた複数の項目になっている

    • 【Boolean】
      • 一項目:値域・型
      • 例は true か false のみの値を持つ「Boolean」が指定されている。
      • 他に【String】【Number】など。タグリファレンスを眺めると参考になる。
    • 【false】
      • 二項目:省略時の値
      • この項目そのものも省略してもよいが、【||】表記にする
    • 【trueなら〜】
      • 三項目:概要

しおり

[copybookmark]しおりの複写

しおりデータを複写する

セーブデータパスに to, from 属性と同名のフォルダがあればコピーする

属性必須省略時値域・型コメント
fromy数値複写元のしおり番号
toy数値複写先のしおり番号

[erasebookmark] しおりの消去

しおりデータを削除する

セーブデータパスに place 属性と同名のフォルダがあれば削除する

属性必須省略時値域・型コメント
placey数値処理対象のしおり番号

[load]しおりの読込

しおりデータを読み込み、スクリプト処理を再開する

属性必須省略時値域・型コメント
placey数値処理対象のしおり番号
fn.........ロード後最初にしたい共通処理をコールする(処理は[return]で終わらせる)。指定方法は[jump]と同様。
ただし指定する際、fnとlabelは両方指定しなければならない。

[record_place] セーブポイント指定

本タグの位置を、スクリプト読み込み時に再開する位置として設定する。

本タグの位置を、スクリプト読み込み時に再開する位置として設定する。
本タグで「しおりを挟み」、[save]タグで実際にデータをセーブするイメージ。

※マクロやサブルーチン内に記述された場合、最初に積まれたコールスタック位置をセーブポイントとする。

属性必須省略時値域・型コメント
layer全てのレイヤ保存対象レイヤ名(カンマ区切りで複数可能)しおりに状態を保存するレイヤ。Save/Load画面レイヤや設定画面レイヤなど、保存すべきでないレイヤを除いて指定すべき
reset_soundtrueBoolean全てのサウンドを停止・再度再生開始するか

[reload_script] スクリプト再読込

現在処理中のスクリプトをリロードする。

属性無し。

現在処理中のスクリプトをリロードする。
実行位置は[record_place]によるセーブポイントまで戻って再開する。
※スクリプトを大幅に変えた後だと、正常に再開できない場合があります。

[save]しおりの保存

しおりデータを保存する。

しおりデータを保存する。
読み込み時に再開するスクリプトの位置は最後に[record_place]をコールした位置。
指定した place が sys:const.sn.save.place と同じ場合、const.sn.save.place を +1 する

[record_place]がゲーム状態(レイヤ状態など)をバッファに退避し、
[save]は指定しおりに書き出す機能。

属性必須省略時値域・型コメント
placey数値処理対象のしおり番号
path従来通り SharedObjectに保存フォルダパス指定した場合、しおりをファイルとしてフォルダパス下に保存する。

画面揺らし

[quake]画面を揺らす

画面全体を揺らす

属性必須省略時値域・型コメント
timeyミリ秒数揺らす時間
hmax10Integer横方向の最大揺らし幅。幅はランダム値を取る
vmax10Integer縦方向の最大揺らし幅。幅はランダム値を取る
delay0ミリ秒数トゥイーンを始める前の、何もしない待ち時間
repeat10〜繰返し回数。0以下で無限ループ。1を設定すると「繰り返しなし」、2を設定すると「二回同じ動き」を行なう。
easeLinear.None(イージング無し)イージング名揺れのイージング(値の変化の仕方)を指定する。
イージングの変化はこちらの図(またはこちら)が分かりやすい。
指定できる値は[tsy]を参照
yoyofalseBoolean(暫定)ヨーヨーのように逆方向に戻って繰り返す

[stop_quake]画面揺らし中断

画面揺らしを中断する

属性必須省略時値域・型コメント
canskiptrueBooleanクリックなど(→詳細は[waitclick])でウエイトをキャンセルできるか

[wq]画面揺らし終了待ち

画面揺らしの終了を待ち、再開する。

[event]などでイベントが登録されていても、イベント発生待ちを行わない。

属性必須省略時値域・型コメント
canskiptrueBooleanクリックなど(→詳細は[waitclick])でウエイトをキャンセルできるか

システム

[close]アプリの終了

アプリケーションを終了する

[export]プレイデータをエクスポート

プレイデータをファイルとしてエクスポートする

ダウンロードフォルダにプレイデータファイルが保存される。
ブラウザならファイルをダウンロードする。
プレイデータ拡張子、ウェブ版は.swpd、アプリ版は.spdで互換性はない。
暗号化するプロジェクトの場合、出力するプレイデータファイルも暗号化される。
関連するデータファイル([snapshot fn='userdata:/777/pic.jpg']などと保存したサムネイル画像など)も含むが、暗号化しない。
エクスポート完了時には【sn:exported】というイベントを発火する。
【[event key='sn:exported' 〜]】という記述でジャンプできる。

[import]プレイデータをインポート

プレイデータファイルをインポートする

読み込みダイアログが表示され、選択したプレイデータファイルをインポートする。
プレイデータ拡張子、ウェブ版は.swpd、アプリ版は.spdで互換性はない。

タグはダイアログを表示次第すぐ次の処理に移り、ユーザーの選択を待たない。
インポート完了時には【sn:imported】というイベントを発火する。
【[event key='sn:imported' 〜]】という記述でジャンプできる。
関連するデータファイル([snapshot fn='userdata:/777/pic.jpg']などと保存したサムネイル画像など)も含む。

[loadplugin] プラグインの読み込み

プラグインとして読み込む

属性必須省略時値域・型コメント
fnyファイル名読み込むプラグインのファイル名
(拡張子はcssのみ、Webフォント用)
jointrueBooleantrueで読み込みを待って次のタグへ進む。

属性必須省略時値域・型コメント
urlyURL文字列開くURL

[snapshot]スナップショット

アプリ表示部分全体を画像として保存する

画面スナップショットをダウンロードフォルダに保存する。
ファイル名にはプロジェクト名と日時どが追加される。

※文字の表示とスナップショットは、厳密には同じではないので注意。

属性必須省略時値域・型コメント
layer全てのレイヤレイヤ名(半角カンマ区切りで複数レイヤを指定可能)
pageforefore、backページの裏表
fnsnapshotString※保存するファイル名
省略時はデスクトップに保存
保存する画像フォーマット(png、jpg)は拡張子で指定
widthアプリ表示部分の横サイズ1〜保存する画像の横ドットサイズ。
元のサイズと異なる場合は拡大・縮小される。
heightアプリ表示部分の縦サイズ1〜保存する画像の縦ドットサイズ。
元のサイズと異なる場合は拡大・縮小される。
smoothingfalseBoolean拡大・縮小保存される場合、スムージングするか
b_colorconfig.anprjで指定した背景色色指定。0xFF000000(黒)など
16進数では透過2桁+赤2桁+緑2桁+青2桁で指定
テキスト背後の矩形色。pngで 0x0 にすると透過する。
透過しない黒は 0xFF000000

※fnを「userdata:/」で始まるファイル名にするとセーブデータと同じフォルダに保存します。


・パッケージ済・非パッケージ(アプリ版を起動)
  (Win)C:\Users\【ユーザー名】\AppData\Roaming\【アプリ名】\storage\
  (Mac)/Users/【ユーザー名】/Library/Application Support/【アプリ名】/storage/
・非パッケージ(デバッガー起動)
  {プロジェクトルート}/.vscode/storage/

[title]タイトル指定

アプリウインドウのタイトル文字列を設定する。

属性必須省略時値域・型コメント
textyStringタイトル文字列

[toggle_full_screen] 全画面状態切替

呼び出す度にアプリの全画面/ウインドウモードを切り替えます。

現在の状態は文字列変数「tmp:const.sn.displayState」で分かる。trueならフルスクリーン

属性必須省略時値域・型コメント
keyイベント登録せずモード切替イベントのキー名※1イベントを発生させるトリガーイベントを予約する。
key属性の値は[event]を参照

[update_check] 更新チェック機能

ネットにアプリの更新を確認し、ダウンロードもサポートする

アプリの最新バージョンをネットで確認する。(アプリ版でのみ動作)
処理は非同期に行われ、更新があった時のみ更新確認ウインドウが表示される。
ダウンロードフォルダにアプリパッケージの dmg(インストーラー exe)をダウンロードする。

開発中はデバッグスイッチ devtool・debugLog を有効にすると処理状況やエラーメッセージなども見られて便利です

属性必須省略時値域・型コメント
urlyStringlatest(-mac).ymlや、dmg(exe)を置いたWebサーバーのフォルダURLを指定する。終端は「/」をつけること。
Webサーバーの準備方法を説明します。
現在二つの形式をサポートしていますが、前者の新しい方に移行して下さい。

【新】_index.json 方式

CPU アーキテクチャ違いにも対応し、latest.yml などを手変更する必要がなくなりました。

 OSや CPU アーキテクチャごとの配布形式生成を押して、それぞれを生成します。
(各社のビジネス上の都合により、同じOSでも違う形式があります。どちらも生成してアップデート機能も準備してあげればよいと思います)

 exeやdmgが build/package/ フォルダに生成されますが、いっしょに build/package/update フォルダが新たに生成され、「新しいアップデート機能」に必要なファイルがまとめられています。

 _index.json は OS 違いや CPU アーキテクチャ違いでも一つのファイルです。
 他はファイル名を暗号化したアプリファイル(OS + Arch + 乱数文字列)です。
(内容に変更なくても、生成するたびに乱数文字列とファイル名は変わります)

 build/package/update フォルダ内のファイルすべてを Webサーバーにアップロードします。
 シンプルなサンプルでは Github にアップロードしています。
 例えば _index.json はブラウザからも見える状態です。念のため確認しておきましょう。

Githubの制限でファイルサイズの最大は 100MB 以内のため、
Mac は 空の dmg にしています。
Winは収まっているので実物です。
Linuxは 100MB 越えなので上げられていません。

 シンプルサンプルのテンプレからなにか新規プロジェクトを生成してみましょう。
 スクリプト冒頭で [update_check] を呼んでいます。URLは _index.json などをアップした URL です。
 ご自身で使用する際はご自身で用意した Webサーバーの URL に変更するわけです。

 そのままアプリ版を実行しても何も起こりませんが、

 アプリのバージョンを「1.0.0」以外に変更してから終了 → アプリ版を実行すると、アプリの更新をうながすダイアログが表示されます。

 Windows でも OS に即したダイアログ表示です。

 ダウンロードフォルダに配布形式ファイルがダウンロードされます。
 ia32 なら ia32、x64 なら x64。実行した旧アプリと同じ CPU アーキテクチャの新アプリファイルが選ばれます。

 Windows ではこんな感じです。

 ダウンロードフォルダに新しいインストーラーなど配布形式ファイルがダウンロードされます。

 ただし旧アプリが x64 なのにサーバー上にない場合、とりあえず同じ OS のすべての CPU アーキテクチャのファイルをダウンロードします。
 どちらかで配布して、あとで CPU アーキテクチャ別のアップデートという形が可能なわけです。
(上の画像は加工してあるのでちょっと変な表示です。「CPU = x64」が見つからないといいながら、2 個のファイルの内の一つが x64 ファイルです)


 まとめると、
1.OSや CPU アーキテクチャごとの配布形式を生成する。
2.build/package/update フォルダ内のファイルすべてを Webサーバーにアップロード。
3.アプリ版で [update_check] を呼ぶ。
 だけです。
 CPU アーキテクチャ違いにも対応し、latest.yml などを手変更する必要がなくなりました。

【旧】.yml 方式

基本的に二つのファイルを変更し、アップロードするだけです。
・OS X
 1.【exe作成】で build/ 下に「〜.dmg」と「latest-mac.yml」などが生成される。
 2.「latest-mac.yml」を開き、書いてあるファイル名に合わせるように「〜.dmg」ファイル名を変える。(サーバーにアップしてから変えても良さげ)
 3.上記二つを FTP などで Webサーバーにアップロードする。(httpsを大推奨)
  「~.yml」がWebブラウザなどで開けるのを確認。
  例) http://ugainovel.hiho.jp/famibee/sample/hatsune/latest-mac.yml
 4. main.sn にある [update_check] の url属性に、二つのファイルをアップした「ディレクトリ名」を記述。
[update_check url='http://ugainovel.hiho.jp/famibee/sample/hatsune/'] 5.【アプリ版を起動】して試してみる。バージョン番号が違う場合のみ、更新チェック機能によるダイアログが表示される。

・Windows
 1.【exe作成】で build/ 下に「〜.exe」と「latest.yml」などが生成される。
 2.「latest.yml」を開き、書いてあるファイル名に合わせるように「〜.exe」ファイル名を変える。(サーバーにアップしてから変えても良さげ)
 3.上記二つを FTP などで Webサーバーにアップロードする。(httpsを大推奨)
  「~.yml」がWebブラウザなどで開けるのを確認。URLをメモ。
  例) http://ugainovel.hiho.jp/famibee/sample/hatsune/latest.yml
 4. main.sn にある [update_check] の url属性に、二つのファイルをアップした「ディレクトリ名」を記述。
[update_check url='http://ugainovel.hiho.jp/famibee/sample/hatsune/'] 5.【アプリ版を起動】して試してみる。バージョン番号が違う場合のみ、更新チェック機能によるダイアログが表示される。

[window]アプリウインドウ設定

ゲームアプリのウインドウサイズや位置などを変更する

属性必須省略時値域・型コメント
width現在値1〜アプリウインドウの横幅を指定
height現在値1〜アプリウインドウの高さを指定
framerate現在値1〜アプリ全体のフレームレートを変更
centering何もしないBooleantrueを指定すると、アプリウインドウをデスクトップの中央に移動する
x何もしない画面左上を(0, 0)とする座標デスクトップにおけるアプリウインドウの横位置を指定
y何もしない(↑と同じ)デスクトップにおけるアプリウインドウの縦位置を指定

デバッグ・その他

[dump_lay]レイヤのダンプ

レイヤの内容をデバッグ表示する

属性必須省略時値域・型コメント
layer全てのレイヤレイヤ名デバッグ表示するレイヤ名を指定。半角カンマ区切りで複数レイヤを指定可能

[dump_stack]スタックのダンプ

[call]等によるコールスタックの内容をデバッグ表示する

[dump_val]変数のダンプ

変数の内容をデバッグ表示する

[log] ログ出力

ダウンロードフォルダにテキスト出力する(追記ではなく上書き。追記する。出力日時・分・スクリプト名や行番号やプロジェクト名も出力

Web版でもログファイルをダウンロードします。ただし連続だと間隔が開いてないと失敗します。

属性必須省略時値域・型コメント
textyStringログ出力する値

[trace]デバッグ表示へ出力

属性をデバッグ表示する

属性必須省略時値域・型コメント
textyStringデバッグ表示する値