変数操作
[clearsysvar] システム変数の全消去
sys:変数を全消去。削除すると言うより、初期化する
属性無し
[clearvar] ゲーム変数の全消去
save:変数を全消去。削除すると言うより、初期化する
属性無し
[let_abs]絶対値
絶対値を求める。結果を変数に代入する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | 変数名 | 代入する変数 | |
text | y | Number | 絶対値を求める数 | |
cast | 出来るだけ数値変換 | 値をセットする際の型。(詳細は[let]を参照) |
[let_char_at] 文字列から一字取りだし
文字列中の一文字を取り出す。結果を変数に代入する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | 変数名 | 代入する変数 | |
text | y | String | 元になる文字列 | |
pos | 0 | 0(先頭)〜 | 何番目の文字を取り出すか | |
cast | 出来るだけ数値変換 | 値をセットする際の型。(詳細は[let]を参照) |
[let_index_of]文字列で検索
文字列内を検索し、文字列内の start 以降で、最初に val が見つかった位置を返す。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | 変数名 | 代入する変数。-1の場合は見つからなかった | |
text | y | String | 元になる文字列 | |
val | y | String | 探す文字列 | |
start | 0 | 0(先頭)〜 | 検索を開始する位置 | |
cast | 出来るだけ数値変換 | 値をセットする際の型。(詳細は[let]を参照) |
[let_length]文字列の長さ
文字列の長さを求める。結果を変数に代入する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | 変数名 | 代入する変数 | |
text | y | String | 長さを求める文字列 | |
cast | 出来るだけ数値変換 | 値をセットする際の型。(詳細は[let]を参照) |
[let_ml]インラインテキスト代入
[let_ml]〜[endlet_ml]で囲んだ複数行テキストを代入する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | 変数名 | 代入する変数 |
[let_replace]正規表現で置換
文字列を正規表現で検索し、マッチする箇所を文字列で置き換える。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | 変数名 | 代入する変数 | |
text | y | String | 置換対象の文字列 | |
reg | y | String | 正規表現 | |
flags | (なし) | String | 正規表現のフラグ | |
val | y | String | 置き換える文字列 | |
cast | 出来るだけ数値変換 | 値をセットする際の型。(詳細は[let]を参照) |
[let_round]四捨五入
四捨五入する。結果を変数に代入する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | 変数名 | 代入する変数 | |
text | y | Number | 四捨五入する数 | |
cast | 出来るだけ数値変換 | 値をセットする際の型。(詳細は[let]を参照) |
[let_search]正規表現で検索
文字列内を正規表現で検索し、最初に val が見つかった位置を返します。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | 変数名 | 代入する変数 | |
text | y | String | 検索対象の文字列 | |
reg | y | String | 正規表現 | |
flags | (なし) | String | 正規表現のフラグ | |
cast | 出来るだけ数値変換 | 値をセットする際の型。(詳細は[let]を参照) |
[let_substr] 文字列から抜きだし
文字列の一部を取り出す。結果を変数に代入する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | 変数名 | 代入する変数 | |
text | y | String | 元になる文字列 | |
pos | 0 | 0(先頭)〜 または 〜-1(末尾) | 何番目の文字から取り出すか。 負の値なら「後ろから何個目か」。-1が最後の文字。 【pos=-3 len=all】とすると、後ろから3文字を取り出す。 | |
len | 1 | 文字数、または all | 何文字取り出すか。all でpos以降の全て | |
cast | 出来るだけ数値変換 | 値をセットする際の型。(詳細は[let]を参照) |
[let] 変数代入・演算
変数に値を代入する
変数については「SKYNovel 組み込み変数」を参照して下さい
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | 変数名 | 代入する変数 | |
text | y | String | セットする値 | |
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 ...]等とすると、非表示状態でレイヤ追加できます。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | y | String | レイヤ名を指定する。 未使用のレイヤ名でなければエラー&アプリ停止 | |
class | y | grp(画像レイヤ)、 txt(文字レイヤ)、 またはプラグインで追加した値 | レイヤの種類 | |
(その他) | [lay]に指定できる属性 |
[clear_lay]レイヤ設定の消去
画像や文字などレイヤ状態をクリアする。
alpha、blendMode、rotation、scaleX、scaleYを初期値にする
※背景や背景画像はクリアしません(b_color、b_alpha、b_alpha_isfixed)
クリアしたい場合は、[lay back_clear=true]
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | 全てのレイヤ | レイヤ名(半角カンマ区切りで複数レイヤを指定可能) | ||
page | fore | fore、back、both | ページの裏表(both指定で両面) | |
filter | false | Boolean | true:フィルタもクリア |
[finish_trans] トランス強制終了
[trans]で開始したトランスをすぐ終了させる
属性無し。
[trans]で開始したトランス終了を待たず、すぐ終了させる。
終了次第、スクリプト処理を次へ進める
[lay]レイヤ設定(共通)
レイヤに各種設定を行う。
レイヤの種類ごとに使用できる属性もあるが、共通な属性をここで解説する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | y | レイヤ名 | 処理対象のレイヤ | |
page | fore | fore、back | ページの裏表 | |
visible | 現在値 | Boolean | true:表示、false:非表示 | |
alpha | 1.0 | 0.0〜1.0(実数) | レイヤの透過度。0(完全透明)〜0.5(半透明)〜1(不透明) | |
blendmode | 何もしない | ブレンドモード名("screen"など) | このレイヤと下のレイヤとの重なりにおいて、 ドット単位で色のブレンド演算を行なう。 詳細はblendModeの解説を参照。 | |
pos | c※ | c、l、r、横座標 | 主に立ち絵に使う。横と縦座標を同時に設定する。 横座標は指定した値(文字cの場合は画面中央、lは左寄り、rは右寄り)に設定し、画像下端を画面下端に接するように自動計算する。 | |
left | 0 | 画面左上を(0, 0)とする横座標※ | レイヤやボタン左端の画面左端からの距離 | |
center | (↑と同じ) | (↑と同じ) | レイヤやボタン中央の画面左端からの距離 | |
right | (↑と同じ) | (↑と同じ) | レイヤやボタン右端の画面左端からの距離 | |
s_right | (↑と同じ) | (↑と同じ) | レイヤやボタン右端の画面右端からの距離 | |
top | 0 | 画面左上を(0, 0)とする縦座標※ | レイヤやボタン上端の画面上端からの距離 | |
middle | (↑と同じ) | (↑と同じ) | レイヤやボタン中央の画面上端からの距離 | |
bottom | (↑と同じ) | (↑と同じ) | レイヤやボタン下端の画面上端からの距離 | |
s_bottom | (↑と同じ) | (↑と同じ) | レイヤやボタン下端の画面下端からの距離 | |
rotation | 0 | -180〜180 | 回転角を度単位で指定。時計回りは0~180、反時計回りは0~-180を指定。 左上を中心に回る | |
scale_x | 1.0 | 正負の実数値 | 横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転 | |
scale_y | 1.0 | 正負の実数値 | 縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転 | |
pivot_x | 0.0 | 正負の実数値 | 左上を基準として、回転や移動時の基準を指定 | |
pivot_y | 0.0 | 正負の実数値 | 左上を基準として、回転や移動時の基準を指定 | |
float | 何もしない | Boolean | true:レイヤを最前面に移動する。 | |
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 | 現在値 | Boolean | true:テキスト背後の矩形不透明度を、「b_alpha属性と sys:TextLayer.Back.Alpha の掛け算とせず」、b_alpha属性値そのものにする。(これは2017/2/13以前の仕様) | |
b_pic | (↑と同じ) | 画像ファイル名 | 文字レイヤ背後の枠画像を指定する。b_alphaの影響を受ける。 (これを指定するとb_colorは無視される) | |
back_clear | 現在値 | Boolean | true:背景をクリアする | |
break_fixed | 現在値 | Boolean |
true:クリック待ちマークを固定位置に表示 false:最後に表示した文字の次、改行せずぶら下げ位置に表示 | |
break_fixed_left | Integer | クリック待ちマークの表示位置を指定する | ||
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 |
分割禁止の禁則処理文字を変更できる。対象文字を列挙した文字列を指定。 デフォルト値は以下の通り。 ─‥… |
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
(以下は未作成) | (以下は未作成) | |||
draggable | false | Boolean | true:テキスト背後の矩形をドラッグできる | |
drag_x | 0 | 画面左上を(0, 0)とする座標 | ドラッグ範囲の左上始点。 | |
drag_y | 0 | (↑と同じ) | (↑と同じ) | |
drag_w | 画面横幅 | ドラッグ範囲縦横ピクセル数 | ドラッグ範囲縦横サイズ。 | |
drag_h | 画面縦幅 | (↑と同じ) | (↑と同じ) | |
dragmove_fn | ... | ... | ... | ドラッグ中にサブルーチンコールする先。 指定方法は[jump]と同様 |
dragmove_label | (↑と同じ) | (↑と同じ) | (↑と同じ) | (↑と同じ) |
dragmove_arg | String | 指定した場合、ドラッグ中コール先で「&sn.eventArg」にて値を受け取れる | ||
h_scroll | ピクセル数 | 横スクロールさせる量 | ||
v_scroll | ピクセル数 | 縦スクロールさせる量 | ||
mouse_wheel_enabled | Boolean | マウスホイールでスクロール許可するか否か |
[lay]レイヤ設定(画像レイヤ)
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
fn | y | 何もしない | 画像ファイル名 |
基本画像・動画ファイルを指定する 動画ファイルを指定時はロードしてすぐに動画再生が始まる。 ※ただし、ブラウザ版では「ページロード後に一度だけでもクリック(クリック待ちでもボタンでも可)されていないと再生させない」というブラウザの挙動があるため、再生する前のいつでもいいのでクリックの機会を作ること。 ※ ムービー再生されない場合、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] | |
(以下は未作成) | (以下は未作成) | |||
draggable | false | Boolean | true:テキスト背後の矩形をドラッグできる | |
drag_x | 0 | 画面左上を(0, 0)とする座標 | ドラッグ範囲の左上始点。 | |
drag_y | 0 | (↑と同じ) | (↑と同じ) | |
drag_w | 画面横幅 | ドラッグ範囲縦横ピクセル数 | ドラッグ範囲縦横サイズ。 | |
drag_h | 画面縦幅 | (↑と同じ) | (↑と同じ) | |
dragmove_fn | ... | ... | ... | ドラッグ中にサブルーチンコールする先。 指定方法は[jump]と同様 |
dragmove_label | ... | ... | ... | (↑と同じ) |
dragmove_arg | String | 指定した場合、ドラッグ中コール先で「&sn.eventArg」にて値を受け取れる |
[trans]ページ裏表を交換
裏ページを表ページとクロスフェードする。
クロスフェードを開始すると、終了を待たずに次のタグへと処理を進める。
終了を待ちたい場合は[wt]を使用する。
クロスフェード終了後は元・裏ページから元・表ページに内容をコピーし、同じ内容になる。
ルール画像は白黒かグレースケールを推奨。(見た目と動きが一致する)
また[trans]~[wt]間で文字表示や[ch]は動作未定義、非推奨。
[trans]終了を待たず何かをするのは避けた方がよいでしょう。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | 全てのレイヤ | 処理対象レイヤ名(カンマ区切りで複数可能) | クロスフェードするレイヤ。指定以外のレイヤは変化させない | |
time | 0 | ミリ秒 | 変化にかける時間 | |
delay | 0 | ミリ秒 | 変化する前に待機する遅延時間 | |
rule | 画面全体ピクセルで同時にクロスフェードする | 画像ファイル名 | 指定した場合はルール画像として、ピクセル単位でクロスフェードするタイミングをずらす。 ルール画像の黒いピクセル(と同じ位置にあるピクセル)が先に処理され、白が最後になる。 | |
vague | 0.04 | トランジション期間全体を1とした値 | 表レイヤと裏レイヤの境界を曖昧にぼかす度合い | |
ease | Linear.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]終了を待たず何かをするのは避けた方がよいでしょう
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
canskip | true | Boolean | trueでクリックキャンセル可能にする。 |
トゥイーンアニメ
[pause_tsy]一時停止
レイヤーやフレームのトゥイーンアニメを一時停止させる
「layer(とpage)」を指定した場合はレイヤーの操作、
「id」を指定した場合はフレームの操作を行なう。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | y | レイヤ名 | 処理対象のレイヤ | |
page | fore | fore、back | ページの裏表 | |
id | y | String | フレーム名 |
[resume_tsy]一時停止再開
レイヤーやフレームのトゥイーンアニメ一時停止を再開させる
「layer(とpage)」を指定した場合はレイヤーの操作、
「id」を指定した場合はフレームの操作を行なう。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | y | レイヤ名 | 処理対象のレイヤ | |
page | fore | fore、back | ページの裏表 | |
id | y | String | フレーム名 |
[stop_tsy]トゥイーン中断
レイヤーやフレームのトゥイーンアニメを中断、終了する。
「layer(とpage)」を指定した場合はレイヤーの操作、
「id」を指定した場合はフレームの操作を行なう。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | y | レイヤ名 | 処理対象のレイヤ | |
page | fore | fore、back | ページの裏表 | |
id | y | String | フレーム名 |
[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]で行なう。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | y | レイヤ名 | 処理対象のレイヤ | |
page | fore | fore、back | ページの裏表 | |
time | y | ミリ秒数 | トゥイーンにかける時間 | |
delay | 0 | ミリ秒数 | トゥイーンを始める前の、何もしない待ち時間 | |
repeat | 1 | 0〜 | 繰返し回数。0 で無限ループ。1を設定すると「繰り返しなし」、2を設定すると「二回同じ動き」を行なう。 | |
arrive | false | Boolean | trueならクリックキャンセルでアニメ終端までSkip。 falseならその場で停止 | |
backlay | false | Boolean | trueならトゥイーン終了時、fore→backへ属性をコピーする。 コピーする属性はalpha, height, rotation, scale_x, scale_y, pivot_x, pivot_y, width, left, top。 | |
ease | Linear.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 | |
yoyo | false | Boolean | (暫定)ヨーヨーのように逆方向に戻って繰り返す | |
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解析失敗はスイッチにかかわらず出力する。 | ||
render | false | Boolean | trueを指定すると[trans]のように絵を合成してから不透明度を適用するように(半透明時に差分境界が見えなくなる) |
[wait_tsy]トゥイーン終了待ち
レイヤーやフレームの終了を待ち、再開する。
[event]などでイベントが登録されていても、イベント発生待ちを行わない。
繰返し回数が0(無限ループ)の場合、何もせず終了する
「layer(とpage)」を指定した場合はレイヤーの操作、
「id」を指定した場合はフレームの操作を行なう。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | y | レイヤ名 | 処理対象のレイヤ | |
page | fore | fore、back | ページの裏表 | |
id | y | String | フレーム名 | |
canskip | true | Boolean | クリックなど(→詳細は[waitclick])でウエイトをキャンセルできるか | |
global | false | Boolean | グローバルイベント待ちを有効にするか ※canskipと同時にtrueにするとエラー |
文字・文字レイヤ
[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属性で指定すると、定義どおりの文字出現演出アニメを行なう
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | 文字出現演出名 | 文字出現演出を特定する名前 | |
wait | 500 | ミリ秒 | 一時的な文字表示速度。0で瞬時。 | |
alpha | 0.0 | 0.0〜1.0(実数) | 透過度。0(完全透明)〜0.5(半透明)〜1(不透明) | |
x | '=0' |
以下のような相対位置指定が出来る 500 ── X位置を500に '=500' ── 文字表示位置を基準に+500加算した位置 '=-500' ── 文字表示位置を基準に-500加算した位置 | 変化の初期値 | |
y | ||||
scale_x | 1.0 | 正負の実数値 | 横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転 | |
scale_y | 1.0 | 正負の実数値 | 縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転 | |
rotate | 0 | Number | 回転角度(単位:deg 度)、正の値は時計回り | |
join | true | Boolean | 文字を順番に出すか(true)同時か(false) | |
ease | 'ease-out' | CSSのanimation-timing-function プロパティ |
[ch_out_style]文字消去演出定義
文字消去演出アニメを定義する
[lay][span]などの ch_out_style属性で指定すると、定義どおりの文字消去演出アニメを行なう。
文字消去演出は、次ページの文字出現演出と同時に行なわれる。文字消去演出を待ちたい場合は、[wait]などで待つ。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | 文字消去演出名 | 文字消去演出を特定する名前 | |
wait | 500 | ミリ秒 | 一時的な文字消去速度。0で瞬時。 | |
alpha | 0.0 | 0.0〜1.0(実数) | 透過度。0(完全透明)〜0.5(半透明)〜1(不透明) | |
x | '=0' |
以下のような相対位置指定が出来る 500 ── X位置を500に '=500' ── 文字位置を基準に+500加算した位置 '=-500' ── 文字位置を基準に-500加算した位置 | 変化の目標値 | |
y | ||||
scale_x | 1.0 | 正負の実数値 | 横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転 | |
scale_y | 1.0 | 正負の実数値 | 縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転 | |
rotate | 0 | Number | 回転角度(単位:deg 度)、正の値は時計回り | |
join | false | Boolean | 文字を順番に出すか(true)同時か(false) | |
ease | 'ease-out' | CSSのanimation-timing-function プロパティ |
[ch]文字を追加する
文字レイヤに文字を出力する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ | |
page | fore | fore、back | ページの裏表 | |
text | y | String | 表示したい文字列。ルビ文法(《》)も解析する。改行も [r] で出来る | |
record | true | Boolean | 履歴に保存するか | |
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 | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ | |
page | fore | fore、back | ページの裏表 |
[current] デフォルト文字レイヤ設定
デフォルト文字レイヤを設定する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | y | 文字レイヤ名 | デフォルトとするレイヤ |
[endlink]ハイパーリンクの終了
[link](ハイパーリンク)で開始したリンク区間を終了する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ | |
page | fore | fore、back | ページの裏表 |
[er]ページ両面の文字消去
デフォルト文字レイヤの裏と表の両方に対して[clear_lay]を行う。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
rec_page_break | true | Boolean | 履歴を改ページするか |
[graph]インライン画像表示
文字レイヤに画像を文字として表示する。ルビは同時に設定する。
フォントにない外字やアニメpng画像表示に使える。 [span]は強制的に解除される。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ | |
page | fore | fore、back | ページの裏表 | |
pic | y | 画像ファイル名 | 表示する画像やアニメpng | |
r | ルビ無し | String | ルビ文字列(ただしあまりに他の文字サイズと大きく異なる場合は正しい位置に表示されない) | |
x | 0 | 文字表示位置左上を(0, 0)とする座標 | 表示位置を指定する。 ==100と文字表示位置からの相対指定もできる | |
y | 0 | (↑と同じ) | (↑と同じ) | |
width | 画像の横サイズ(※) | 1〜 | 表示する画像の横ドットサイズ。 元のサイズと異なる場合は拡大・縮小される。 | |
height | 画像の縦サイズ(※) | 1〜 | 保存する画像の縦ドットサイズ。 元のサイズと異なる場合は拡大・縮小される。 | |
style | 何もしない | CSS style |
他の文字と並べて表示したい場合は style='font-size: 60px;' などとサイズ指定する。 このタグによる表示のみに適用、以降は元に戻る。 width, height属性は正確にサイズ指定できるが他の文字に関係なくはみ出して表示する | |
r_style | 全てクリア | CSS style |
ルビの CSS Style を指定する。 このタグによる表示のみに適用、以降は元に戻る | |
wait | 現在の文字表示速度 | ミリ秒 | 一時的な文字表示速度。0で瞬時。 |
※省略時は画像サイズになるが、ロード完了直後に文字配置を決めるのでちらつく。それを嫌う際に指定する
※特にモバイルなどでゲーム画面が自動で拡大縮小される場合、省略したらその時の本文文字サイズとして扱われる。なるべくサイズ指定を推奨。
[link]ハイパーリンク
指定した文字レイヤの表ページに、ハイパーリンクを作成する。
[link]から[endlink](ハイパーリンクの終了)までで囲った範囲をリンク区間と呼び、
その区間の文字や縦中横がハイパーリンクになる。(リンク区間は入れ子に出来ません)
※選択肢として使用する場合、ジャンプ先のラベル直後には必ず[record_place]を記述して、ジャンプ直後でセーブしても正しくセーブされるようにして下さい。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ名 | |
page | fore | fore、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_clicked | styleの値 | CSS style | 文字ボタン上にマウスカーソルが乗っている状態(クリックしている)のCSS スタイル | |
r_style | styleの値 | CSS style | リンク上にマウスカーソルが乗っていない状態のルビの CSS スタイル | |
r_style_hover | style_hoverの値 | CSS style | 文字ボタン上にマウスカーソルが乗っている状態(クリックしていない)のルビの CSS スタイル | |
r_style_clicked | r_styleの値 | CSS style | 文字ボタン上にマウスカーソルが乗っている状態(クリックしている)のルビの CSS スタイル | |
ch_in_style | 何もしない | 文字出現演出名 | [ch_in_style]で定義した文字出現演出名 | |
ch_out_style | 何もしない | 文字消去演出名 | [ch_out_style]で定義した文字消去演出名 | |
wait | 現在の文字表示速度 | ミリ秒 | 一時的な文字表示速度。0で瞬時。 | |
call | false | Boolean | trueの場合は[call]、falseは[jump]。 ただしcall=trueによりサブルーチンコールした場合、[return]によって「コールする前のイベント予約状態&待ち状態」に戻る。 | |
fn | どちらか、もしくは両方を指定 | 処理中のスクリプトファイル | スクリプトファイル名 | クリック時にジャンプする先 |
label | スクリプトファイルの先頭 | ラベル名(半角アスタリスク*も含む) | コール先のスクリプトファイルにあるラベル | クリック時ジャンプ先で「&sn.eventLabel」にて値を受け取れる |
global | false | Boolean | 詳細は[event]と同様。 ※ボタンを[trans]する場合はtrueにしておく | |
arg | String | 指定した場合、クリック時ジャンプ先で「&sn.eventArg」にて値を受け取れる | ||
onenter | 何もしない | ラベル名 | マウス重なり(フォーカス取得)時、指定したラベルをコールする。 必ず[return]で戻ること。 | |
onleave | 何もしない | ラベル名 | マウス重なり外れ(フォーカス外れ)時、指定したラベルをコールする。 必ず[return]で戻ること。 | |
clickse | 省略時は無音 | 音声ファイル名 | 指定すると、クリック時に効果音を再生する | |
enterse | 省略時は無音 | 音声ファイル名 | 指定すると、ボタン上にマウスカーソルが載った時に効果音を再生する | |
leavese | 省略時は無音 | 音声ファイル名 | 指定すると、ボタン上からマウスカーソルが外れた時に効果音を再生する | |
clicksebuf | SYS | サウンドバッファ名 | クリック時効果音を再生するサウンドバッファを指定する | |
entersebuf | SYS | サウンドバッファ名 | クリック時効果音を再生するサウンドバッファを指定する | |
leavesebuf | SYS | サウンドバッファ名 | クリック時効果音を再生するサウンドバッファを指定する | |
hint | 表示しない | String |
指定した場合のみ、マウスカーソルを載せるとツールチップス表示する。 | |
hint_style |
background-color: #3c3225; color: white; padding: 4px 8px; border-radius: 4px; font-size: 1.2em; ほか(狭いので省略) | css | ツールチップ矩形のスタイル | |
hint_opt | { placement: "bottom", modifiers: [{fallbackPlacements: ["top", "bottom"]},], } | json | @popperjs/core の createPopper() の第三引数 | |
false:リンクの上に表示(横書き文字レイヤの動作) true:リンクの右に横倒しで表示(縦書き文字レイヤの動作) | ||||
[r] 改行
指定した文字レイヤの表ページに、改行を出力する。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ名 | |
page | fore | fore、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 | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ名 | |
page | fore | fore、back | ページの裏表 | |
t | y | String | 親文字列 | |
r | y | String | ルビ文字列 | |
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"指定か属性削除で再度有効化。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
to | y(いずれかを指定) | 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_err | true | Boolean | HTML内にセレクタ(add・del属性)に対応する要素が見つからない場合にエラーを出すか |
[span]インラインスタイル設定
この指定以降の文字のレイアウト(フォントや文字色など)を指定する。
一時的に文字レイヤのlayout属性への指定を上書きするイメージ。
文字レイヤをクリア([clear_text]、[clear_lay])するとリセット、以降は元通り文字レイヤのlayout属性に従う
【参考】ルビ記法
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ | |
page | fore | fore、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 | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ | |
page | fore | fore、back | ページの裏表 | |
t | y | String | 縦中横文字列、通常半角文字を指定する。 | |
r | ルビ無し | String | ルビ文字列 | |
style | 全てクリア | CSS style |
文字の CSS Style を指定する。 このタグによる表示のみに適用、以降は元に戻る | |
r_style | 全てクリア | CSS style |
ルビの CSS Style を指定する。 このタグによる表示のみに適用、以降は元に戻る |
画像・画像レイヤ
[add_face]差分名称の定義
差分名称を定義する。
本タグだけでは差分画像を表示しない。画像レイヤの[lay]タグface属性で指定する差分名称を登録するのみ。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | 差分名称 | [lay]タグface属性で指定する差分名称 | |
fn | 属性nameの値 | 画像ファイル名 | 表示する画像、アニメpng | |
dx | 0 | 基本画像左上を(0, 0)とする座標 | 差分画像の表示横位置 | |
dy | 0 | (↑と同じ) | 差分画像の表示縦位置 | |
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]で開始したムービー再生の終了を待つ
何かしらの画像レイヤで再生している動画の終了を待つ
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
fn | y | 動画ファイル名 | 再生終了を待つ動画 | |
canskip | true | Boolean | クリックなど(→詳細は[waitclick])でウエイトをキャンセルできるか | |
global | false | Boolean | グローバルイベント待ちを有効にするか ※canskipと同時にtrueにするとエラー |
HTMLフレーム
[add_frame]フレーム追加
HTMLファイルをベースとする「フレーム」を追加する
注:これは HTML要素の iframe(インラインフレーム要素)で、フレームは全てのレイヤの手前に表示され、互い違いに重ねられない。
const.sn.frm.(フレーム名)系の値もセットする。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
id | y | String | フレーム名。他のタグなどで操作・参照する歳の名前となる。 | |
src | y |
ファイル名 |
フレームとして読み込むhtmlファイルの ファイル名(画像や音声などのfn属性と同じように) | |
alpha | 1.0 | 0.0〜1.0(実数) | 透過度。0(完全透明)〜0.5(半透明)〜1(不透明) | |
scale_x | 1.0 | 正負の実数値 | 横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転 | |
scale_y | 1.0 | 正負の実数値 | 縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転 | |
rotate | 0 | Number | 回転角度(単位:deg 度)、正の値は時計回り | |
visible | true | Boolean | trueで行末クリック待ち記号を表示、falseで非表示 | |
b_color | 透過 | 色指定。0x000000など | 背後の矩形色。初期値は 透過(htmlで画像を表示すれば表示) | |
x | 0 | 画面左上を(0, 0)とする座標 | 画面内におけるフレームの横位置を指定 | |
y | 0 | (↑と同じ) | 画面内におけるフレームの縦位置を指定 | |
width | フレームの横サイズ | 1〜 | 表示するフレームの横ドットサイズ。 元のサイズと異なる場合は拡大・縮小される。 | |
height | フレームの縦サイズ | 1〜 | 保存するフレームの縦ドットサイズ。 元のサイズと異なる場合は拡大・縮小される。 |
[frame]フレームに設定
フレームそのものの属性を設定する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
id | y | フレーム名 | [add_fram]で定義したフレーム名 | |
alpha | 1.0 | 0.0〜1.0(実数) | 透過度。0(完全透明)〜0.5(半透明)〜1(不透明) | |
scale_x | 1.0 | 正負の実数値 | 横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転 | |
scale_y | 1.0 | 正負の実数値 | 縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転 | |
float | 何もしない | Boolean | true:フレームを最前面に移動する。 | |
index | 何もしない | 0〜 | フレームをindexで指定したインデックスに移動する。 0がもっとも背後。フレームを重ねるたびに1加算したindexになる | |
dive | 何もしない | フレーム名 | フレームをdiveで指定したフレームのすぐ後ろに潜り込ませる。 | |
rotate | 0 | Number | 回転角度(単位:deg 度)、正の値は時計回り | |
visible | true | Boolean | trueで行末クリック待ち記号を表示、falseで非表示 | |
disabled | false | Boolean | trueでスライダーなど操作不可・[event]の【dom=系】イベント無効、falseで可能 | |
b_color | 透過 | 色指定。0x000000など | 背後の矩形色。初期値は 透過(htmlで画像を表示すれば表示) | |
x | 0 | 画面左上を(0, 0)とする座標 | 画面内におけるフレームの横位置を指定 | |
y | 0 | (↑と同じ) | 画面内におけるフレームの縦位置を指定 | |
width | フレームの横サイズ | 1〜 | 表示するフレームの横ドットサイズ。 元のサイズと異なる場合は拡大・縮小される。 | |
height | フレームの縦サイズ | 1〜 | 保存するフレームの縦ドットサイズ。 元のサイズと異なる場合は拡大・縮小される。 |
[let_frame]フレーム変数を取得
フレーム内の変数から、値を取得する
関数名を指定した場合は関数を実行し、その戻り値を取得する。
【const.sn.frm.(id名).(var_name名)】に値がセットされる。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
id | y | フレーム名 | [add_fram]で定義したフレーム名 | |
var_name | y | String | フレーム内の変数/関数名。 |
[set_frame]フレーム変数に設定
フレーム内の変数に、値を設定する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
id | y | フレーム名 | [add_fram]で定義したフレーム名 | |
var_name | y | String | フレーム内の変数名。 | |
text | y | フレーム内の変数にセットする値。 |
[tsy_frame]フレームをトゥイーン開始
フレームのトゥイーンアニメを行なう
フレームのトゥイーンアニメを開始したあと、id属性指定により以下のタグを使用できる。
[pause_tsy](一時停止)
[resume_tsy](一時停止再開)
[stop_tsy](トゥイーン中断)
[wait_tsy](トゥイーン終了待ち)
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
id | y | フレーム名 | [add_fram]で定義したフレーム名 | |
time | y | ミリ秒数 | トゥイーンにかける時間 | |
delay | 0 | ミリ秒数 | トゥイーンを始める前の、何もしない待ち時間 | |
repeat | 1 | 0〜 | 繰返し回数。0 で無限ループ。1を設定すると「繰り返しなし」、2を設定すると「二回同じ動き」を行なう。 | |
ease | Linear.None(イージング無し) | イージング名 | 揺れのイージング(値の変化の仕方)を指定する。 イージングの変化はこちらの図(またはこちら)が分かりやすい。 指定できる値は[tsy]を参照 | |
yoyo | false | Boolean | (暫定)ヨーヨーのように逆方向に戻って繰り返す | |
chain | なにもしない | レイヤ名 | 指定したレイヤのトゥイーンアニメが終了してから、このトゥイーンを続けて開始する | |
alpha | いずれかを指定 | 何もしない | 同名属性の変化目標値 | |
height | ||||
rotation | ||||
scale_x | ||||
scale_y | ||||
width | ||||
x | leftの変化目標値 | |||
y | topの変化目標値 | |||
path | ※[tsy]を参照 |
イベント
[clear_event] イベントを全消去
イベント予約を全て削除する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
global | false | Boolean | trueを指定すると全ての大域イベントを削除する。 falseの場合は大域以外の全てのイベントを削除する |
[enable_event] イベント有無の切替
文字レイヤごとのイベント発生有効無効を設定する。
無効にするとマウスイベントが無効になり、[s]待ちなどでイベントが発生しなくなるが、イベント予約は別の話であり、削除などされない。 有効にすればマウスイベントが発生するようになり、再びイベント待ちされるようになる
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | デフォルト文字レイヤ | 文字レイヤ名 | イベント有効無効を設定するレイヤ | |
enabled | true | Boolean | イベントを有効にするか |
[event]イベントを予約
次の[s]などのイベント待ちに向けてイベント処理を予約する。
あるイベントが発生した際、global=falseのイベント予約は全て削除(予約破棄)される
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
key | y | click、rightclick、middleclick、upwheel、downwheel、 イベントのキー名※1 | イベントを発生させるトリガーイベント 修飾キーの同時押し(あるいは修飾キーを押しといて通常キー)を任意に組み合わせられます。「半角プラスで」「ABC順に」「イベントのキー名の前に」繋げて下さい。 (例1)key=alt+enter (例2)key=alt+ctrl+shift+enter | |
call | false | Boolean | trueの場合は[call]、falseは[jump]。 ただしcall=trueによりサブルーチンコールした場合、[return]によって「コールする前のイベント予約状態&待ち状態」に戻る。 | |
fn | ... | ... | ... | イベント発生時にジャンプする先。指定方法は[jump]と同様。 callの場合、ジャンプ先から[return]で戻ると、 再度[s]などのイベント待ち状態に戻る。 |
label | ... | ... | ... | (↑と同じ) クリック時ジャンプ先で「&sn.eventLabel」にて値を受け取れる |
global | false | Boolean | trueを指定すると大域的なイベント扱いとなり、 イベント発生時にイベント予約が削除されない | |
arg | String | 指定した場合、クリック時ジャンプ先で「&sn.eventArg」にて値を受け取れる | ||
url | URL文字列 | 開くURL | ||
del | Boolean | trueを指定すると予約済みイベントを削除する。 fn/label/callとdelは同時指定できません | ||
frame | 10 | 1〜 | ※未実装 key=enter_frameの場合のみ有効。 フレームイベントは毎秒何度も([window]のframerate回)発生するが、 アプリ全体が重くなるので、適度に間引いてイベントを時々発生させるため、 フレーム何回に一回イベントを発生させるかを指定する。 例)30フレームで動作するアプリでframe=15を指定すると、30/15=0.5秒に一回発生(タイミングにより厳密ではない) | |
need_err | true | Boolean | HTML内にセレクタ(key属性)に対応する要素が見つからない場合にエラーを出すか |
技術的の話をすると、値は 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 | マウスホイール回転(奥に)※回転開始時に一度のみ発生 |
Control | Mac/Winの Controlキー。単体押し検知用 |
Alt | Macの Optionキー。Winの ALT(Option)キー。単体押し検知用 |
Meta | Macは ⌘ Command キー、 Windowsは Windows キー ⊞。単体押し検知用 |
Shift | Mac/Winの Shiftキー。単体押し検知用 |
Backspace | |
Enter | Macの Enterキー、Winの returnキー |
= | ※注:イコールキーはMacキーボードにしか無い |
A | Aキー |
' ' | スペースキー(半角空白文字を「'」や「"」で囲う。「space」ではない。文字キーの一種であるイメージ) |
(その他文字) | 文字そのままの値を指定。 (B、¥ など) |
alt+A | Altキーと Aキーを同時押し |
ctrl+A | Controlキーと Aキーを同時押し |
shift+A | Shiftキーと Aキーを同時押し |
alt+ctrl+A | Altキーと Controlキーと Aキーを同時押し |
ctrl+shift+A | Controlキーと Shiftキーと Aキーを同時押し |
alt+shift+A | Altキーと Shiftキーと Aキーを同時押し |
alt+ctrl+shift+A | Altキーと 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:imported | [import]によるインポート完了時 |
sn:chgDarkMode | ダークモード切り替えイベント。モードは const.sn.isDarkMode で取得できる |
[l] 行末クリック待ち
シナリオファイルの順次処理を停止し、クリックやキー押下(→詳細は[waitclick])を待つ。
「breakline」という画像やアニメpngファイルが用意されていれば、行末クリック待ちマークとして表示する。
クリックやキー押下が発生した場合、処理を再開する。
[event]などでイベントが登録されていれば、イベント発生待ちを行う。
吉里吉里仕様【スキップできない】記述から、スキップや自動読みさせない
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
visible | true | Boolean | trueで行末クリック待ち記号を表示、falseで非表示 |
[p]改ページクリック待ち
シナリオファイルの順次処理を停止し、クリックやキー押下(→詳細は[waitclick])を待つ。
「breakpage」という画像やアニメpngファイルが用意されていれば、改ページクリック待ちマークとして表示する。
クリックやキー押下が発生した場合、処理を再開する。
[event]などでイベントが登録されていれば、イベント発生待ちを行う。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
visible | true | Boolean | trueで改ページ記号を表示、falseで非表示 | |
er | 何もしない | Boolean | trueで改ページ待ち後に[er]処理を行なう |
[s] 停止する
シナリオファイルの順次処理を停止する
属性無し。
シナリオファイルの順次処理を停止する。
[event]などでイベントが登録されていれば、イベント発生待ちを行う。
[set_cancel_skip] スキップ中断予約
スキップ中断を予約
属性無し。
(普段使わないし、かなり高度な話なので、このタグは理解しなくて結構です)
ページ末まで一気に読み進むモード、自動読みすすみモードなどの開始に備え、クリックなどで処理を中断できるような特殊イベントを予約する。
クリックやキー押下が発生した場合、処理を再開する。
※例えば自動読み進みモードだと[l][p]などで停止しないため、予約イベントが処理されない。その為のタグ。
[wait]ウェイトを入れる
指定時間スクリプト処理を待ち、再開する。
[event]などでイベントが登録されていても、イベント発生待ちを行わない。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
time | y | ミリ秒 | 処理を待つ時間 | |
canskip | true | Boolean | クリックなど(→詳細は[waitclick])でウエイトをキャンセルできるか | |
global | false | Boolean | グローバルイベント待ちを有効にするか ※canskipと同時にtrueにするとエラー |
[waitclick]クリックを待つ
シナリオファイルの順次処理を停止し、クリックやキー押下※を待つ。
属性無し。
クリックやキー押下が発生した場合、処理を再開する。
[event]などでイベントが登録されていれば、イベント発生待ちを行う。
※クリックやキー押下とは、以下のイベントを差す。
click
downwheel(下方向へのマウスホイール)
enter
space
down(矢印キーの下)
BGM・効果音
[fadebgm]BGMのフェード
BGMを指定した音量に、段階的に変化させる。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
volume | y | 0.0〜1.0(実数) | 音量 | |
time | y | ミリ秒 | フェード時間 | |
delay | 0 | ミリ秒 | 変化する前に待機する遅延時間 |
[fadeoutbgm] BGMのフェードアウト
BGMを無音に、段階的に変化させる。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
time | y | ミリ秒 | フェード時間 | |
stop | true | Boolean | trueで「フェード終了時の再生停止」、falseなら行なわない。 | |
delay | 0 | ミリ秒 | 変化する前に待機する遅延時間 |
[fadeoutse] 効果音のフェードアウト
効果音を無音に、段階的に変化させる。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
buf | SE | 効果音を識別するサウンドバッファ名 | サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。 | |
time | y | ミリ秒 | フェード時間 | |
stop | true | Boolean | trueで「フェード終了時の再生停止」、falseなら行なわない。 | |
delay | 0 | ミリ秒 | 変化する前に待機する遅延時間 |
[fadese]効果音のフェード
効果音を指定した音量に、段階的に変化させる。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
buf | SE | 効果音を識別するサウンドバッファ名 | サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。 | |
volume | y | 0.0〜1.0(実数) | 音量 | |
time | y | ミリ秒 | フェード時間 | |
delay | 0 | ミリ秒 | 変化する前に待機する遅延時間 |
[playbgm]BGM の演奏
BGMを再生する。
[playse]とは違い、キー押下Skip中でも必ず再生を行なう。(canskip = false)
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
fn | y | BGM音声ファイル名 | 再生する音声ファイル名 | |
loop | true | Boolean | trueでBGMのようにループ再生する。 | |
volume | 1.0 | 0.0〜1.0(実数) | 再生音量。ただし音量を示すシステム変数(sys:const.an.sound.BGM.volume)は変更しない | |
speed | 1.0 | 0.0〜1.0(実数) | 再生速度(0:遅い、1.0:元のまま) | |
pan | 0.0 | -1.0〜1.0(実数) | 音を出す左右位置(-1.0=左端、0.0=中央(省略値)、1.0=右端) | |
join | true | Boolean | trueで読み込みを待って次のタグへ進む。 | |
canskip | true | Boolean | trueでキー押下Skip中なら再生をしない | |
start_ms | 0(冒頭) | ミリ秒 | 再生の開始位置を指定する。 | |
end_ms | 末端 | ミリ秒 |
再生の終了位置を指定する。 正の値は「冒頭から何ms目を終端とするか」 負の値は「末尾から何ms手前を終端とするか」の指定。 | |
ret_ms | 0(冒頭) | ミリ秒 |
ループ戻り位置を指定する。 ループ再生中にend_ms指定位置(省略時は末尾)に到達した場合、この指定位置に戻る。 ループ再生しない(loop=false)際は無視される。 |
[playse]効果音の再生
効果音を再生する。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
fn | y | 効果音音声ファイル名 | 再生する音声ファイル名 | |
buf | SE | 効果音を識別するサウンドバッファ名 | サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。 | |
loop | false | Boolean | trueでBGMのようにループ再生する。 | |
volume | 1.0 | 0.0〜1.0(実数) | 再生音量。ただし音量を示すシステム変数(sys:const.an.sound.【サウンドバッファ名】.volume)は変更しない | |
speed | 1.0 | 0.0〜1.0(実数) | 再生速度(0:遅い、1.0:元のまま) | |
pan | 0.0 | -1.0〜1.0(実数) | 音を出す左右位置(-1.0=左端、0.0=中央(省略値)、1.0=右端) | |
join | true | Boolean | trueで読み込みを待って次のタグへ進む。 | |
canskip | true | Boolean | trueでキー押下Skip中なら再生をしない | |
start_ms | 0(冒頭) | ミリ秒 | 再生の開始位置を指定する。 | |
end_ms | 末端 | ミリ秒 |
再生の終了位置を指定する。 正の値は「冒頭から何ms目を終端とするか」 負の値は「末尾から何ms手前を終端とするか」の指定。 | |
ret_ms | 0(冒頭) | ミリ秒 |
ループ戻り位置を指定する。 ループ再生中にend_ms指定位置(省略時は末尾)に到達した場合、この指定位置に戻る。 ループ再生しない(loop=false)際は無視される。 |
[stop_allse] 全効果音再生の停止
全てのサウンドを停止する。ぴたっと止める。
[stopbgm]BGM 演奏の停止
BGM 演奏を停止する。ぴたっと止める。
[stopfadese] 音声フェードの停止
音声フェードを停止する。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
buf | SE | 効果音を識別するサウンドバッファ名 | サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。 BGMと指定するとBGMの指定。 |
[stopse]効果音再生の停止
効果音再生を停止する。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
buf | SE | 効果音を識別するサウンドバッファ名 | サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。 |
[volume]音量設定
BGMや効果音の音量を指定
BGMや効果音を指定した音量にする。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
buf | SE | 効果音を識別するサウンドバッファ名 | サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。 BGMと指定するとBGMの音量設定。 | |
volume | 1.0 | 0.0〜1.0(実数) | 音量 |
[wb]BGM フェードの終了待ち
BGM フェードの終了を待つ。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
canskip | false | Boolean | trueでクリックキャンセル可能にする。 | |
global | false | Boolean | グローバルイベント待ちを有効にするか ※canskipと同時にtrueにするとエラー |
[wf]効果音フェードの終了待ち
効果音 フェードの終了を待つ。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
buf | SE | 効果音を識別するサウンドバッファ名 | サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。 | |
canskip | false | Boolean | trueでクリックキャンセル可能にする。 | |
global | false | Boolean | グローバルイベント待ちを有効にするか ※canskipと同時にtrueにするとエラー |
[wl]BGM 再生の終了待ち
BGM 再生の終了を待つ。
loop=true([playbgm]のデフォルト値)なら待たない。
利用時は【音声再生[playbgm]がjoin=true(ちなみにデフォルト)であること】を必須条件とします。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
global | false | Boolean | グローバルイベント待ちを有効にするか ※canskipと同時にtrueにするとエラー |
[ws]効果音再生の終了待ち
効果音再生の終了を待つ。
loop=trueなら待たない。 利用時は【音声再生[playse]がjoin=true(ちなみにデフォルト)であること】を必須条件とします。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
buf | SE | 効果音を識別するサウンドバッファ名 | サウンドバッファ名を変えれば同時に複数の音を操作することが出来ます。 | |
canskip | false | Boolean | trueでクリックキャンセル可能にする。 | |
global | false | Boolean | グローバルイベント待ちを有効にするか ※canskipと同時にtrueにするとエラー |
[xchgbuf]サウンドバッファの交換
二つのバッファを交換する。未再生でも再生中でも良いが、フェード中は避けること。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
buf | SE | 効果音を識別するサウンドバッファ名 | サウンドバッファ名 | |
buf2 | SE | 効果音を識別するサウンドバッファ名 | もう一つのサウンドバッファ名 |
条件分岐
[else]その他ifブロック開始
プログラム言語における、条件分岐のelse文。
属性無し。
詳細は【開発者向け情報:式の評価と条件分岐】をご覧下さい。
[elsif]別条件のifブロック開始
プログラム言語における、条件分岐のelsif文。
詳細は【開発者向け情報:式の評価と条件分岐】をご覧下さい。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
exp | y | Boolean | trueの場合処理は直後にうつる。 falseなら次の[elsif]や[else]の評価を行なう。 |
[endif]ifブロックの終端
プログラム言語における、条件分岐のendif文。
属性無し。
詳細は【開発者向け情報:式の評価と条件分岐】をご覧下さい。
[if]ifブロックの開始
プログラム言語における、条件分岐のif文。
詳細は【開発者向け情報:式の評価と条件分岐】をご覧下さい。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
exp | y | Boolean | trueの場合処理は直後にうつる。 falseなら次の[elsif]や[else]の評価を行なう。 |
ラベル・ジャンプ
[button]ボタンを表示
文字レイヤにボタンを配置する。
※選択肢として使用する場合、ジャンプ先のラベル直後には必ず[record_place]を記述して、ジャンプ直後でセーブしても正しくセーブされるようにして下さい。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | デフォルト文字レイヤ | 文字レイヤ名 | ボタンを配置する文字レイヤ | |
page | back | fore、back | ページの裏表 | |
pic | y | 画像ファイル名 | 画像ボタンとして配置する画像を指定する。 ただし画像は縦に三等分し、左から「通常時」「クリック押下時」「マウスカーソルを載せた時」の画像として表示する。 | |
text | ... | ボタンにする文字列 | 文字ボタンとして配置する文字列を指定する。 picかtextのどちらかの指定を必須とする | |
b_pic | 画像ファイル名 | 文字ボタンの背景画像が指定できる。画像の大きさにかかわらず、文字ボタンのちょうど真ん中に来るよう配置される。 | ||
width | ※100 | 1〜 | 文字ボタンの横幅を指定する。画像ボタンの場合はこの指定を無視し、画像横幅の1/3にする。 | |
height | ※30 | 1〜 | 文字ボタンの縦幅を指定する。画像ボタンの場合はこの指定を無視し、画像横幅の1/3にする。 また、文字は必ず横一列になるため、この設定値はフォントサイズと兼用になる。 | |
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: #ffffff';(※pixi.js v5.0.3 頃から色名前が使えない不具合) dropShadowBlur: 3; dropShadowDistance: 0; | |
style_hover | styleの設定+「fill: white;」を採用 | PIXI TextStyleのJSON文字列 | 文字ボタン上にマウスカーソルが乗っている状態(クリックしていない)のCSS スタイル。 設定できる値はstyleと同様。 | |
style_clicked | style_hoverの設定+「dropShadow: false;」を採用 | PIXI TextStyleのJSON文字列 | 文字ボタン上にマウスカーソルが乗っている状態(クリックしている)のCSS スタイル。 設定できる値はstyleと同様。 | |
alpha | 1.0 | 0.0〜1.0(実数) | 透過度。0(完全透明)〜0.5(半透明)〜1(不透明) | |
left top | ※ | ※ | ※詳細は[lay]を参照 | |
rotation | 0 | -180〜180 | 回転角を度単位で指定。時計回りは0~180、反時計回りは0~-180を指定。 左上を中心に回る | |
scale_x | 1.0 | 正負の実数値 | 横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転 | |
scale_y | 1.0 | 正負の実数値 | 縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転 | |
pivot_x | 0.0 | 正負の実数値 | 左上を基準として、回転や移動時の基準を指定 | |
pivot_y | 0.0 | 正負の実数値 | 左上を基準として、回転や移動時の基準を指定 | |
enabled | true | Boolean | falseだと押せないボタンとなり、クリックイベントが発生しない。 これにより文字レイヤの任意の位置に画像表示できる機能を提供する。 画像は三等分しない。イベントや効果音指定は無効だが、ヒント機能は有効。 | |
call | false | Boolean | trueの場合は[call]、falseは[jump]。 ただしcall=trueによりサブルーチンコールした場合、[return]によって「コールする前のイベント予約状態&待ち状態」に戻る。 | |
fn | どちらか、もしくは両方を指定 | 処理中のスクリプトファイル | スクリプトファイル名 | クリック時にジャンプする先 |
label | スクリプトファイルの先頭 | ラベル名(半角アスタリスク*も含む) | コール先のスクリプトファイルにあるラベル | クリック時ジャンプ先で「&sn.eventLabel」にて値を受け取れる |
global | false | Boolean | 詳細は[event]と同様。 ※ボタンを[trans]する場合はtrueにしておく | |
arg | String | 指定した場合、クリック時ジャンプ先で「&sn.eventArg」にて値を受け取れる | ||
onenter | 何もしない | ラベル名 | マウス重なり(フォーカス取得)時、指定したラベルをコールする。 必ず[return]で戻ること。 | |
onleave | 何もしない | ラベル名 | マウス重なり外れ(フォーカス外れ)時、指定したラベルをコールする。 必ず[return]で戻ること。 | |
clickse | 省略時は無音 | 音声ファイル名 | 指定すると、クリック時に効果音を再生する | |
enterse | 省略時は無音 | 音声ファイル名 | 指定すると、ボタン上にマウスカーソルが載った時に効果音を再生する | |
leavese | 省略時は無音 | 音声ファイル名 | 指定すると、ボタン上からマウスカーソルが外れた時に効果音を再生する | |
clicksebuf | SYS | サウンドバッファ名 | クリック時効果音を再生するサウンドバッファを指定する | |
entersebuf | SYS | サウンドバッファ名 | クリック時効果音を再生するサウンドバッファを指定する | |
leavesebuf | SYS | サウンドバッファ名 | クリック時効果音を再生するサウンドバッファを指定する | |
blendmode | 何もしない | ブレンドモード名("screen"など) | このボタンと下のレイヤとの重なりにおいて、 ドット単位で色のブレンド演算を行なう。 詳細はblendModeの解説を参照。 | |
hint | 表示しない | String |
指定した場合のみ、マウスカーソルを載せるとツールチップス表示する。 | |
hint_style |
background-color: #3c3225; color: white; padding: 4px 8px; border-radius: 4px; font-size: 1.2em; ほか(狭いので省略) | css | ツールチップ矩形のスタイル | |
hint_opt | { placement: "bottom", modifiers: [{fallbackPlacements: ["top", "bottom"]},], } | json | @popperjs/core の createPopper() の第三引数 | |
false:リンクの上に表示(横書き文字レイヤの動作) true:リンクの右に横倒しで表示(縦書き文字レイヤの動作) | ||||
(以下は未作成) | (以下は未作成) | |||
event_at_down | false | Boolean | true:押すだけでイベント発動(画面常駐のシステムボタンなどに) false:押して離すとイベント発動 | |
draggable | false | Boolean | true:テキスト背後の矩形をドラッグできる。 event_at_down=trueだとクリックイベントが発生しなくなる。 | |
drag_x | 0 | 画面左上を(0, 0)とする座標 | ドラッグ範囲の左上始点。 | |
drag_y | 0 | (↑と同じ) | (↑と同じ) | |
drag_w | 画面横幅 | ドラッグ範囲縦横ピクセル数 | ドラッグ範囲縦横サイズ。 | |
drag_h | 画面縦幅 | (↑と同じ) | (↑と同じ) | |
dragmove_fn | ... | ... | ... | ドラッグ中にサブルーチンコールする先。 指定方法は[jump]と同様 |
dragmove_label | ... | ... | ... | (↑と同じ) |
dragmove_arg | String | 指定した場合、ドラッグ中コール先で「&sn.eventArg」にて値を受け取れる |
[call]サブルーチンコール
スクリプト処理の現在位置をコールスタックに積み、ジャンプする。
ジャンプ先での[return]により本タグの次の位置に戻る事が出来る。
※マニアックな話ですが、あらゆるタグの中で唯一「通常、既読としない」タグです。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
fn | どちらか、もしくは両方を指定 | 処理中のスクリプトファイル | スクリプトファイル名 | コール先のスクリプトファイル [call fn=ext_*]のようにワイルドカードをサポート。マッチするスクリプトを順不同にコールする。 (ワイルドカードは後方のみ) |
label | スクリプトファイルの先頭 | ラベル名(半角アスタリスク*も含む) | コール先のスクリプトファイルにあるラベル | |
count | false | Boolean | タグ位置を既読とするか | |
clear_local_event | 何もしない | Boolean | trueの場合は[clear_event]を行なってからコールする。 |
[jump]シナリオジャンプ
指定位置のスクリプトにジャンプする
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
fn | どちらか、もしくは両方を指定 | 処理中のスクリプトファイル | スクリプトファイル名 | コール先のスクリプトファイル |
label | スクリプトファイルの先頭 | ラベル名(半角アスタリスク*も含む) | コール先のスクリプトファイルにあるラベル | |
count | true | Boolean | タグ位置を既読とするか |
ラベルは例えば以下のように使います。
*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 | どちらかを指定 | なにもしない | Boolean | trueでページ状態記録をクリアする |
to | prev または next |
prev:ひとつ前のページに戻る next:ひとつ次のページに進める |
[pop_stack]コールスタック破棄
コールスタックを一つ破棄する
極力使用しないコーディングを推奨します。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
clear | false | Boolean | true:全て破棄する。空でもエラーを出さない false:スタックを一つ破棄する。空の場合はエラーメッセージ&アプリ停止 |
[return]サブルーチンから戻る
コールスタックに積まれているジャンプ先に戻るようなジャンプをする。
最後に積んだコールスタックを一つ破棄する。
マクロ内で実行した場合はマクロを脱出する。
fn・label属性で戻り先を上書き指定できる。(マクロ内からジャンプしたいときなど)
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
fn | どちらか、もしくは両方を指定 | 処理中のスクリプトファイル | スクリプトファイル名 | 戻り先のスクリプトファイル |
label | スクリプトファイルの先頭 | ラベル名(半角アスタリスク*も含む) | 戻り先のスクリプトファイルにあるラベル |
マクロ
[bracket2macro] 括弧マクロの定義
属性textを持つマクロやタグを、任意の二つの文字を括弧とし、括弧で囲った記述で代用できるよう
例 …… [bracket2macro name=title text=⦅⦆]
(訂正:「任意の二つの文字」は特定の半角文字じゃなくてもよいです)
※適用範囲について
本タグより前にロードされたスクリプトファイルには適用されません。
またスクリプトファイルに本タグが記述された場合、本タグより前に出現した半角文字にも適用されません。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
text | y | 特定の文字 | 括弧にする任意の二つの文字。 マクロに出来るのは英文字、空白、;、[、]、、=、&、|、《、》以外のみ。 正規表現で言えば /[\w\s;[]=&|《》]/ 以外。 一文字マクロや定義済みの括弧文字は使用できない。 | |
name | y | 定義済みのマクロ名 | 半角文字に割り当てるマクロ名を指定。 組み込みタグか、[macro]による定義済みマクロ名で無ければならない。 組み込みタグやマクロは属性textだけを指定しても問題なく動作し、 それを処理すること。渡される属性textは空文字の場合もある。 |
[char2macro] 一文字マクロの定義
属性無しのマクロやタグを、半角文字の記述で代用できるよう定義する
本タグより前にロードされたスクリプトファイルには適用されません。
またスクリプトファイルに本タグが記述された場合、本タグより前に出現した半角文字にも適用されません。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
char | y | 特定の半角文字 | マクロにする半角文字。 マクロに出来るのは英文字、空白、;、[、]、、=、&、|、《、》以外のみ。 正規表現で言えば /[\w\s;[]=&|《》]/ 以外。 括弧文字や定義済みの一文字マクロは使用できない。 | |
name | y | 定義済みのマクロ名 | 半角文字に割り当てるマクロ名を指定。 組み込みタグか、[macro]による定義済みマクロ名で無ければならない。 |
[endmacro]マクロ定義の終了
[macro]と[endmacro]に囲まれた部分をマクロとして定義する。
[macro]マクロ定義の開始
[macro]と[endmacro]に囲まれた部分をマクロとして定義する。
定義したマクロは既存のタグと同様に使用できる。
渡した属性は、マクロ側で「mp:」「%」スコープにより参照できる。
(ただし式では %a という記述はできず、mp:a 記述のみサポートする)
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | マクロ名 | String | 既存のタグやマクロと重複しないマクロ名 |
nowarn_unused | false(警告する) | Boolean |
拡張機能の未使用マクロ警告を抑制、表示しないようにする。 「使われなくても構わないマクロ」であると示す。 SKYNovelの動作には影響なく、拡張機能のみが使用する。 | |
sum | String |
拡張機能に表示(※1)するこのマクロの概要。改行記述(※2)が出来る。 SKYNovelの動作には影響なく、拡張機能のみが使用する。 | ||
%〜(任意のマクロ引数名) | (コメントで解説) |
拡張機能に表示(※1)するこのマクロの引数説明。 その見た目通り、マクロ定義時の変数名に沿っている。(mp:〜 と同様) 記述に文法がある(※3)。 SKYNovelの動作には影響なく、拡張機能のみが使用する。 | ||
detail | String |
拡張機能に表示(※1)するこのマクロの詳細説明。改行記述(※2)が出来る。 SKYNovelの動作には影響なく、拡張機能のみが使用する。 |
※1 マクロの概要や引数の説明や詳細説明を以下に表示する
・リファレンス検索パレット(【コマンドパレット】-【リファレンス検索パレットを開く】)・アウトライン(アウトラインビューに表示)
・マウスホバー(タグ・マクロ名あたりにマウスカーソルを重ねる)
・コード補完機能(スクリプト中で [ や = や半角空白入力時に表示される入力候補)
・引数の説明(スクリプト中で [ や = や半角空白入力時に表示されるホバー)
※2 改行記述について
【\n】文字を入れると、・一行しか表示できない状況(コード補完機能によるタグ選択中)では【\n】手前までの一行目だけ表示
・複数行表示可能なホバーチップスなどでは、改行して全て表示する
※3 引数説明記述について
書き方があるので、要素を分解して解説する。例)%no_voice_stop?='Boolean|false|trueなら改ページ後、音声(バッファ名「音声」の効果音)をフェードアウトしない'
- 【%】
この属性が引数説明記述であることを示す。
- [macro]タグでのみ、「%」で始まる属性は、そのマクロ使用時引数の同名属性解説を示す
- その見た目通り、マクロ定義時の変数名に沿っている。(mp:〜 と同様)
- 【no_voice_stop】
属性名
- 【余談】SKYNovel 1.36.0 以降は漢字や平仮名なども属性名に使用できる
- 【?】
省略記号
- ? を書くと【省略可能な属性】であると示す。
- ? を書かないと必須属性。
【余談】TypeScriptの省略可能なプロパティを意味する「?」と同様の意味合い
- 【=】
- 【Boolean|false|trueなら〜】
属性値はその他の項目。値は | で区切られた複数の項目になっている
- 【Boolean】
- 一項目:値域・型
- 例は true か false のみの値を持つ「Boolean」が指定されている。
- 他に【String】【Number】など。タグリファレンスを眺めると参考になる。
- 【false】
- 二項目:省略時の値
- この項目そのものも省略してもよいが、【||】表記にする
- 【trueなら〜】
- 三項目:概要
- 【Boolean】
しおり
[copybookmark]しおりの複写
しおりデータを複写する
セーブデータパスに to, from 属性と同名のフォルダがあればコピーする
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
from | y | 数値 | 複写元のしおり番号 | |
to | y | 数値 | 複写先のしおり番号 |
[erasebookmark] しおりの消去
しおりデータを削除する
セーブデータパスに place 属性と同名のフォルダがあれば削除する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
place | y | 数値 | 処理対象のしおり番号 |
[load]しおりの読込
しおりデータを読み込み、スクリプト処理を再開する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
place | y | 数値 | 処理対象のしおり番号 | |
fn | ... | ... | ... | ロード後最初にしたい共通処理をコールする(処理は[return]で終わらせる)。指定方法は[jump]と同様。 ただし指定する際、fnとlabelは両方指定しなければならない。 |
[record_place] セーブポイント指定
本タグの位置を、スクリプト読み込み時に再開する位置として設定する。
本タグの位置を、スクリプト読み込み時に再開する位置として設定する。
本タグで「しおりを挟み」、[save]タグで実際にデータをセーブするイメージ。
※マクロやサブルーチン内に記述された場合、最初に積まれたコールスタック位置をセーブポイントとする。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | 全てのレイヤ | 保存対象レイヤ名(カンマ区切りで複数可能) | しおりに状態を保存するレイヤ。Save/Load画面レイヤや設定画面レイヤなど、保存すべきでないレイヤを除いて指定すべき | |
reset_sound | true | Boolean | 全てのサウンドを停止・再度再生開始するか |
[reload_script] スクリプト再読込
現在処理中のスクリプトをリロードする。
属性無し。
現在処理中のスクリプトをリロードする。
実行位置は[record_place]によるセーブポイントまで戻って再開する。
※スクリプトを大幅に変えた後だと、正常に再開できない場合があります。
[save]しおりの保存
しおりデータを保存する。
しおりデータを保存する。
読み込み時に再開するスクリプトの位置は最後に[record_place]をコールした位置。
指定した place が sys:const.sn.save.place と同じ場合、const.sn.save.place を +1 する
。
[record_place]がゲーム状態(レイヤ状態など)をバッファに退避し、
[save]は指定しおりに書き出す機能。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
place | y | 数値 | 処理対象のしおり番号 | |
path | 従来通り SharedObjectに保存 | フォルダパス | 指定した場合、しおりをファイルとしてフォルダパス下に保存する。 |
画面揺らし
[quake]画面を揺らす
画面全体を揺らす
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
time | y | ミリ秒数 | 揺らす時間 | |
hmax | 10 | Integer | 横方向の最大揺らし幅。幅はランダム値を取る | |
vmax | 10 | Integer | 縦方向の最大揺らし幅。幅はランダム値を取る | |
ease | Linear.None(イージング無し) | イージング名 | 揺れのイージング(値の変化の仕方)を指定する。 イージングの変化はこちらの図(またはこちら)が分かりやすい。 指定できる値は[tsy]を参照 |
[stop_quake]画面揺らし中断
画面揺らしを中断する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
canskip | true | Boolean | クリックなど(→詳細は[waitclick])でウエイトをキャンセルできるか |
[wq]画面揺らし終了待ち
画面揺らしの終了を待ち、再開する。
[event]などでイベントが登録されていても、イベント発生待ちを行わない。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
canskip | true | Boolean | クリックなど(→詳細は[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] プラグインの読み込み
プラグインとして読み込む
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
fn | y | ファイル名 | 読み込むプラグインのファイル名 (拡張子はcssのみ、Webフォント用) | |
join | true | Boolean | trueで読み込みを待って次のタグへ進む。 |
[navigate_to]URLを開く
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
url | y | URL文字列 | 開くURL |
[snapshot]スナップショット
アプリ表示部分全体を画像として保存する
画面スナップショットをダウンロードフォルダに保存する。
ファイル名にはプロジェクト名と日時どが追加される。
※文字の表示とスナップショットは、厳密には同じではないので注意。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | 全てのレイヤ | レイヤ名(半角カンマ区切りで複数レイヤを指定可能) | ||
page | fore | fore、back | ページの裏表 | |
fn | snapshot | String | ※保存するファイル名 省略時はデスクトップに保存 保存する画像フォーマット(png、jpg)は拡張子で指定 | |
width | アプリ表示部分の横サイズ | 1〜 | 保存する画像の横ドットサイズ。 元のサイズと異なる場合は拡大・縮小される。 | |
height | アプリ表示部分の縦サイズ | 1〜 | 保存する画像の縦ドットサイズ。 元のサイズと異なる場合は拡大・縮小される。 | |
smoothing | false | Boolean | 拡大・縮小保存される場合、スムージングするか | |
b_color | config.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]タイトル指定
アプリウインドウのタイトル文字列を設定する。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
text | y | String | タイトル文字列 |
[toggle_full_screen] 全画面状態切替
呼び出す度にアプリの全画面/ウインドウモードを切り替えます。
現在の状態は文字列変数「tmp:const.sn.displayState」で分かる。trueならフルスクリーン
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
key | イベント登録せずモード切替 | イベントのキー名※1 | イベントを発生させるトリガーイベントを予約する。 key属性の値は[event]を参照 |
[update_check] 更新チェック機能
ネットにアプリの更新を確認し、ダウンロードもサポートする
アプリの最新バージョンをネットで確認する。(アプリ版でのみ動作)
処理は非同期に行われ、更新があった時のみ更新確認ウインドウが表示される。
ダウンロードフォルダにアプリパッケージの dmg(インストーラー exe)をダウンロードする。
開発中はデバッグスイッチ devtool・debugLog を有効にすると処理状況やエラーメッセージなども見られて便利です
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
url | y | String | latest(-mac).ymlや、dmg(exe)を置いたWebサーバーのフォルダURLを指定する。終端は「/」をつけること。 |
現在二つの形式をサポートしていますが、前者の新しい方に移行して下さい。
【新】_index.json 方式
CPU アーキテクチャ違いにも対応し、latest.yml などを手変更する必要がなくなりました。(各社のビジネス上の都合により、同じOSでも違う形式があります。どちらも生成してアップデート機能も準備してあげればよいと思います)
他はファイル名を暗号化したアプリファイル(OS + Arch + 乱数文字列)です。
(内容に変更なくても、生成するたびに乱数文字列とファイル名は変わります)
シンプルなサンプルでは Github にアップロードしています。
例えば _index.json はブラウザからも見える状態です。念のため確認しておきましょう。
Githubの制限でファイルサイズの最大は 100MB 以内のため、
Mac は 空の dmg にしています。
Winは収まっているので実物です。
Linuxは 100MB 越えなので上げられていません。
スクリプト冒頭で [update_check] を呼んでいます。URLは _index.json などをアップした URL です。
ご自身で使用する際はご自身で用意した Webサーバーの URL に変更するわけです。
ia32 なら ia32、x64 なら x64。実行した旧アプリと同じ 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」ファイル名を変える。(サーバーにアップしてから変えても良さげ)
「~.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.【アプリ版を起動】して試してみる。バージョン番号が違う場合のみ、更新チェック機能によるダイアログが表示される。
1.【exe作成】で build/ 下に「〜.exe」と「latest.yml」などが生成される。
2.「latest.yml」を開き、書いてあるファイル名に合わせるように「〜.exe」ファイル名を変える。(サーバーにアップしてから変えても良さげ)
「~.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 | 何もしない | Boolean | trueを指定すると、アプリウインドウをデスクトップの中央に移動する | |
x | 何もしない | 画面左上を(0, 0)とする座標 | デスクトップにおけるアプリウインドウの横位置を指定 | |
y | 何もしない | (↑と同じ) | デスクトップにおけるアプリウインドウの縦位置を指定 |
デバッグ・その他
[dump_lay]レイヤのダンプ
レイヤの内容をデバッグ表示する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
layer | 全てのレイヤ | レイヤ名 | デバッグ表示するレイヤ名を指定。半角カンマ区切りで複数レイヤを指定可能 |
[dump_stack]スタックのダンプ
[call]等によるコールスタックの内容をデバッグ表示する
[dump_val]変数のダンプ
変数の内容をデバッグ表示する
[log] ログ出力
ダウンロードフォルダにテキスト出力する(追記ではなく上書き。追記する。出力日時・分・スクリプト名や行番号やプロジェクト名も出力
Web版でもログファイルをダウンロードします。ただし連続だと間隔が開いてないと失敗します。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
text | y | String | ログ出力する値 |
[trace]デバッグ表示へ出力
属性をデバッグ表示する
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
text | y | String | デバッグ表示する値 |