BluesNovel タグリファレンス
実装状況は 🟡 実装中・機能未達/🔴 未実装のみ表示(無印=実装済)。本家 SKYNovel との相違は各タグの囲みに記載。
変数操作
[clearsysvar] システム変数の全消去
sys:変数を全消去。削除すると言うより、初期化する
属性なし
[clearvar] ゲーム変数の全消去
save:変数を全消去。削除すると言うより、初期化する
属性なし
[let_abs] 絶対値
絶対値を求める。結果を変数に代入する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 代入変数名 | 代入する変数 | |
| text | 必須 | 実数 | 絶対値を求める数 | |
| cast | 出来るだけ数値変換 | num、int、uint、bool、str | 値をセットする際の型。(詳細は[let]を参照) |
[let_char_at] 文字列から一字取得
文字列中の一文字を取り出す。結果を変数に代入する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 代入変数名 | 代入する変数 | |
| text | 必須 | 文字列 | 元になる文字列 | |
| pos | 0 | 0(先頭)〜 | 何番目の文字を取り出すか。0(先頭) | |
| cast | 実数 | 出来るだけ数値変換 | num、int、uint、bool、str | 値をセットする際の型。(詳細は[let]を参照) |
[let_index_of] 文字列で検索
文字列内を検索し、文字列内の start 以降で、最初に val が見つかった位置を返す。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 代入変数名 | 代入する変数。-1の場合は見つからなかった | |
| text | 必須 | 文字列 | 元になる文字列 | |
| val | 必須 | 文字列 | 探す文字列 | |
| start | 0 | 0〜 | 検索を開始する位置。0(先頭) | |
| cast | 実数 | 出来るだけ数値変換 | num、int、uint、bool、str | 値をセットする際の型。(詳細は[let]を参照) |
[let_length] 文字列の長さ
文字列の長さを求める。結果を変数に代入する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 代入変数名 | 代入する変数 | |
| text | 必須 | 文字列 | 長さを求める文字列 | |
| cast | 実数 | 出来るだけ数値変換 | num、int、uint、bool、str | 値をセットする際の型。(詳細は[let]を参照) |
[let_ml] インラインテキスト代入
[let_ml]〜[endlet_ml]で囲んだ複数行テキストを代入する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 代入変数名 | 代入する変数 |
[let_replace] 正規表現で置換
文字列を正規表現で検索し、マッチする箇所を文字列で置き換える。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 代入変数名 | 代入する変数 | |
| text | 必須 | 文字列 | 置換対象の文字列 | |
| reg | 必須 | 文字列 | 正規表現 | |
| flags | (なし) | 文字列 | 正規表現のフラグ | |
| val | 必須 | 文字列 | 置き換える文字列 | |
| cast | 実数 | 出来るだけ数値変換 | num、int、uint、bool、str | 値をセットする際の型。(詳細は[let]を参照) |
[let_round] 四捨五入
四捨五入する。結果を変数に代入する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 代入変数名 | 代入する変数 | |
| text | 必須 | 実数 | 四捨五入する数 | |
| cast | 実数 | 出来るだけ数値変換 | num、int、uint、bool、str | 値をセットする際の型。(詳細は[let]を参照) |
[let_search] 正規表現で検索
文字列内を正規表現で検索し、最初に val が見つかった位置を返します。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 代入変数名 | 代入する変数 | |
| text | 必須 | 文字列 | 検索対象の文字列 | |
| reg | 必須 | 文字列 | 正規表現 | |
| flags | (なし) | 文字列 | 正規表現のフラグ | |
| cast | 実数 | 出来るだけ数値変換 | num、int、uint、bool、str | 値をセットする際の型。(詳細は[let]を参照) |
[let_substr] 文字列から抜きだし
文字列の一部を取り出す。結果を変数に代入する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 代入変数名 | 代入する変数 | |
| text | 必須 | 文字列 | 元になる文字列 | |
| pos | 0 | 整数 | 何番目の文字から取り出すか。 負の値なら「後ろから何個目か」。0(先頭)が先頭、-1が最後の文字。 【pos=-3 len=all】とすると、後ろから3文字を取り出す | |
| len | 1 | 文字数、または all | 何文字取り出すか。all でpos以降の全て | |
| cast | 実数 | 出来るだけ数値変換 | num、int、uint、bool、str | 値をセットする際の型。(詳細は[let]を参照) |
[let] 変数代入・演算
変数に値を代入する
変数については「BluesNovel 組み込み変数」を参照して下さい
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 代入変数名 | 代入する変数 | |
| text | 必須 | 文字列 | セットする値 | |
| cast | 出来るだけ数値変換 | num、int、uint、bool、str | 値をセットする際の型。 num……数値(実数)。「01」は数値の1となる。 int……数値(符合付き整数) uint……数値(符合なし整数) bool……true、false 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 | 必須 | 未使用のレイヤ名 | レイヤ名を指定する。 未使用のレイヤ名でなければエラー&アプリ停止 | |
| class | 必須 | grp、txt、addLayClsで登録したcls名 | レイヤの種類。grp(画像レイヤ)、txt(文字レイヤ)、またはプラグイン登録済みのcls | |
| (その他) | [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指定で両面) | |
| false | true、false | |||
| clear_filter | false | true、false | true:フィルタもクリア |
[finish_trans] トランス強制終了
[trans]で開始したトランスをすぐ終了させる
属性無し。
[trans]で開始したトランス終了を待たず、すぐ終了させる。
終了次第、スクリプト処理を次へ進める
[lay] レイヤ設定(共通)
レイヤに各種設定を行う。
レイヤの種類ごとに使用できる属性もあるが、共通な属性をここで解説する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 必須 | レイヤ名 | 処理対象のレイヤ | |
| page | fore | fore、back | ページの裏表 | |
| visible | 現在値 | true、false | true:表示、false:非表示 | |
| alpha | 1.0 | 0.0〜1.0 | レイヤの透過度。0(完全透明)〜0.5(半透明)〜1(不透明) | |
| blendmode | 何もしない | ブレンドモード名("screen"など) | このレイヤと下のレイヤとの重なりにおいて、 ドット単位で色のブレンド演算を行なう。 詳細はblendModeの解説を参照 | |
| pos | c | c・l・r・横座標・stay | 主に立ち絵に使う。横と縦座標を同時に設定する。left/center/right等より優先する。横座標は指定した値(文字cの場合は画面中央、lは左寄り、rは右寄り)に設定し、画像下端を画面下端に接するように自動計算する。 stayを指定すると位置を変えない | |
| left | 0 | 実数 | レイヤやボタン左端の画面左端からの距離 | |
| center | 0 | 実数 | レイヤやボタン中央の画面左端からの距離 | |
| right | 0 | 実数 | レイヤやボタン右端の画面左端からの距離 | |
| s_right | 0 | 実数 | レイヤやボタン右端の画面右端からの距離 | |
| top | 0 | 実数 | レイヤやボタン上端の画面上端からの距離 | |
| middle | 0 | 実数 | レイヤやボタン中央の画面上端からの距離 | |
| bottom | 0 | 実数 | レイヤやボタン下端の画面上端からの距離 | |
| s_bottom | 0 | 実数 | レイヤやボタン下端の画面下端からの距離 | |
| width | 自然サイズ | 1〜;横幅 | レイヤの横幅。画像レイヤは画像を指定サイズへ拡縮(縦横比は無視)、文字レイヤはレイヤ外形の横幅(box-sizing: border-box。pl/pr はこの内側)。heightと片方だけ指定しても、もう片方は自然サイズを保つ | |
| height | 自然サイズ | 1〜;縦幅 | レイヤの縦幅。画像レイヤは画像を指定サイズへ拡縮(縦横比は無視)、文字レイヤはレイヤ外形の縦幅(box-sizing: border-box。pt/pb はこの内側)。widthと片方だけ指定しても、もう片方は自然サイズを保つ | |
| 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 | 何もしない | true、false | true:レイヤを最前面に移動する | |
| index | 何もしない | 0〜 | レイヤをindexで指定したインデックスに移動する。 0がもっとも背後。レイヤを重ねるたびに1加算したindexになる | |
| dive | 何もしない | レイヤ名 | レイヤをdiveで指定したレイヤのすぐ後ろに潜り込ませる | |
| filter | なにもしない | フィルター名 | レイヤに指定するフィルター名。その他必要な属性は適宜指定する。詳細は[add_filter]参照。ただし[add_filter]のような追加ではなく上書き | |
| enable_filter | true | true、false | フィルターを有効にするか |
blendModeの解説
分家はレイヤ合成を CSS の mix-blend-mode で行うため、CSS <blend-mode>
全種(+ plus-lighter / plus-darker)を指定できます。本家は
normal / add / multiply / screen の4種のみ。
add は CSS に同名が無いため plus-lighter(加算合成)に読み替えます。
CSS の mix-blend-mode に無い値(減算 subtract など、pixi の
src_in ・ *_npm 等の合成オペレータ)はエラーになります。
| blendmode 属性の値 | CSS mix-blend-mode | Photoshop ブレンドモード名 | コメント |
|---|---|---|---|
| normal | normal | 標準 | 表示オブジェクトは、背景の前に表示されます。(なにもしない) |
| add | plus-lighter | 加算 | 表示オブジェクトの要素カラーの値を背景色に加算します |
| plus-lighter | plus-lighter | 加算 | add の別名(CSS 名そのまま) |
| plus-darker | plus-darker | 加算した上で 1 を引く(暗い側の加算合成) | |
| multiply | multiply | 乗算 | 要素カラー同士を乗算して正規化し、色を暗くします |
| screen | screen | スクリーン | 色の補数同士を乗算してブリーチ効果を得ます |
| overlay | overlay | オーバーレイ | 背景の明暗に応じて multiply / screen を切り替えます |
| darken | darken | 比較 (暗) | 暗い方(値が小さい方)の色を選択します |
| lighten | lighten | 比較 (明) | 明るい方(値が大きい方)の色を選択します |
| color-dodge | color-dodge | 覆い焼き (カラー) | 背景を明るくして前景色を反映します |
| color-burn | color-burn | 焼き込み (カラー) | 背景を暗くして前景色を反映します |
| hard-light | hard-light | ハードライト | 前景の明暗に応じて screen / multiply を切り替えます |
| soft-light | soft-light | ソフトライト | ハードライトを柔らかくしたもの |
| difference | difference | 差の絶対値 | 要素カラーの差の絶対値をとります |
| exclusion | exclusion | 除外 | 差の絶対値を柔らかくしたもの |
| hue | hue | 色相 | 前景の色相+背景の彩度・輝度 |
| saturation | saturation | 彩度 | 前景の彩度+背景の色相・輝度 |
| color | color | カラー | 前景の色相・彩度+背景の輝度 |
| luminosity | luminosity | 輝度 | 前景の輝度+背景の色相・彩度 |
[lay] 文字レイヤ設定
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| b_color | (↑と同じ) | 色指定。0x000000など | テキスト背後の矩形色。初期値は 0x000000(黒) | |
| b_alpha | (↑と同じ) | 実数:0.0(透明)〜1.0(不透過) | テキスト背後の矩形不透明度。実際の不透明度はb_alpha × sys:TextLayer.Back.Alpha(設定画面の「バック不透明度」)になる。表示しない場合は0を指定。初期値は 0 | |
| b_alpha_isfixed | 現在値 | true、false | true:テキスト背後の矩形不透明度を、「b_alpha属性と sys:TextLayer.Back.Alpha の掛け算とせず」、b_alpha属性値そのものにする。(これは2017/2/13以前の仕様) | |
| b_pic | (↑と同じ) | 画像ファイル名 | 文字レイヤ背後の枠画像を指定する。b_alphaの影響を受ける。指定するとレイヤ外形が枠画像の自然サイズへ自動調整される(width/heightの明示があればそちらが勝つ)。(これを指定するとb_colorは無視される) | |
| back_clear | 現在値 | true、false | true:背景(b_color/b_alpha/b_alpha_isfixed/b_pic)を初期状態へ戻す。b_pic=等と同時に指定した場合、他のb_*属性は無視される | |
| pl | 16px | 実数(px) | 文字表示領域の左内側余白(padding-left)。box-sizing: border-box(本家準拠)なので width はレイヤ外形の幅で、文字表示領域はそこから pl+pr を引いたぶん | |
| pr | 16px | 実数(px) | 文字表示領域の右内側余白(padding-right) | |
| pt | 16px | 実数(px) | 文字表示領域の上内側余白(padding-top) | |
| pb | 16px | 実数(px) | 文字表示領域の下内側余白(padding-bottom) | |
| break_fixed | 現在値(初期 false) | true、false |
true:クリック待ちマークを break_fixed_left/break_fixed_top の固定位置に表示false:最後に表示した文字の次(本文の流れの中)に表示 (bluesnovel)対応:true のとき待ちマーカーを絶対配置する(座標原点は文字表示領域の左上=padding の内側)。false(既定)は従来どおり最後の文字の次。 [clear_lay]/[clear_text]では変更しない(本家 Hyphenation と同じ)
| |
| break_fixed_left | 現在値(初期 0) | 整数(px) | break_fixed=true のときのマーカー表示位置。文字表示領域の左上が原点 | |
| break_fixed_top | 現在値(初期 0) | 整数(px) | 同上(縦) | |
| 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、even、1ruby | ルビ揃えを指定する。 left ……(肩付き)先頭親文字から、ルビ間は密着 center ……(中付き)センター合わせ、〃 right ……(右/下揃え)末尾親文字から、〃 justify ……(両端揃え)先頭から末尾親文字間に、ルビ間は均等にあける 121 ……(1-2-1(JIS))ルビの前後を比率1、ルビ間を比率2であける even ……(均等アキ)ルビの前後、ルビ間も均等にあける 1ruby ……(1ルビ文字アキ)ルビの前後をルビ一文字空け、ルビ間は均等にあける 初期値は center。 ※親文字よりルビの方が長い場合は、親文字に対する「中付き」表示になる →参考(機能ギャラリー・直感的なルビ文法) ルビ記法内の 位置|ルビ指定(傍点はcenter|ヽ扱い)があればそちらが優先する
| |
| sesame | 現在値 | 文字列 | 傍点の文字を変更する |

| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| in_style | 現在値 | 文字出現演出名 | [ch_in_style]で定義した文字出現演出名。このレイヤに以降表示される文字ぜんぶに効く([clear_text]をまたいで持続) | |
| out_style | 現在値 | 文字消去演出名 | [ch_out_style]で定義した文字消去演出名 | |
| ffs | 現在値 | (コメントで解説) |
CSS の文字詰め font-feature-settingsでの「"pwid"」「"palt"」など指定できる。 (styleで指定してはいけない) (二重引用符・ダブルコーテーションマークも必要なので、【ffs='"pwid"'】と指定する。 これは【ffs='"palt" 1, "trad" 1'】という指定も CSS にできるため) 初期値は指定なし (bluesnovel)1文字ずつ当てるため、対象外にしたい文字は noffsで外す→【参考】文字詰めできるCSSのfont-feature-settingsが凄い! 日本語フォントこそ指定したい自動カーニング - ICS MEDIA | |
| noffs | 現在値 | 文字列 |
font-feature-settingsの対象としない文字を指定できる。複数指定可能。 デフォルト値は指定なし。(ただしインライン画像やクリック待ち記号表示のため、全角空白は必ず指定に含まれる) | |
| kinsoku_sol | 何もしない | 文字列 |
行頭禁則の禁則処理文字を変更できる。対象文字を列挙した文字列を指定。 レイヤクリアしても変更しない。 デフォルト値は以下の通り。 、。,.)]}〉」』】〕”〟ぁぃぅぇぉっゃゅょゎァィゥェォッャュョヮヵヶ!?!?‼⁉・ーゝゞヽヾ々 | |
| kinsoku_eol | 何もしない | 文字列 |
行末禁則の禁則処理文字を変更できる。対象文字を列挙した文字列を指定。 レイヤクリアしても変更しない。 デフォルト値は以下の通り。 [({〈「『【〔“〝 | |
| kinsoku_dns | 何もしない | 文字列 |
分割禁止の禁則処理文字を変更できる。対象文字を列挙した文字列を指定。 レイヤクリアしても変更しない。 デフォルト値は以下の通り。 ─‥… | |
| bura | 現在値 | true、false |
trueでぶら下げ有効。行末尾に二文字分のぶら下げ専用領域を確保する 後方互換性のため、デフォルトは false(無効)既存の動作 追い出しよりぶら下げを優先 行頭禁則もぶら下げる 二文字以上のぶら下げ・行頭禁則はあきらめて行頭に文字を続けていく (bluesnovel)ブラウザ標準の行分割・禁則は使わず自前計算するため全ブラウザで同じ結果になるが、副作用としてブラウザの単語区切りも効かなくなり、英単語も途中で分割されうる | |
| kinsoku_bura | 何もしない | 文字列 |
ぶら下げの禁則処理文字を変更できる。対象文字を列挙した文字列を指定。 レイヤクリアしても変更しない。 デフォルト値は以下の通り。(行頭禁則と同じ) 、。,.)]}〉」』】〕”〟ぁぃぅぇぉっゃゅょゎァィゥェォッャュョヮヵヶ!?!?‼⁉・ーゝゞヽヾ々 |
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| 🔴 (以下は凍結) | ドラッグ・スクロール系。デザインモード(Moveable)再開時にまとめて着手。それまで bluesnovel 未対応・凍結(この節が空になれば文字レイヤ [lay] は ) | |||
| draggable | false | true、false | true:テキスト背後の矩形をドラッグできる | |
| drag_x | 0 | 画面左上を原点とする座標 | ドラッグ範囲の左上始点 | |
| drag_y | 0 | (↑と同じ) | (↑と同じ) | |
| drag_w | 画面横幅 | ドラッグ範囲縦横ピクセル数 | ドラッグ範囲縦横サイズ | |
| drag_h | 画面縦幅 | (↑と同じ) | (↑と同じ) | |
| dragmove_fn | ... | ... | ... | ドラッグ中にサブルーチンコールする先。 指定方法は[jump]と同様 |
| dragmove_label | (↑と同じ) | (↑と同じ) | (↑と同じ) | (↑と同じ) |
| dragmove_arg | 文字列 | 指定した場合、ドラッグ中コール先で「&sn.eventArg」にて値を受け取れる | ||
| h_scroll | ピクセル数 | 横スクロールさせる量 | ||
| v_scroll | ピクセル数 | 縦スクロールさせる量 | ||
| mouse_wheel_enabled | true、false | マウスホイールでスクロール許可するか否か |
[lay] 画像レイヤ設定
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| fn | 必須 | 何もしない | 画像ファイル名 |
基本画像・動画ファイルを指定する 基本画像ファイルを指定する。複数指定時はこの属性一つで基本画像(先頭)と差分名称(二つめ以降)を指定できる。 動画ファイルを指定時はロードしてすぐに動画再生が始まる。 ※ただし、ブラウザ版では「ページロード後に一度だけでもクリック(クリック待ちでもボタンでも可)されていないと再生させない」というブラウザの挙動があるため、再生する前のいつでもいいのでクリックの機会を作ること。 ※ ムービー再生されない場合、DevTools に【Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.】のようなエラーが出ていればこの件。 |
| 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] | |
| 🔴 (以下は凍結) | ドラッグ系。デザインモード(Moveable)再開時にまとめて着手。それまで bluesnovel 未対応・凍結(この節が空になれば画像レイヤ [lay] は ) | |||
| draggable | false | true、false | true:テキスト背後の矩形をドラッグできる | |
| drag_x | 0 | 画面左上を原点とする座標 | ドラッグ範囲の左上始点 | |
| drag_y | 0 | (↑と同じ) | (↑と同じ) | |
| drag_w | 画面横幅 | ドラッグ範囲縦横ピクセル数 | ドラッグ範囲縦横サイズ | |
| drag_h | 画面縦幅 | (↑と同じ) | (↑と同じ) | |
| dragmove_fn | ... | ... | ... | ドラッグ中にサブルーチンコールする先。 指定方法は[jump]と同様 |
| dragmove_label | ... | ... | ... | (↑と同じ) |
| dragmove_arg | 文字列 | 指定した場合、ドラッグ中コール先で「&sn.eventArg」にて値を受け取れる |
[trans] ページ裏表を交換
裏ページを表ページとクロスフェードする。
クロスフェードを開始すると、終了を待たずに次のタグへと処理を進める。
終了を待ちたい場合は[wt]を使用する。
クロスフェード終了後は元・裏ページから元・表ページに内容をコピーし、同じ内容になる。
演出中に次の[trans]を実行すると、まず前の演出を終わらせてから改めて開始する。
ルール画像は白黒かグレースケールを推奨。(見た目と動きが一致する)
また[trans]~[wt]間で文字表示や[ch]は動作未定義、非推奨。
[trans]終了を待たず何かをするのは避けた方がよいでしょう。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 全てのレイヤ | レイヤ名(カンマ区切りで複数可能) | クロスフェードするレイヤ。指定以外のレイヤは変化させない | |
| time | 0 | 0〜;ミリ秒 | 変化にかける時間 | |
| rule | 画面全体ピクセルで同時にクロスフェードする | 画像ファイル名 | 指定した場合はルール画像として、ピクセル単位でクロスフェードするタイミングをずらす。 ルール画像の黒いピクセル(と同じ位置にあるピクセル)が先に処理され、白が最後になる。ステージ全面へ引き伸ばして使う | |
| vague | 0.04 | 0.0〜1.0 | トランジション期間全体を1とした値。表レイヤと裏レイヤの境界を曖昧にぼかす度合い | |
| glsl | プリセット名/シェーダー記述言語GLSL |
プリセット名(blur=ぼかしながら消える/mosaic=ブロックが粗くなりながら消える。bluesnovel独自)を書くとそのシェーダが使われます。名前でなければGLSLソースそのものとして扱います。動作サンプル:機能ギャラリー【[フラグメントシェーダで[trans]](https://famibee.github.io/SKYNovel_gallery/?cur=glsl_slide)】 渡る uniform / varying(プリセットも生ソースも同じ): 【vTextureCoord】がピクセルの位置(画面左上が原点)、 【uSampler】が表ページ画像、 【tick】が時間経過(0.0〜1.0)、 【resolution】がステージの実ピクセルサイズ(vec2)、です。 rule= を併用すると 【rule】(sampler2D)と 【vague】(float)もシェーダへ渡ります。 出力 gl_FragColor は「表ページ色.rgb + 表を残す度合い.a」(tick=0で.a≈1、tick=1で.a≈0)。 (bluesnovel)表・裏ページを1枚ずつ画像化して生WebGLで合成します([snapshot] と同じ画像化のため、iframe=[add_frame] や再生中の動画は写りません)。 pixi 由来のグローバル(inputPixel/outputFrame/getUV())は渡していません。GLSL の文法エラーはデバッグ表示に出ます。 |
[wt] トランス終了待ち
[trans]で開始したトランスの終了を待つ。
終了次第、スクリプト処理を次へ進める。
また[trans]~[wt]間で文字表示や[ch]は動作未定義、非推奨。
[trans]終了を待たず何かをするのは避けた方がよいでしょう
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| canskip | true | true、false | trueでクリックキャンセル可能にする | |
| global | true | true、false | グローバルイベント待ちを有効にするか |
[add_filter] フィルター追加
レイヤにフィルターを追加する。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 全てのレイヤ | レイヤ名(カンマ区切りで複数可) | ||
| page | fore | fore、back、both | ページの裏表(both指定で両面) | |
| filter | 必須 | フィルター名 |
レイヤに指定するフィルタ。その他必要な属性は適宜指定する 指定できる値は以下の通り。 blur …… ガウスぼかし noise …… ノイズエフェクト(下の「noise」欄参照) color_matrix …… カラーマトリックス black_and_white …… 白黒 brightness …… 明るさを調整 browni …… おいしいブラウニー color_tone …… カラートーン contrast …… コントラスト grayscale …… グレースケール hue …… 色相 kodachrome …… コダクローム lsd …… LSD効果 negative …… ネガティブ画像 (古典的なRGBマトリックスの逆) night …… ナイトエフェクト polaroid …… ポラロイド predator …… 捕食者効果、新しい独立したマトリックスを設定 saturate …… 彩度。色の間の分離を増やします。 sepia …… セピア technicolor …… テクニカラー。1916 年に発明されたカラ tint …… 色合い。カラーマトリクスの対角線上に各チャネルを to_bgr …… 赤→青、青→赤 vintage …… ビンテージ | |
| enabled | true | true、false | フィルターを有効にするか | |
| blendmode | 何もしない | ブレンドモード名("screen"など) | このフィルターと下のレイヤとの重なりにおいて、 ドット単位で色のブレンド演算を行なう。 詳細はblendModeの解説を参照 |
以下はフィルターごとに指定できる属性説明です。
項目ごとの説明は煩雑なので、pixijs の動くサンプルをお試しください。
(bluesnovel)multiply属性は全フィルター共通で無視される(指定してもしなくても結果は同じ)。
フィルター「blur」に指定できる属性
(bluesnovel)ぼかしは CSS filter: blur()/SVG feGaussianBlur のネイティブ実装。エッジの外を透明として扱う方向は本家(pixi)と同じだが、カーネルや端の畳み込みまでは揃わず縁のにじみ方は完全一致しない。quality/resolution/kernel_size は WebGL 内部パラメータで相当が無く無視、repeat_edge_pixels は true のみ未対応(凍結)
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| strength | 8 | 整数 | 強さ | |
| 🟡 quality | 4 | 整数 | 品質 (bluesnovel)無視(上記) | |
| 🟡 resolution | 0 | 整数 | 解像度 (bluesnovel)無視(上記) | |
| 🟡 kernel_size | 5 | 5、7、9、11、13、15 | カーネルサイズ (bluesnovel)無視(上記) | |
| blur_x | 2 | 整数 | X強度 | |
| blur_y | 2 | 整数 | Y強度 | |
| 🟡 repeat_edge_pixels | false | true、false | true でエッジをクランプ(引き伸ばす) (bluesnovel)既定の false 相当のみ。true は未対応・凍結(上記) |
フィルター「noise」に指定できる属性
(bluesnovel)pixi の NoiseFilter を SVG の feTurbulence で近似。value ノイズのため ピクセル一致はしない(不透明部でおおむね一致。半透明の縁はノイズ量がずれる)
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| noise | 0.5 | 0.0〜1.0 | 適用するノイズの量 | |
| seed | 0 | 整数 | ノイズの生成に適用するシード値 (bluesnovel)既定は固定 0(本家は Math.random())。再レンダーでフィルタ要素を作り直さないため |
フィルター「color_matrix」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| matrix | '1,0,0,0,0, 0,1,0,0,0, 0,0,1,0,0, 0,0,0,1,0' | カンマ区切りの20個の整数値 | ピクセルの RGBA カラーとアルファ値に 5x4 マトリックス変換を適用して、新しい RGBA カラーとアルファ値のセットを含む結果を生成する |
フィルター「black_and_white」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| multiply | false | true、false | true の場合、現在の行列と行列を乗算 |
時間をかけて白黒へ変化させたいときは [add_fx] fx=grayscale(black_and_white = grayscale 既定値)。
フィルター「brightness」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| b | 0.5 | 0.0〜1.0 | 明るさの値 (0 は黒) | |
| multiply | false | true、false | true の場合、現在の行列と行列を乗算 |
フィルター「browni」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| multiply | true | true、false | true の場合、現在の行列と行列を乗算 |
フィルター「color_tone」に指定できる属性
(bluesnovel)pixi の ColorMatrixFilter シェーダが純粋な4x5アフィン変換でない(トーン値をRGBへ 乗せ戻す非線形な補正が入る)ため、SVG feColorMatrixでは再現できずピクセル一致はしない (暗部は近いが、明部で青チャンネルの出方が食い違う)。使用頻度が低いため凍結
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| desaturation | 0.5 | 0.0〜1.0 | ||
| toned | 0.5 | 0.0〜1.0 | ||
| light_color | 0xFFE580 | 16進数値 | 色指定。'#FF0000'など | |
| dark_color | 0xFFE580 | 16進数値 | 色指定。'#FF0000'など | |
| multiply | false | true、false | true の場合、現在の行列と行列を乗算 |
フィルター「contrast」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| amount | 0.5 | 0.0〜1.0 | コントラストの値 | |
| multiply | false | true、false | true の場合、現在の行列と行列を乗算 |
フィルター「grayscale」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| scale | 0.5 | 0.0〜1.0 | グレーの値 | |
| multiply | false | true、false | true の場合、現在の行列と行列を乗算 |
フィルター「hue」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| f_rotation | 90 | 0〜360;回転角度 | 度単位。0だと変化が分かりづらいための既定値 | |
| multiply | false | true、false | true の場合、現在の行列と行列を乗算 |
フィルター「kodachrome」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| multiply | true | true、false | true の場合、現在の行列と行列を乗算 |
フィルター「night」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| intensity | 0.5 | 0.0〜1.0 | 夜の効果の強さ | |
| multiply | false | true、false | true の場合、現在の行列と行列を乗算 |
フィルター「predator」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| amount | 0.5 | 0.0〜1.0 | 捕食者は自分の将来の犠牲者をどれほど感じているか | |
| multiply | false | true、false | true の場合、現在の行列と行列を乗算 |
フィルター「saturate」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| amount | 0.5 | 0.0〜1.0 | 飽和量 | |
| multiply | false | true、false | true の場合、現在の行列と行列を乗算 |
フィルター「technicolor」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| multiply | true | true、false | true の場合、現在の行列と行列を乗算 |
フィルター「tint」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| f_color | 0x888888 | 16進数値 | 色合いの色 | |
| multiply | false | true、false | true の場合、現在の行列と行列を乗算 |
時間をかけて色合いへ変化させたいときは [add_fx] fx=tint color=…(色反転は fx=negative)。
フィルター「vintage」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| multiply | true | true、false | true の場合、現在の行列と行列を乗算 |
その他のフィルターに指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| multiply | false | true、false | true の場合、現在の行列と行列を乗算 |
[clear_filter] フィルター全削除
レイヤのフィルターを全削除する。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 全てのレイヤ | レイヤ名(カンマ区切りで複数可) | ||
| page | fore | fore、back、both | ページの裏表(both指定で両面) |
[enable_filter] フィルター個別切替
個別にフィルター有効・無効を変更する。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 全てのレイヤ | レイヤ名(カンマ区切りで複数可) | ||
| page | fore | fore、back、both | ページの裏表(both指定で両面) | |
| index | 0 | 0〜 | 追加したフィルターの中で、有効・無効を変更するフィルターの番号。 0が最初のフィルター。フィルターを重ねるたびに1加算したindexになる | |
| enabled | true | true、false | フィルターを有効にするか |
シェーダエフェクト(bluesnovel独自)
[def_fx] シェーダプリセット定義
独自の生フラグメントシェーダをユーザープリセットとして事前定義する。
定義したシェーダは [add_fx fx=プリセット名] で使える。テンプレ起動時に必ず通る処理 ([call fn=ext_*] 等)で [def_fx] を毎回再実行しておく必要がある ([add_face]による差分名定義と同じ思想)。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 識別子 | プリセット名。組み込み名(wave/rgbShift/snow/rain/fireworks/blur/grayscale/sepia/negative/tint)や既に [def_fx] 済みの名前を指定するとエラー | |
| glsl | 必須 | フラグメントシェーダ文字列 | main() と固有 uniform(amp/freq/shift 等)だけを書く。共通ヘッダ(precision 宣言と下表の uSampler/tick/resolution/vTextureCoord)は自動で前置されるので再宣言しないこと(組み込みプリセットと統一。[trans]のglsl=は自前で書く流儀なのでそこだけ違う)。glsl=&変数で書く想定 | |
| duration | 0 | 0〜(ミリ秒) | 花火の爆発のような「始まりと終わりがある単発」演出の尺。[add_fx fx=このname loop=false]がtime=として使う値をここで宣言する。未指定(0)のプリセットへloop=false(time=を伴わず)を使うとエラー。[add_fx]のtime=と違い、こちらはシェーダの中身を知っているプリセット作者が決める「権威」(tick自体は雨/雪と同じくラップしない生の経過秒のままなので、シェーダ側はfract()等で無限ループする代わりに時間とともに1回だけ変化して終わるよう書く) | |
| pad | 0 | 0〜(基本画像高さに対する比率) | fx キャンバスを対象レイヤの基本画像の枠の外側へ広げる余白(上・左・右)。立ち絵の背後に出すオーラ・炎のように「画像の透明部分より外」へシェーダ出力したいプリセット向け。宣言すると、そのプリセットを [add_fx] したレイヤの合成キャンバスが 幅+2×pad×高さ/高さ+pad×高さ(+pad_b) になり、はみ出し分は div0(=レイヤの箱。基本画像サイズのままなので [tsy]/Moveable のピボットは不変)の外へ絶対配置で描かれる。ステージ端は overflow:hidden で切れる。別レイヤや余白を広く取った専用 png は不要。resolution は拡張後のサイズになる(シェーダは基本画像が中央付近にオフセットして入ってくる前提で書く) | |
| pad_b | 0 | 0〜(同上) | pad の下端版(既定 0)。立ち絵は grp 下端接地で足元が画面外に出るため通常は不要。背景レイヤなどで全周に余白が欲しいときだけ指定する | |
| keep | false | true/false | [add_fx fx=このname]のkeep=の既定。trueにすると、そのプリセットはtime=経過後も素通し(=元絵)へ戻さず最終フレームで凍結する。progressを使い切って終わる「ランプ型」(元絵→ぼかし等)向け。個別の[add_fx keep=]が常に勝つ |
シェーダの契約([trans] の glsl= と名前を統一)
| uniform / varying | 意味 | Shadertoy 相当 |
|---|---|---|
sampler2D uSampler | 入力画像(前パスの結果 or 基本画像) | iChannel0 |
vec2 vTextureCoord | 正規化 UV(0〜1、左下=(0,0) の y-up。※[trans]側は画面左上=(0,0)) | fragCoord/iResolution |
float tick | 経過秒 × speed=(0 起点) | iTime |
vec2 resolution | canvas の実ピクセルサイズ | iResolution.xy |
+ float amp/freq/shift/p1〜p4 | スカラ入力ポート(自分で uniform float 宣言し、[add_fx] の同名属性で値を渡す。既定値は無く未指定は 0)。amp/freq/shift は組み込みプリセットと意味を揃えると分かりやすい。p1〜p4 は意味を作者が自由に決める汎用ポート | iMouse.x 等 |
+ vec3 color | 色ポート。[add_fx color=0xrrggbb](または color="#rrggbb"/color=r,g,b の各 0..1)で 0..1 RGB を渡す。未指定は vec3(0.0) | — |
float progress | 単発(time=/loop=false)の進行度 0..1。time=0(無限)のときは常に 0。[add_fx reverse=true]なら 1→0 で届く(反転はエンジンが1箇所で行う)。「元絵→目標へ変化しきる度合い」として素直に使う(ランプ型プリセット)。周期系(wave/rain 等)は宣言しなければよい | iTime/尺 |
Shadertoy(mainImage+i* uniform)はエンジンでは吸収しない。開発時に上表で手変換する(1本 ~5行の機械置換)。
[add_fx] シェーダエフェクト追加
grpレイヤにシェーダエフェクトを重ねる。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 全てのレイヤ | レイヤ名(カンマ区切りで複数可) | 非grpレイヤを指定するとエラー | |
| page | fore | fore、back、both | ページの裏表(both指定で両面) | |
| fx | 必須 | wave、rgbShift、snow、rain、fireworks、blur、grayscale、sepia、negative、tint、または[def_fx]で定義した名前 | プリセット名。 wave …… 横方向の正弦波でゆらす(水面/陽炎) rgbShift …… RGBを左右にずらす(グリッチ/色収差) snow …… 降雪を重ねる(背景レイヤ向け) rain …… 雨(3層+風のシア)。 freqで弱雨〜豪雨(背景レイヤ向け)fireworks …… 冠菊(かむろ)花火。火の粉の余韻を引きながら枝垂れ落ちる。 colorで光の色(背景レイヤ向け)blur …… time=の尺いっぱいかけて元絵→ガウスぼかしへ変化する「ランプ型」。keep既定true(ぼけたまま保持)、reverse=trueでぼかし→元絵grayscale/sepia/negative/tint …… blurと同じランプ型で元絵→モノクロ/セピア/色反転/色合い( tintはcolor=で色)。式は[add_filter]の同名フィルタと同じ。1タップだけ=ほぼ無料。black_and_whiteはgrayscaleと同一なので専用名は無し生シェーダは[def_fx]で先に定義する | |
| name | 自動採番 | 識別子 | そのレイヤの中で一意な名前。省略すると #fx1, #fx2 … を自動採番する(#付きはシナリオから指定できない=[clear_fx name=]では実質狙えず、layer=単位のクリアでのみ落ちる)。同名を再指定すると置換([tsy]の「同名で再開」と同じ) | |
| time | 0 | 0〜(ミリ秒) | 0で無限(常時ゆらぎ)。正数を指定すると経過後そのパスは素通し(=元絵)に切り替わり凍結する(keep=trueなら素通しへ戻さず最終フレームで凍結)。記述子の自動撤去はしない=[clear_fx]/[clear_lay]で撤去。loop=falseと併用するとtime=が優先(個別上書き) | |
| loop | true | true/false | falseで花火の爆発のような単発再生。time=未指定なら宣言済みの尺を使う(fireworksは約4秒、blurは800ms、[def_fx duration=]のユーザープリセットはその宣言値)。尺を持たないプリセット(wave/rgbShift/snow/rain)へtime=も伴わず指定するとエラー | |
| speed | 1 | 実数 | 時間の進み方の倍率 | |
| reverse | false | true/false | trueでランプ型プリセットの progress を 1→0 で流す(blurなら「ぼかし→元絵」=ピントが戻る)。周期系プリセットは progress を読まないので効かない | |
| keep | プリセット既定 | true/false | trueでtime=経過後も素通し(=元絵)へ戻さず最終フレームで凍結する(rAFは止まるので保持中の負荷は0)。既定はblurがtrue、他の組み込みはfalse、ユーザープリセットは[def_fx keep=]の宣言値(未宣言ならfalse) | |
p1〜p4 | 0 | 実数 | 汎用スカラ入力ポート。シェーダが uniform float p1; 等を宣言していれば値が届く([def_fx]シェーダ向け。組み込みでは fireworks が p1=周期・p2=横位置に使う) | |
| color | vec3(0) | 0xrrggbb / "#rrggbb" / r,g,b(各 0..1) | シェーダの uniform vec3 color; へ 0..1 RGB を渡す(fireworks/[def_fx]シェーダ) | |
| tex | なし | fn=と同じ論理名(path.json) | シェーダのuniform sampler2D uTex2;へ、layer=の基本画像とは別の画像を追加テクスチャとして渡す([def_fx]シェーダ向け)。基本画像自体は差し替えない=専用レイヤを増やさず1レイヤで「元絵+別画像」を合成できる。読み込みは非同期(完了まで1×1透明) |
プリセット「wave」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| amp | 6 | 実数(px相当) | 横ゆれの振幅 | |
| freq | 2 | 実数 | 縦方向の波の本数の目安 |
プリセット「rgbShift」に指定できる属性
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| shift | 4 | 実数(px相当) | RGBの左右ずらし量(timeで脈動する) |
プリセット「snow」に指定できる属性(背景レイヤ向け)
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| amp | 1 | 実数 | 落下速度の倍率 | |
| freq | 3 | 実数(0〜7) | 重ねる層の数=密度。手前(大きい雪片)から積み、端数はフェード |
プリセット「rain」に指定できる属性(背景レイヤ向け)
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| amp | 2 | 実数 | 落下速度 | |
| freq | 2 | 実数 | 密度=弱雨〜豪雨のスイッチ。2で弱雨、8前後で豪雨。上げると曇天の暗さ・雨幕・風のシア角も連動して強まる | |
| shift | 6 | 実数 | 雨脚の長さ(尾の伸び) |
指定例:
[add_fx layer=bg fx=rain] …… 弱雨(既定)
[add_fx layer=bg fx=rain freq=5] …… 中くらい
[add_fx layer=bg fx=rain amp=3 freq=8 shift=18] …… 豪雨
[add_fx layer=bg fx=rain freq=8 speed=1.5] …… 豪雨+speed=(tick倍率)でさらに加速 snow / rain は透明部にも降るので不透明な背景(bg)レイヤへ積む想定。立ち絵に積むと箱の形に降る。
プリセット「fireworks」に指定できる属性(背景レイヤ向け)
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| amp | 1 | 実数 | 明るさ | |
| freq | 1 | 実数 | 頭(=火の粉を撒く親)の数。1で32個、1.4前後で頭打ち(44個) | |
| p1 | 0.25 | 実数 | 打ち上げ周期の速さ(=周期の逆数)。0.25で約4秒周期。上げるとテンポが速くなる | |
| p2 | 0 | 実数 | 横位置。0で中央、±1で炸裂中心がフレーム左右端(画面幅に対する割合=px指定ではない)。0.3で少し右 | |
| color | 橙金 | 0xrrggbb / "#rrggbb" / r,g,b | 光の色。未指定は既定の橙金(1.25, 1.05, 0.55) |
指定例:
[add_fx layer=bg fx=fireworks] …… 約4秒周期で無限に開く(既定)
[add_fx layer=bg fx=fireworks amp=1.6 freq=1.4] …… 明るく・枝を増やす
[add_fx layer=bg fx=fireworks p2=0.35] …… 少し右で開く
[add_fx layer=bg fx=fireworks color=0x66ccff] …… 青白い光に固定
[add_fx layer=bg fx=fireworks loop=false] …… 1発だけ開いて余韻ごと消える(約4秒)
[add_fx layer=bg fx=fireworks loop=false p1=0.5 time=2000] …… p1=で周期を変えるときはtime=(ms。周期と一致させた値)も指定
火の粉の余韻を引きながら枝垂れ落ちる「冠菊(かむろ)」。透明部にも描くので不透明な背景(bg)レイヤ向け。 参考にした公開シェーダ shadertoy tfXSWr(物理の下敷きのみ・コードの写しではない=MIT)。
プリセット「blur」に指定できる属性(初のランプ型)
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| amp | 8 | 実数(px相当) | 最大ぼかし半径(CSS blur(Npx) と同義)。実効半径は amp × progress |
time=の尺いっぱいかけて progress が 0→1 に進み、元絵→ガウスぼかしへ変化する。 周期系プリセットと違い「変化して終わる」ので loop=false(尺 800ms)か time= と併せて使う。 keepは既定true(ぼけたまま保持。keep=falseで経過後に元絵へ戻る)。 サンプリングは40タップのディスク近似(回転・半径を画素ごとにディザ)なので、強くぼかすとごく細かい 網点が出る——写真背景ではまず気にならないが、さらに滑らかにしたいときは同じ [add_fx fx=blur]を2枚重ねる([add_fx]のスタックがそのままマルチパスになる)。 静的なぼかし(変化不要)は[add_filter] filter=blurの方が軽い(CSS/SVGのネイティブ合成)。
指定例:
[add_fx layer=bg fx=blur loop=false] …… 800msで元絵→ブラー、そのまま保持
[add_fx layer=bg fx=blur loop=false time=1500 amp=14] …… 1.5秒かけて強めに
[wait_fx layer=bg] …… ぼけ切るまで待つ
[add_fx layer=bg fx=blur loop=false reverse=true] …… ブラー→元絵(ピントが戻る)
[add_fx layer=bg fx=blur loop=false][add_fx layer=bg fx=blur loop=false] …… 2枚重ねで滑らかに
プリセット「grayscale」「sepia」「negative」「tint」に指定できる属性(blurと同じランプ型・色系)
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| amp | 1 | 0〜1 | 最終的な効き。実効量は amp × progress。1で完全に効いた状態、0.5で半分 | |
| color | 0x888888 | 0xrrggbb / "#rrggbb" / r,g,b | tintのみ。色合い(c.rgb × color)。未指定は中間グレー([add_filter] filter=tintの既定と同じ=軽く沈める) |
time=の尺いっぱいかけて元絵→モノクロ/セピア/色反転/色合いへ寄る。blurと同じく loop=false(尺 800ms)で単発、keep既定true(変化しきったら保持)、reverse=trueで戻る。 1タップだけ=周期系より軽い。式は [add_filter] filter=grayscale/sepia/negative/tint と同一なので、 「fx で演出 → 落ち着いたら [add_filter] へ差し替えて [clear_fx]」が自然。 変化が要らない静的な色調整は [add_filter] の方が軽い(CSS/SVGのネイティブ合成)。 black_and_white は grayscale(既定 amp=1)と同じなので専用の fx 名は無い。 指定例:
[add_fx layer=bg fx=grayscale loop=false] …… 0.8秒で背景がモノクロになり保持(回想の入り等)
[add_fx layer=bg fx=grayscale loop=false reverse=true] …… モノクロ→カラー(回想明け)
[add_fx layer=bg fx=sepia loop=false amp=0.7 time=2000] …… 2秒かけて7割セピア
[add_fx layer=me fx=negative loop=false time=120][add_fx layer=me fx=negative loop=false time=120 reverse=true] …… 一瞬だけ色反転(ショック・被弾)
[add_fx layer=bg fx=tint loop=false color=0x3366ff] …… 背景が青く染まっていく(夜・水中)
生シェーダを使うには
独自の生フラグメントシェーダは[def_fx name= glsl=] でユーザープリセットとして先に定義し、 [add_fx fx=その名前] で使う(契約表は [def_fx])。
[add_fx]自体は待たない([tsy]と同じ)。記述子は store 経由なので [add_filter]同様、しおり([save]/[load])と [trans]の両ページ複製に自動追随する。単発(time>0)が自然経過した記述子は その旨が[save]に載り、別ページで[load]したときは頭から再生し直さず 最終状態で復元される(keepなら最終フレーム、それ以外は元絵)。[load]先と 同じページにある[add_fx]タグ自体が演じ直しで再実行される場合は、通常どおり頭から再生する。
[clear_fx] シェーダエフェクト撤去
grpレイヤに重ねたシェーダエフェクトを撤去する。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 全てのレイヤ | レイヤ名(カンマ区切りで複数可) | ||
| page | fore | fore、back、both | ページの裏表(both指定で両面) | |
| name | そのレイヤのfx全部 | 識別子(カンマ区切りで複数可) | 指定した名前のfxだけ撤去する。省略するとそのレイヤのfxを全撤去。自動採番された無名fx(#fxN)は名前で狙えないので、無名fxを消すにはname=を省略する |
[wait_fx] シェーダ変化終了待ち
[add_fx time>0] の one-shot エフェクトが経過するまで待ち、再開する。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | レイヤ名(カンマ区切りで複数可) | このレイヤに載っている fx を待つ。name=と併用でそのレイヤの一致名だけ。無名fxを待つ手段 | ||
| name | 識別子(カンマ区切りで複数可) | この名前の fx を(どのレイヤであれ)待つ | ||
| canskip | true | true、false | クリックなどでウエイトをキャンセルできるか |
layer=/name=は最低どちらか一方が必須(両方指定でAND)。一致するセレクタの [add_fx time>0]が全部経過するまで待つ。一致が無ければ待たずに続行([wait_tsy]と同じ)。
time=0(無限=常時ゆらぎ)は終わりが無いので待ちの対象外。page=は受けない。
実際に待つのは ScriptMng([add_fx]のtime=をそのままタイマーにする。[wait_tsy]と 同じ設計で、WebGLランナーからの終了通知は作らない)。[clear_fx]/[clear_lay]/ ページ演じ直しでタイマーも畳む。[pause_fx]で止めている間はこのタイマーも止まる(残時間を保持)。
[pause_fx] シェーダ変化一時停止
[resume_fx] シェーダ変化再開
fx の描画(rAF)を止める/止めた続きから戻す。記述子は残る([pause_tsy]/[resume_tsy]と同型)。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | レイヤ名(カンマ区切りで複数可) | このレイヤの fx が対象。name=/index=と併用で絞り込み | ||
| name | 識別子(カンマ区切りで複数可) | この名前の fx が(どのレイヤであれ)対象 | ||
| index | 0〜 | そのレイヤの fx の何番目か(layer=併用時のみ。[enable_filter]由来) |
layer=/name=は最低どちらか一方が必須。[pause_fx]=停止、[resume_fx]=再開。 止めても記述子(aFx)は残る(<canvas>のまま)=[save]/[trans]に追随。撤去は[clear_fx]。
パスごとに tick を凍結して描画自体は続ける(前段パスが動いていれば入力は変わるため)。全パスが 停止/経過したら rAF ごと止めて凍結。page=は受けない(両ページの同名 fx に効く)。
トゥイーンアニメ
[pause_tsy] 一時停止
レイヤーやフレームのトゥイーンアニメを一時停止させる
「layer(とpage)」を指定した場合はレイヤーの操作、
「id」を指定した場合はフレームの操作を行なう。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 必須 | レイヤ名 | 処理対象のレイヤ | |
| page | fore | fore、back | ページの裏表 | |
| id | 必須 | フレーム名 | 処理対象のフレーム |
[resume_tsy] 一時停止再開
レイヤーやフレームのトゥイーンアニメ一時停止を再開させる
「layer(とpage)」を指定した場合はレイヤーの操作、
「id」を指定した場合はフレームの操作を行なう。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 必須 | レイヤ名 | 処理対象のレイヤ | |
| page | fore | fore、back | ページの裏表 | |
| id | 必須 | フレーム名 | 処理対象のフレーム |
[stop_tsy] トゥイーン中断
レイヤーやフレームのトゥイーンアニメを中断、終了する。
「layer(とpage)」を指定した場合はレイヤーの操作、
「id」を指定した場合はフレームの操作を行なう。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 必須 | レイヤ名 | 処理対象のレイヤ | |
| page | fore | fore、back | ページの裏表 | |
| id | 必須 | フレーム名 | 処理対象のフレーム |
[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 | 必須 | レイヤ名 | 処理対象のレイヤ | |
| name | layerの値 | 文字列 | トゥイーン名 | |
| page | fore | fore、back | ページの裏表 | |
| time | 必須 | 0〜;ミリ秒 | トゥイーンにかける時間 | |
| delay | 0 | 0〜;ミリ秒 | トゥイーンを始める前の、何もしない待ち時間 | |
| repeat | 1 | 0〜 | 繰返し回数。0以下で無限ループ。1を設定すると「繰り返しなし」、2を設定すると「二回同じ動き」を行なう | |
| 🟡 arrive | false | true、false | trueならクリックキャンセルでアニメ終端までSkip。 falseならその場で停止 (bluesnovel)属性は受け付けない。常にtrue相当([stop_tsy]/[wait_tsy]中クリック/時間切れのどれでも必ず目標値で確定し、中途半端な見た目のまま止まらない)。 ストアが常に「演出後の値」を持つ設計(Memento の読み戻し・[trans] のレイヤ複製が演出前の値を拾わないため)と、falseの「その場で停止」が噛み合わないための意図的な非対応。配線すれば技術的には可能だが優先度は低い | |
| backlay | false | true、false | 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 | true、false | (暫定)ヨーヨーのように逆方向に戻って繰り返す | |
| chain | なにもしない | レイヤ名 | 指定したレイヤのトゥイーンアニメが終了してから、このトゥイーンを続けて開始する | |
| alpha | いずれかを指定 | 何もしない | 相対値か絶対値 | 同名属性の変化目標値 |
| rotation | ||||
| scale_x | ||||
| scale_y | ||||
| pivot_x | ||||
| pivot_y | ||||
| x | ||||
| 必須 | ||||
| height | 同名属性の変化目標値。[lay width=/height=]で数値を明示したレイヤに限り指定できる(明示の無いレイヤを動かそうとするとエラーになる) | |||
| width | ||||
| path |
指定すると複数のポイントを連続してトゥイーンアニメする。 ポイントは半角丸括弧()【吉里吉里拡張】や{}【JSON形式】が連続する文字列。 ・半角丸括弧に囲んで属性 x、y、alpha の三つを指定する(吉里吉里仕様) 例)(1, 2, 0.3) ・以降はSKYNovel拡張 ・変更しない項目を省略できる 例)(,10, 0.11) (12,,0.13 ) (14,15,) () ・[tsy]属性のような「初期位置からの相対値」形式 先頭に=を追加する。どの区間も常にトゥイーン開始時の値が基準になる (例: (,=50) (,=0)は「50下げてから元へ戻す」動き)例)(=-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 | true、false |
trueを指定すると[trans]のように絵を合成してから不透明度を適用するように(半透明時に差分境界が見えなくなる) (bluesnovel)属性は無視するが、不透明度を下げる[tsy]ではCSSのopacityが子要素をグループ合成してから透過するため、本家render=trueと同じ結果になる | |
| filter | なにもしない | フィルター名 | レイヤに指定するフィルター名。その他必要な属性は適宜指定する。詳細は[add_filter]参照。ただし[add_filter]のような追加ではなく上書き。トゥイーン開始と同時に一度だけ適用する(値自体をアニメーションさせるわけではない) | |
| enable_filter | true | true、false | フィルターを有効にするか |
[wait_tsy] トゥイーン終了待ち
レイヤーやフレームの終了を待ち、再開する。
[event]などでイベントが登録されていても、イベント発生待ちを行わない。 繰返し回数が0(無限ループ)の場合、何もせず終了する
「layer(とpage)」を指定した場合はレイヤーの操作、
「id」を指定した場合はフレームの操作を行なう。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 必須 | レイヤ名 | 処理対象のレイヤ | |
| page | fore | fore、back | ページの裏表 | |
| id | 必須 | フレーム名 | 処理対象のフレーム | |
| canskip | true | true、false | クリックなど(→詳細は[waitclick])でウエイトをキャンセルできるか | |
| global | true | true、false | グローバルイベント待ちを有効にするか | |
(v1.62.3 廃止) |
文字・文字レイヤ
[autowc] 文字ごとのウェイト
特定の文字の直後に自動的にウェイトを入れる。
textに指定した文字に対し、timeに指定した数値が対応する。
通常の文字表示速度にtimeの数値を掛け算する。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| enabled | 現在値 | true、false | 自動ウェイトを有効にするか。初期値false | |
| text | 両方同時に指定、或いは省略 | 現在値 | 一文字(カンマ区切りで複数可) | ウェイトを指定する文字の集まり |
| time | (↑と同じ) | 現在値 | 0〜(カンマ区切りで複数可) | 文字表示ウェイト倍数 |
以下のように指定する。
[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] 文字を追加する
文字レイヤに文字を出力する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ | |
| page | fore | fore、back | ページの裏表 | |
| text | 必須 | 表示したい文字列 | ルビ文法(《》)も解析する。改行も [r] で出来る | |
| record | true | true、false | 履歴に保存するか | |
| wait | 現在の文字表示速度 | 0〜;ミリ秒 | 一時的な文字表示速度。0で瞬時。 この[ch]の文字だけ1文字ごとの出現待ちを上書きする([autowc]より優先) | |
| 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_in_style] 文字出現演出定義
文字出現演出アニメを定義する
[lay][span]などの ch_in_style属性で指定すると、定義どおりの文字出現演出アニメを行なう
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 文字出現演出名 | 文字出現演出を特定する名前 | |
| wait | 500 | 0〜;ミリ秒 | 一時的な文字表示速度。0で瞬時 | |
| alpha | 0.0 | 0.0〜1.0;透過度 | 0(完全透明)〜0.5(半透明)〜1(不透明) | |
| x | '=0' | 実数か相対位置指定 |
変化の初期値。以下のような相対位置指定が出来る 500 ── X位置を500に '=500' ── 文字表示位置を基準に+500加算した位置 '=-500' ── 文字表示位置を基準に-500加算した位置 | |
| 必須 | '=0' | 実数か相対位置指定 | ||
| scale_x | 1.0 | 実数 | 横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転 | |
| scale_y | 1.0 | 実数 | 縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転 | |
| rotate | 0 | -360〜360;回転角度 | 正の値は時計回り | |
| join | true | true、false | 文字を順番に出すか(true)同時か(false) | |
| ease | 'ease-out' | animation-timing-function | CSSのanimation-timing-function プロパティ |
bluesnovel:x/yの相対指定('=0.3')の単位は0.3em。 全角文字では本家の30%指定と同じ値になるが、半角文字だけ本家とずれる。
easeはCSSの<easing-function>構文をそのまま渡せる (cubic-bezier()/steps()も使える)。無効な値を指定した場合はease-outになる。
1文字あたりの遅れ(文字表示ウェイト)は[autowc]の表 → sys:sn.tagCh.msecWait (既読なら_Kidoku側)の順に決まる。待ちはその文字が出る「前」に入るので、[autowc]に載せた文字自身と それ以降が後ろへずれる
[ch_out_style] 文字消去演出定義
文字消去演出アニメを定義する
[lay][span]などの ch_out_style属性で指定すると、定義どおりの文字消去演出アニメを行なう。
文字消去演出は、次ページの文字出現演出と同時に行なわれる。文字消去演出を待ちたい場合は、[wait]などで待つ。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 文字消去演出名 | 文字消去演出を特定する名前 | |
| wait | 500 | 0〜;ミリ秒 | 一時的な文字消去速度。0で瞬時 | |
| alpha | 0.0 | 0.0〜1.0 | 透過度。0(完全透明)〜0.5(半透明)〜1(不透明) | |
| x | '=0' | 実数か相対位置指定 |
変化の目標値。以下のような相対位置指定が出来る 500 ── X位置を500に '=500' ── 文字位置を基準に+500加算した位置 '=-500' ── 文字位置を基準に-500加算した位置 | |
| 必須 | '=0' | 実数か相対位置指定 | ||
| scale_x | 1.0 | 実数 | 横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転 | |
| scale_y | 1.0 | 実数 | 縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転 | |
| rotate | 0 | 実数 | 回転角度(単位:deg 度)、正の値は時計回り | |
| join | false | true、false | 文字を順番に出すか(true)同時か(false) | |
| ease | 'ease-out' | CSSのanimation-timing-function プロパティ |
bluesnovel:本家 TxtStage.#clearText() の移植。消えていく文字を React 管理外の ゴースト span へ移して Element.animate() でアニメし、終わったら捨てる。 wait=0(既定)はゴーストを作らず即座に消える(本家と同じ)。 [trans] のクリックキャンセルで消えかけの文字も即座に終端へ送られる
[clear_text] 文字消去
文字のみをクリアする
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ | |
| page | fore | fore、back | ページの裏表 |
[current] デフォルト文字レイヤ設定
デフォルト文字レイヤを設定する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 必須 | 文字レイヤ名 | デフォルトとするレイヤ |
[endlink] ハイパーリンクの終了
[link](ハイパーリンク)で開始したリンク区間を終了する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ | |
| page | fore | fore、back | ページの裏表 |
[er] ページ両面の文字消去
デフォルト文字レイヤの裏と表の両方に対して[clear_lay]を行う。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| rec_page_break | true | true、false | 履歴を改ページするか | |
| clear_filter | false | true、false | true:フィルタもクリア |
[graph] インライン画像表示
文字レイヤに画像を文字として表示する。ルビは同時に設定する。
フォントにない外字やアニメpng画像表示に使える。 [span]は強制的に解除される。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ | |
| page | fore | fore、back | ページの裏表 | |
| pic | 必須 | 画像ファイル名 | 表示する画像やアニメpng | |
| r | ルビ無し | ルビ文字列 | ただしあまりに他の文字サイズと大きく異なる場合は正しい位置に表示されない | |
| width | 画像の横サイズ(※) | 1〜 | 表示する画像の横ドットサイズ。 元のサイズと異なる場合は拡大・縮小される | |
| height | 画像の縦サイズ(※) | 1〜 | 保存する画像の縦ドットサイズ。 元のサイズと異なる場合は拡大・縮小される | |
| style | 何もしない | CSS style |
他の文字と並べて表示したい場合は style='font-size: 60px;' などとサイズ指定する。 このタグによる表示のみに適用、以降は元に戻る。 width, height属性は正確にサイズ指定できるが他の文字に関係なくはみ出して表示する | |
| r_style | 全てクリア | CSS style |
ルビの CSS Style を指定する。 このタグによる表示のみに適用、以降は元に戻る | |
| wait | 現在の文字表示速度 | 0〜;ミリ秒 | 一時的な文字表示速度。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 スタイル。mousedown〜mouseup/mouseleaveの間だけ乗る | |
| 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〜;ミリ秒 | 一時的な文字表示速度。0で瞬時 | |
| call | false | true、false | trueの場合は[call]、falseは[jump]。 ただしcall=trueによりサブルーチンコールした場合、[return]によって「コールする前のイベント予約状態&待ち状態」に戻る | |
| fn | どちらか、もしくは両方を指定 | 処理中のスクリプトファイル | スクリプトファイル名 | クリック時にジャンプする先 |
| label | スクリプトファイルの先頭 | ラベル名(半角アスタリスク*も含む) | コール先のスクリプトファイルにあるラベル | クリック時ジャンプ先で「&sn.eventLabel」にて値を受け取れる |
| url | fnかlabelか、このurlを指定 | fn・label によるスクリプトジャンプ | ブラウザで開けるURL | クリック時にURLを開く。指定時は fn・label を無視する |
| global | false | true、false | 詳細は[event]と同様。 ※ボタンを[trans]する場合はtrueにしておく (bluesnovel)受理はするが効果を持たない:表示されている間は常にクリック可能(本家のtrue相当)が既定のため | |
| arg | ジャンプ先に渡したい値 | 指定した場合、クリック時ジャンプ先で「&sn.eventArg」にて値を受け取れる | ||
| onenter | 何もしない | ラベル名 | マウス重なり時、指定したラベルをサブルーチンコールする。 必ず[return]で戻ること (bluesnovel)クリックの読み進めとは別経路。中身は [pause_tsy][return]程度の軽いものにすること(本家も同じ制約) | |
| onleave | 何もしない | ラベル名 | マウス重なり外れ時、指定したラベルをサブルーチンコールする。 必ず[return]で戻ること | |
| clickse | 省略時は無音 | 音声ファイル名 | 指定すると、クリック時に効果音を再生する。既定バッファはSYS([playse]の既定SEとは異なる)で、再生は投げっぱなし(join=false相当)。[enable_event enabled=false]の間は鳴らない | |
| enterse | 省略時は無音 | 音声ファイル名 | 指定すると、ボタン上にマウスカーソルが載った時に効果音を再生する | |
| leavese | 省略時は無音 | 音声ファイル名 | 指定すると、ボタン上からマウスカーソルが外れた時に効果音を再生する | |
| clicksebuf | SYS | サウンドバッファ名 | クリック時効果音を再生するサウンドバッファを指定する | |
| entersebuf | SYS | サウンドバッファ名 | クリック時効果音を再生するサウンドバッファを指定する | |
| leavesebuf | SYS | サウンドバッファ名 | クリック時効果音を再生するサウンドバッファを指定する | |
| hint | 表示しない | ヒント文字列 |
指定した場合のみ、マウスカーソルを載せるとツールチップス表示する。 | |
| hint_style |
background-color: #3c3225; color: white; padding: 4px 8px; border-radius: 4px; font-size: 1.2em; ほか(狭いので省略) | CSS style | ツールチップ矩形のスタイル | |
| hint_opt | [button]と同様 | json | 解説は[button]を参照 | |
false:リンクの上に表示(横書き文字レイヤの動作) true:リンクの右に横倒しで表示(縦書き文字レイヤの動作) | ||||
[r] 改行
指定した文字レイヤの表ページに、改行を出力する。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ名 | |
| page | fore | fore、back | ページの裏表 | |
| record | true | true、false | 履歴に保存するか | |
| wait | 現在の文字表示速度 | 0〜;ミリ秒 | 一時的な文字表示速度。0で瞬時 | |
| style | 何もしない | CSS style | 文字の CSS Style を指定する。 このタグによる表示のみに適用、以降は元に戻る |
[rec_ch] 履歴書き込み
履歴に文字や付加情報を出力する。
「現在のページ」のテキストに文字を追加する。
「現在のページ」に対する、任意の属性も自由に追加できる。その属性はconst.sn.log.jsonにも含まれ、フレームに渡しJavaScriptなどで(JSON.parse()して)利用できる。
文字列内では[r]で改行できる。
→参考(機能ギャラリー・履歴と機能追加)
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| text | 現在値 | 表示したい文字列 | ルビ文法(《》)も使用可能、[r]で改行 | |
| style | 何もしない | CSS style |
文字の CSS Style を指定する。 このタグによる履歴表示のみに適用、以降は元に戻る。 ※[ch]でのみ、背景styleなどを一塊とする。 | |
| r_style | 何もしない | CSS style |
ルビの CSS Style を指定する。 このタグによる履歴表示のみに適用、以降は元に戻る |
bluesnovel:text/style/r_style/任意属性すべて対応 (ルビ文法と[r]も効く)。
本家はdisplay: none;を付けた[ch]として本文へ流し、履歴側でだけ見せる作りだが、 bluesnovelは履歴の蓄積が表示と別物なので、style/r_styleは[ch]と同じ 「本文ストリームへ埋め込む命令」の形で履歴にだけ積む。
text以外の属性(style/r_style含む)は、本家同様「現在のページ」の メタデータとしてconst.sn.log.jsonの各要素へそのまま乗る。 同一ページ内で複数回[rec_ch]を呼んだ場合は直近の指定が丸ごと勝つ(本家と同じ)。
そのためsave:sn.doRecLogがfalseでも記録される(明示的な書き込みなので)
[rec_r] 履歴改行
履歴に改行を出力する。
属性無し。
[reset_rec] 履歴リセット
履歴をクリアする。
応用として、履歴に加工した文字列を設定し、履歴画面に機能を追加する事も。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| text | 全てクリア | 文字列 | 履歴に設定したい文字列 |
[ruby2] 文字列と複数ルビの追加
親文字列とルビ文字列のセットで文字を追加する
【参考】ルビ記法
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ名 | |
| page | fore | fore、back | ページの裏表 | |
| t | 必須 | 文字列 | 親文字列 | |
| r | 必須 | 文字列 | ルビ文字列 | |
| style | 全てクリア | CSS style |
文字の CSS Style を指定する。 このタグによる表示のみに適用、以降は元に戻る | |
| r_style | 全てクリア | CSS style |
ルビの CSS Style を指定する。 このタグによる表示のみに適用、以降は元に戻る | |
| wait | 現在の文字表示速度 | 0〜;ミリ秒 | 一時的な文字表示速度。0で瞬時 |
[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 | true、false | HTML内にセレクタ(add・del属性)に対応する要素が見つからない場合にエラーを出すか |
[span] インラインスタイル設定
この指定以降の文字のレイアウト(フォントや文字色など)を指定する。
一時的に文字レイヤのlayout属性への指定を上書きするイメージ。 文字レイヤをクリア([clear_text]、[clear_lay])するとリセット、以降は元通り文字レイヤのlayout属性に従う
【参考】ルビ記法
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ | |
| page | fore | fore、back | ページの裏表 | |
| wait | 現在の文字表示速度 | 0〜;ミリ秒 | 一時的な文字表示速度。0で瞬時 | |
| style | 全てクリア | CSS style |
文字の CSS Style を指定する。 このタグ以降の文字表示に適用される。 | |
| r_style | 全てクリア | CSS style |
ルビの CSS Style を指定する。 このタグ以降のルビ表示に適用される。 | |
| in_style | 現在値 | 文字出現演出名 | [ch_in_style]で定義した文字出現演出名。[lay in_style=]と同じレイヤ状態を書き換える([clear_text]をまたいで持続。style等と違い属性なしの[span]でも解除しない) | |
| out_style | 現在値 | 文字消去演出名 | [ch_out_style]で定義した文字消去演出名。in_styleと同様レイヤ状態 | |
| ch_in_style | 何もしない | 文字出現演出名 | この[span]区間の文字だけに効く文字出現演出名(in_styleはレイヤ全体、こちらは文字ごと)。次の[span]まで、属性なしの[span]で解除 | |
| ch_out_style | 何もしない | 文字消去演出名 | この[span]区間の文字だけに効く文字消去演出名 | |
| r_align | 現在値 | ルビ揃えを指定する。 設定値は「[lay]文字レイヤ設定」を参照 |
[tcy] 縦中横を表示する
縦中横文字を追加する。ルビは同時に設定する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | デフォルト文字レイヤ | 文字レイヤ名 | 文字を表示するレイヤ | |
| page | fore | fore、back | ページの裏表 | |
| t | 必須 | 縦中横文字列 | 縦中横文字列、通常半角文字を指定する | |
| r | ルビ無し | ルビ文字列 | ルビ文字列 | |
| style | 全てクリア | CSS style |
文字の CSS Style を指定する。 このタグによる表示のみに適用、以降は元に戻る | |
| r_style | 全てクリア | CSS style |
ルビの CSS Style を指定する。 このタグによる表示のみに適用、以降は元に戻る | |
| wait | 現在の文字表示速度 | 0〜;ミリ秒 | 一時的な文字表示速度。0で瞬時 |
画像・画像レイヤ
[add_face] 差分名称の定義
差分名称を定義する。
本タグだけでは差分画像を表示しない。画像レイヤの[lay]タグface属性で指定する差分名称を登録するのみ。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 差分名称 | [lay]タグface属性で指定する差分名称 | |
| fn | 属性nameの値 | 画像ファイル名 | 表示する画像、アニメpng | |
| dx | 0 | 実数;横座標 | 基本画像左上を原点とする差分画像の表示横位置 | |
| dy | 0 | 実数;縦座標 | 基本画像左上を原点とする差分画像の表示縦位置 | |
| blendmode | 何もしない | ブレンドモード名 | このレイヤと下のレイヤとの重なりにおいて、 ドット単位で色のブレンド演算を行なう。 詳細はblendModeの解説を参照 |
[wv] 動画再生終了待ち
[lay]で開始したムービー再生の終了を待つ
何かしらの画像レイヤで再生している動画の終了を待つ
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| fn | 必須 | 動画ファイル名 | 再生終了を待つ動画 | |
| canskip | true | true、false | クリックなど(→詳細は[waitclick])でウエイトをキャンセルできるか | |
| stop | true | true、false | trueで「クリックキャンセル時の再生停止」、falseなら行なわない |
HTMLフレーム
[add_frame] フレーム追加
HTMLファイルをベースとする「フレーム」を追加する
注:これは HTML要素の iframe(インラインフレーム要素)で、フレームは全てのレイヤの手前に表示され、互い違いに重ねられない。
const.sn.frm.(フレーム名)系の値もセットする。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| id | 必須 | 文字列 | フレーム名。他のタグなどで操作・参照する歳の名前となる | |
| src | 必須 |
ファイル名 |
フレームとして読み込むhtmlファイルの ファイル名(画像や音声などのfn属性と同じように) | |
| alpha | 1.0 | 0.0〜1.0 | 透過度。0(完全透明)〜0.5(半透明)〜1(不透明) | |
| scale_x | 1.0 | 実数 | 横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転 | |
| scale_y | 1.0 | 実数 | 縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転 | |
| rotate | 0 | -360〜360;回転角度 | 正の値は時計回り | |
| visible | true | true、false | trueで行末クリック待ち記号を表示、falseで非表示 | |
| b_color | 透過 | 色指定。0x000000など | 背後の矩形色。初期値は 透過(htmlで画像を表示すれば表示) | |
| x | 0 | 実数;横座標 | 画面左上を原点とする画面内におけるフレームの横位置を指定 | |
| 必須 | 0 | 実数;縦座標 | 画面左上を原点とする画面内におけるフレームの縦位置を指定 | |
| width | フレームの横サイズ | 1〜;横幅 | 表示するフレームの横ドットサイズ。 元のサイズと異なる場合は拡大・縮小される | |
| height | フレームの縦サイズ | 1〜;縦幅 | 保存するフレームの縦ドットサイズ。 元のサイズと異なる場合は拡大・縮小される |
[frame] フレームに設定
フレームそのものの属性を設定する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| id | 必須 | フレーム名 | [add_fram]で定義したフレーム名 | |
| alpha | 1.0 | 0.0〜1.0 | 透過度。0(完全透明)〜0.5(半透明)〜1(不透明) | |
| scale_x | 1.0 | 実数 | 横方向を何倍に拡大/縮小するか。負の値ならレイヤを左右反転 | |
| scale_y | 1.0 | 実数 | 縦方向を何倍に拡大/縮小するか。負の値ならレイヤを上下反転 | |
| float | 何もしない | true、false | true:フレームを最前面に移動する | |
| index | 何もしない | 0〜 | フレームをindexで指定したインデックスに移動する。 0がもっとも背後。フレームを重ねるたびに1加算したindexになる | |
| dive | 何もしない | フレーム名 | フレームをdiveで指定したフレームのすぐ後ろに潜り込ませる | |
| rotate | 0 | -360〜360;回転角度 | 正の値は時計回り | |
| visible | true | true、false | trueで行末クリック待ち記号を表示、falseで非表示 | |
| disabled | false | true、false | trueでスライダーなど操作不可・[event]の【dom=系】イベント無効、falseで可能 | |
| b_color | 透過 | 色指定。0x000000など | 背後の矩形色。初期値は 透過(htmlで画像を表示すれば表示) | |
| x | 0 | 実数;横座標 | 画面左上を原点とする画面内におけるフレームの横位置を指定 | |
| 必須 | 0 | 実数;縦座標 | 画面左上を原点とする画面内におけるフレームの縦位置を指定 | |
| width | フレームの横サイズ | 1〜;横幅 | 表示するフレームの横ドットサイズ。 元のサイズと異なる場合は拡大・縮小される | |
| height | フレームの縦サイズ | 1〜;縦幅 | 保存するフレームの縦ドットサイズ。 元のサイズと異なる場合は拡大・縮小される |
[let_frame] フレーム変数を取得
フレーム内の変数から、値を取得する
関数名を指定した場合は関数を実行し、その戻り値を取得する。
【const.sn.frm.(id名).(var_name名)】に値がセットされる。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| id | 必須 | フレーム名 | [add_fram]で定義したフレーム名 | |
| var_name | 必須 | 文字列 | フレーム内の変数/関数名 |
[set_frame] フレーム変数に設定
フレーム内の変数に、値を設定する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| id | 必須 | フレーム名 | [add_fram]で定義したフレーム名 | |
| var_name | 必須 | 文字列 | フレーム内の変数名 | |
| text | 必須 | フレーム内の変数にセットする値 |
[tsy_frame] フレームトゥイーン開始
フレームのトゥイーンアニメを行なう
フレームのトゥイーンアニメを開始したあと、id属性指定により以下のタグを使用できる。
[pause_tsy](一時停止)
[resume_tsy](一時停止再開)
[stop_tsy](トゥイーン中断)
[wait_tsy](トゥイーン終了待ち)
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| id | 必須 | フレーム名 | [add_fram]で定義したフレーム名 | |
| time | 必須 | 0〜;ミリ秒 | トゥイーンにかける時間 | |
| delay | 0 | 0〜;ミリ秒 | トゥイーンを始める前の、何もしない待ち時間 | |
| repeat | 1 | 0〜 | 繰返し回数。0以下で無限ループ。1を設定すると「繰り返しなし」、2を設定すると「二回同じ動き」を行なう | |
| ease | Linear.None | イージング名 | 揺れのイージング(値の変化の仕方)を指定する。 イージングの変化はこちらの図(またはこちら)が分かりやすい。 指定できる値は[tsy]を参照 | |
| yoyo | false | true、false | (暫定)ヨーヨーのように逆方向に戻って繰り返す | |
| chain | なにもしない | レイヤ名 | 指定したレイヤのトゥイーンアニメが終了してから、このトゥイーンを続けて開始する | |
| alpha | いずれかを指定 | 何もしない | 相対値か絶対値 | 同名属性の変化目標値 |
| height | ||||
| rotation | ||||
| scale_x | ||||
| scale_y | ||||
| width | ||||
| x | leftの変化目標値 | |||
| 必須 | topの変化目標値 | |||
| path | ※[tsy]を参照 |
イベント
[clear_event] イベントを全消去
イベント予約を全て削除する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| global | false | true、false | trueを指定すると全ての大域イベントを削除する。 falseの場合は大域以外の全てのイベントを削除する |
[enable_event] イベント有無の切替
文字レイヤごとのイベント発生有効無効を設定する。
無効にするとマウスイベントが無効になり、[s]待ちなどでイベントが発生しなくなるが、イベント予約は別の話であり、削除などされない。 有効にすればマウスイベントが発生するようになり、再びイベント待ちされるようになる
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | デフォルト文字レイヤ | 文字レイヤ名 | イベント有効無効を設定するレイヤ | |
| enabled | true | true、false | イベントを有効にするか |
[event] イベントを予約
次の[s]などのイベント待ちに向けてイベント処理を予約する。
あるイベントが発生した際、global=falseのイベント予約は全て削除(予約破棄)される
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| key | 必須 | click、rightclick、middleclick、upwheel、downwheel、 swipeleft、swiperight、swipeup、swipedown、 イベント名※1 | イベントを発生させるトリガーイベント 修飾キーの同時押し(あるいは修飾キーを押しといて通常キー)を任意に組み合わせられます。「半角プラスで」「ABC順に」「イベントのキー名の前に」繋げて下さい。 (例1)key=alt+enter (例2)key=alt+ctrl+shift+enter swipe系はタッチ操作の他、マウスのドラッグでも発生します(マウス操作時のみ修飾キーを前置可能) | |
| call | false | true、false | trueの場合は[call]、falseは[jump]。 ただしcall=trueによりサブルーチンコールした場合、[return]によって「コールする前のイベント予約状態&待ち状態」に戻る | |
| fn | ... | ... | ... | イベント発生時にジャンプする先。指定方法は[jump]と同様。 callの場合、ジャンプ先から[return]で戻ると、 再度[s]などのイベント待ち状態に戻る |
| label | ... | ... | ... | (↑と同じ) クリック時ジャンプ先で「&sn.eventLabel」にて値を受け取れる |
| url | fnかlabelか、このurlを指定 | fn・label によるスクリプトジャンプ | ブラウザで開けるURL | クリック時にURLを開く。指定時は fn・label を無視する |
| global | false | true、false | trueを指定すると大域的なイベント扱いとなり、 イベント発生時にイベント予約が削除されない | |
| arg | ジャンプ先に渡したい値 | 指定した場合、クリック時ジャンプ先で「&sn.eventArg」にて値を受け取れる | ||
| del | true、false | trueを指定すると予約済みイベントを削除する。 fn/label/callとdelは同時指定できません | ||
| frame | 10 | 1〜 | ※未実装 key=enter_frameの場合のみ有効。 フレームイベントは毎秒何度も([window]のframerate回)発生するが、 アプリ全体が重くなるので、適度に間引いてイベントを時々発生させるため、 フレーム何回に一回イベントを発生させるかを指定する。 例)30フレームで動作するアプリでframe=15を指定すると、30/15=0.5秒に一回発生(タイミングにより厳密ではない) | |
| need_err | true | true、false | 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 | マウスホイール回転(奥に)※回転開始時に一度のみ発生 |
| 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キーを同時押し |
| meta+A | Metaキーと 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キーを同時押し |
| alt+meta+A | Altキーと Metaキーと Aキーを同時押し |
| ctrl+meta+A | Controlキーと Metaキーと Aキーを同時押し |
| meta+shift+A | Metaキーと Shiftキーと Aキーを同時押し |
| alt+ctrl+meta+A | Altキーと Controlキーと Metaキーと Aキーを同時押し |
| ctrl+meta+shift+A | Controlキーと Metaキーと Shiftキーと Aキーを同時押し |
| alt+meta+shift+A | Altキーと Metaキーと Shiftキーと Aキーを同時押し |
| alt+ctrl+meta+shift+A | Altキーと Controlキーと Metaキーと 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]などでイベントが登録されていれば、イベント発生待ちを行う。
吉里吉里仕様【スキップできない】記述から、スキップや自動読みさせない
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| visible | true | true、false | trueで行末クリック待ち記号を表示、falseで非表示 | |
| x | 0 | 実数;横座標 | 文字表示位置左上を原点とする横座標 | |
| 必須 | 0 | 実数;縦座標 | 文字表示位置左上を原点とする縦座標 | |
| width | 画像の横サイズ | 1〜;横幅 | 表示する画像の横ドットサイズ。 元のサイズと異なる場合は拡大・縮小される | |
| height | 画像の縦サイズ | 1〜;縦幅 | 保存する画像の縦ドットサイズ。 元のサイズと異なる場合は拡大・縮小される | |
| global | true | true、false | グローバルイベント待ちを有効にするか |
[p] 改ページクリック待ち
シナリオファイルの順次処理を停止し、クリックやキー押下(→詳細は[waitclick])を待つ。
「breakpage」という画像やアニメpngファイルが用意されていれば、改ページクリック待ちマークとして表示する。
クリックやキー押下が発生した場合、処理を再開する。
[event]などでイベントが登録されていれば、イベント発生待ちを行う。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| visible | true | true、false | trueで改ページ記号を表示、falseで非表示 | |
| er | 何もしない | true、false | trueで改ページ待ち後に[er]処理を行なう | |
| x | 0 | 実数;横座標 | 文字表示位置左上を原点とする横座標 | |
| 必須 | 0 | 実数;縦座標 | 文字表示位置左上を原点とする縦座標 | |
| width | 画像の横サイズ | 1〜;横幅 | 表示する画像の横ドットサイズ。 元のサイズと異なる場合は拡大・縮小される | |
| height | 画像の縦サイズ | 1〜;縦幅 | 保存する画像の縦ドットサイズ。 元のサイズと異なる場合は拡大・縮小される | |
| global | true | true、false | グローバルイベント待ちを有効にするか |
[s] 停止する
シナリオファイルの順次処理を停止する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| global | true | true、false | グローバルイベント待ちを有効にするか |
シナリオファイルの順次処理を停止する。
[event]などでイベントが登録されていれば、イベント発生待ちを行う。
[set_cancel_skip] スキップ中断予約
スキップ中断を予約
廃止、不要に
[wait] ウェイトを入れる
指定時間スクリプト処理を待ち、再開する。
[event]などでイベントが登録されていても、イベント発生待ちを行わない。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| time | 必須 | 0〜;ミリ秒 | 処理を待つ時間 | |
| canskip | true | true、false | クリックなど(→詳細は[waitclick])でウエイトをキャンセルできるか | |
[waitclick] クリックを待つ
シナリオファイルの順次処理を停止し、クリックやキー押下※を待つ。
属性無し。
クリックやキー押下が発生した場合、処理を再開する。
[event]などでイベントが登録されていれば、イベント発生待ちを行う。
※クリックやキー押下とは、以下のイベントを差す。
click
downwheel(下方向へのマウスホイール)
enter
space
down(矢印キーの下)
BGM・効果音
[fadebgm] BGMのフェード
BGMを指定した音量に、段階的に変化させる。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| volume | 必須 | 0.0〜1.0 | 音量 | |
| time | 必須 | 0〜;ミリ秒 | フェード時間 | |
| delay | 0 | 0〜;ミリ秒 | 変化する前に待機する遅延時間 |
[fadeoutbgm] BGMのフェードアウト
BGMを無音に、段階的に変化させる。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| time | 必須 | 0〜;ミリ秒 | フェード時間 | |
| stop | true | true、false | trueで「フェード終了時の再生停止」、falseなら行なわない | |
| delay | 0 | 0〜;ミリ秒 | 変化する前に待機する遅延時間 |
[fadeoutse] 効果音のフェードアウト
効果音を無音に、段階的に変化させる。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| buf | SE | サウンドバッファ名 | 効果音を識別する名前。サウンドバッファを変えれば同時に複数の音を操作することが出来ます | |
| time | 必須 | 0〜;ミリ秒 | フェード時間 | |
| stop | true | true、false | trueで「フェード終了時の再生停止」、falseなら行なわない | |
| delay | 0 | 0〜;ミリ秒 | 変化する前に待機する遅延時間 |
[fadese] 効果音のフェード
効果音を指定した音量に、段階的に変化させる。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| buf | SE | サウンドバッファ名 | 効果音を識別する名前。サウンドバッファを変えれば同時に複数の音を操作することが出来ます | |
| volume | 必須 | 0.0〜1.0 | 音量 | |
| time | 必須 | 0〜;ミリ秒 | フェード時間 | |
| delay | 0 | 0〜;ミリ秒 | 変化する前に待機する遅延時間 |
[playbgm] BGM の演奏
BGMを再生する。
[playse]とは違い、キー押下Skip中でも必ず再生を行なう。(canskip = false固定)
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| fn | 必須 | BGM音声ファイル名 | 再生する音声ファイル名 | |
| loop | true | true、false | 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 | true、false | trueで読み込みを待って次のタグへ進む | |
| start_ms | 0(冒頭) | 0〜;ミリ秒 | 再生の開始位置を指定する。 | |
| end_ms | 末端 | 整数;ミリ秒 |
再生の終了位置を指定する。 正の値は「冒頭から何ms目を終端とするか」 負の値は「末尾から何ms手前を終端とするか」の指定。 | |
| ret_ms | 0(冒頭) | 0〜;ミリ秒 |
ループ戻り位置を指定する。 ループ再生中にend_ms指定位置(省略時は末尾)に到達した場合、この指定位置に戻る。 ループ再生しない(loop=false)際は無視される。 |
[playse] 効果音の再生
効果音を再生する。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| fn | 必須 | 効果音音声ファイル名 | 再生する音声ファイル名 | |
| buf | SE | サウンドバッファ名 | 効果音を識別する名前。サウンドバッファを変えれば同時に複数の音を操作することが出来ます | |
| loop | false | true、false | 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 | true、false | trueで読み込みを待って次のタグへ進む | |
| canskip | true | true、false | trueでキー押下Skip中なら再生をしない | |
| start_ms | 0(冒頭) | 0〜;ミリ秒 | 再生の開始位置を指定する。 | |
| end_ms | 末端 | 整数;ミリ秒 |
再生の終了位置を指定する。 正の値は「冒頭から何ms目を終端とするか」 負の値は「末尾から何ms手前を終端とするか」の指定。 | |
| ret_ms | 0(冒頭) | 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 | true、false | trueでクリックキャンセル可能にする | |
[wf] 効果音フェードの終了待ち
効果音 フェードの終了を待つ。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| buf | SE | サウンドバッファ名 | 効果音を識別する名前。サウンドバッファを変えれば同時に複数の音を操作することが出来ます | |
| canskip | false | true、false | trueでクリックキャンセル可能にする | |
[wl] BGM 再生の終了待ち
BGM 再生の終了を待つ。
loop=true([playbgm]のデフォルト値)なら待たない。
利用時は【音声再生[playbgm]がjoin=true(ちなみにデフォルト)であること】を必須条件とします。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
[ws] 効果音再生の終了待ち
効果音再生の終了を待つ。
loop=trueなら待たない。 利用時は【音声再生[playse]がjoin=true(ちなみにデフォルト)であること】を必須条件とします。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| buf | SE | サウンドバッファ名 | 効果音を識別する名前。サウンドバッファを変えれば同時に複数の音を操作することが出来ます | |
| canskip | false | true、false | trueでクリックキャンセル可能にする | |
| stop | true | true、false | trueで「クリックキャンセル時の再生停止」、falseなら行なわない |
[xchgbuf] サウンドバッファの交換
二つのバッファを交換する。未再生でも再生中でも良いが、フェード中は避けること。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| buf | SE | サウンドバッファ名 | サウンドバッファ名 | |
| buf2 | SE | サウンドバッファ名 | もう一つのサウンドバッファ名 |
条件分岐
[else] その他ifブロック開始
プログラム言語における、条件分岐のelse文。
属性無し。
詳細は【開発ガイド:式の評価と条件分岐】をご覧下さい。
[elsif] 別条件のifブロック開始
プログラム言語における、条件分岐のelsif文。
詳細は【開発ガイド:式の評価と条件分岐】をご覧下さい。
[endif] ifブロックの終端
プログラム言語における、条件分岐のendif文。
属性無し。
詳細は【開発ガイド:式の評価と条件分岐】をご覧下さい。
[if] ifブロックの開始
プログラム言語における、条件分岐のif文。
詳細は【開発ガイド:式の評価と条件分岐】をご覧下さい。
ラベル・ジャンプ
[button] ボタンを表示
文字レイヤにボタンを配置する。
※選択肢として使用する場合、ジャンプ先のラベル直後には必ず[record_place]を記述して、ジャンプ直後でセーブしても正しくセーブされるようにして下さい。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | デフォルト文字レイヤ | 文字レイヤ名 | ボタンを配置する文字レイヤ | |
| page | back | fore、back | ページの裏表 | |
| pic | 必須 | 画像ファイル名 | 画像ボタンとして配置する画像を指定する。 ただし画像は縦に三等分し、左から「通常時」「クリック押下時」「マウスカーソルを載せた時」の画像として表示する | |
| text | ... | ボタンにする文字列 | 文字ボタンとして配置する文字列を指定する。 picかtextのどちらかの指定を必須とする | |
| b_pic | 画像ファイル名 | 文字ボタンの背景画像が指定できる。画像の大きさにかかわらず、文字ボタンのちょうど真ん中に来るよう配置される | ||
| width | ※100 | 1〜;横幅 | 文字ボタンの横幅を指定する。画像ボタンの場合はこの指定を無視し、画像横幅の1/3にする | |
| height | ※30 | 1〜;縦幅 | 文字ボタンの縦幅を指定する。画像ボタンの場合はこの指定を無視し、画像横幅の1/3にする。 また、文字は必ず横一列になるため、この設定値はフォントサイズと兼用になる | |
| style | ※ | CSS style |
文字ボタン上にマウスカーソルが乗っていない状態の CSS スタイル。 style='color: deepskyblue;' のように指定する。 ※以下がデフォルト値であり、指定できる主なプロパティ。 color: black; text-align: center; font-family: 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', '游ゴシック Medium', meiryo, sans-serif; font-size: 【height属性の値。未指定時は 30px】; padding: 5px; text-shadow: 0 0 7px rgba(255, 255, 255, 0.7); | |
| style_hover | styleの設定+「color: white;」を採用 | CSS style | 文字ボタン上にマウスカーソルが乗っている状態(クリックしていない)の CSS スタイル。 設定できる値はstyleと同様 | |
| style_clicked | style_hoverの設定+「text-shadow: none;」を採用 | CSS style | 文字ボタン上にマウスカーソルが乗っている状態(クリックしている)の CSS スタイル。 設定できる値はstyleと同様 | |
| alpha | 1.0 | 0.0〜1.0;透過度 | 透過度。0(完全透明)〜0.5(半透明)〜1(不透明) | |
| left top center middle right bottom s_right s_bottom | ※ | ※ | ※詳細は[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 | true、false | falseだと押せないボタンとなり、クリックイベントが発生しない。 これにより文字レイヤの任意の位置に画像表示できる機能を提供する。 画像は三等分しない。イベントや効果音指定は無効だが、ヒント機能は有効 | |
| call | false | true、false | trueの場合は[call]、falseは[jump]。 ただしcall=trueによりサブルーチンコールした場合、[return]によって「コールする前のイベント予約状態&待ち状態」に戻る | |
| fn | どちらか、もしくは両方を指定 | 処理中のスクリプトファイル | スクリプトファイル名 | クリック時にジャンプする先 |
| label | スクリプトファイルの先頭 | ラベル名(半角アスタリスク*も含む) | コール先のスクリプトファイルにあるラベル | クリック時ジャンプ先で「&sn.eventLabel」にて値を受け取れる |
| url | fnかlabelか、このurlを指定 | fn・label によるスクリプトジャンプ | ブラウザで開けるURL | クリック時にURLを開く。指定時は fn・label を無視する (bluesnovel)対応:[link url=]・[event url=]と同じく別タブで開く( window.open)。シナリオは止まったまま進まない |
| global | false | true、false | 詳細は[event]と同様。 ※ボタンを[trans]する場合はtrueにしておく (bluesnovel)受理はするが効果を持たない:表示されている間は常にクリック可能(本家のtrue相当)が既定のため。[link global]と同じ | |
| arg | ジャンプ先に渡したい値 | 指定した場合、クリック時ジャンプ先で「&sn.eventArg」にて値を受け取れる | ||
| onenter | 何もしない | ラベル名 | マウス重なり時、指定したラベルをサブルーチンコールする。 必ず[return]で戻ること (bluesnovel)[link onenter]と同じ経路。クリックの読み進めとは別扱い(読み戻り履歴にも触れない) | |
| onleave | 何もしない | ラベル名 | マウス重なり外れ時、指定したラベルをサブルーチンコールする。 必ず[return]で戻ること | |
| clickse | 省略時は無音 | 音声ファイル名 | 指定すると、クリック時に効果音を再生する | |
| enterse | 省略時は無音 | 音声ファイル名 | 指定すると、ボタン上にマウスカーソルが載った時に効果音を再生する | |
| leavese | 省略時は無音 | 音声ファイル名 | 指定すると、ボタン上からマウスカーソルが外れた時に効果音を再生する | |
| clicksebuf | SYS | サウンドバッファ名 | クリック時効果音を再生するサウンドバッファを指定する | |
| entersebuf | SYS | サウンドバッファ名 | クリック時効果音を再生するサウンドバッファを指定する | |
| leavesebuf | SYS | サウンドバッファ名 | クリック時効果音を再生するサウンドバッファを指定する | |
| blendmode | 何もしない | ブレンドモード名("screen"など) | このボタンと下のレイヤとの重なりにおいて、 ドット単位で色のブレンド演算を行なう。 詳細はblendModeの解説を参照 | |
| hint | 表示しない | ヒント文字列 |
指定した場合のみ、マウスカーソルを載せるとツールチップス表示する。 | |
| hint_style |
background-color: #3c3225; color: white; padding: 4px 8px; border-radius: 4px; font-size: 1.2em; ほか(狭いので省略) | CSS style | ツールチップ矩形の CSS スタイル | |
| hint_opt |
{"placement": "bottom"}
| json |
{"placement": "(値)"}の形式で、値は top/bottom/left/right のいずれか。 画面端にはみ出す場合は自動で反対側へ切り替わり、それでも収まらなければ画面内へ位置をずらす。 【tips】JSON文法は「文字列は " で囲む、' はダメ」などむやみに厳密なため、サイト「JSON Pretty Linter - JSONの整形と構文チェック」などを使用することを推奨します。 | |
false:リンクの上に表示(横書き文字レイヤの動作) true:リンクの右に横倒しで表示(縦書き文字レイヤの動作) | ||||
| 🔴 (以下は未作成) | (以下すべて bluesnovel 未対応) | |||
| event_at_down | false | true、false | true:押すだけでイベント発動(画面常駐のシステムボタンなどに) false:押して離すとイベント発動 | |
| draggable | false | true、false | true:テキスト背後の矩形をドラッグできる。 event_at_down=trueだとクリックイベントが発生しなくなる | |
| drag_x | 0 | 画面左上を原点とする座標 | ドラッグ範囲の左上始点 | |
| drag_y | 0 | (↑と同じ) | (↑と同じ) | |
| drag_w | 画面横幅 | ドラッグ範囲縦横ピクセル数 | ドラッグ範囲縦横サイズ | |
| drag_h | 画面縦幅 | (↑と同じ) | (↑と同じ) | |
| dragmove_fn | ... | ... | ... | ドラッグ中にサブルーチンコールする先。 指定方法は[jump]と同様 |
| dragmove_label | ... | ... | ... | (↑と同じ) |
| dragmove_arg | 文字列 | 指定した場合、ドラッグ中コール先で「&sn.eventArg」にて値を受け取れる |
[call] サブルーチンコール
スクリプト処理の現在位置をコールスタックに積み、ジャンプする。
ジャンプ先での[return]により本タグの次の位置に戻る事が出来る。
※マニアックな話ですが、あらゆるタグの中で唯一「通常、既読としない」タグです。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| fn | どちらか、もしくは両方を指定 | 処理中のスクリプトファイル | スクリプトファイル名 | コール先のスクリプトファイル [call fn=ext_*]のようにワイルドカードをサポート。マッチするスクリプトを順不同にコールする。 (ワイルドカードは後方のみ) |
| label | スクリプトファイルの先頭 | ラベル名(半角アスタリスク*も含む) | コール先のスクリプトファイルにあるラベル | |
| count | false | true、false | タグ位置を既読とするか | |
| clear_local_event | 何もしない | true、false | trueの場合は[clear_event]を行なってからコールする |
[jump] シナリオジャンプ
指定位置のスクリプトにジャンプする
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| fn | どちらか、もしくは両方を指定 | 処理中のスクリプトファイル | スクリプトファイル名 | コール先のスクリプトファイル |
| label | スクリプトファイルの先頭 | ラベル名(半角アスタリスク*も含む) | コール先のスクリプトファイルにあるラベル | |
| count | true | true、false | タグ位置を既読とするか |
ラベルは例えば以下のように使います。
*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 の状態でのみページ移動履歴が記録される。
[l][p][s]など([wait]は対象外)で停止した際にそのページ状態の記録を行う。
・save変数も復元する。
・前述二項の理由により、冒頭ページに &save:sn.doRecLog = true と [record_place]が必須。
(save変数復元で &save:sn.doRecLog = false になるケースがある)
ページ移動状態かは tmp:const.sn.isPaging(Boolean値)でわかる。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| clear | いずれかを指定 | なにもしない | true、false | trueでページ状態記録をクリアする |
| to | なにもしない | oldest、prev、next、newest、exit、load |
oldest:最古のページに移動 prev:ひとつ前のページに戻る next:ひとつ次のページに進める newest:最新のページに移動 exit:ページ移動状態から抜ける load:(ページ移動状態から)表示中ページからロードする | |
| place | なにもしない | 0以上の整数 | 分家独自。バックログ(const.sn.log.json)の N 行目が指す場面へ跳ぶ。上のcalloutを参照 | |
| style | なにもしない | CSS style | ページ移動中の既読文字に適用する CSS スタイル。初期値は【color: yellow; text-shadow: 1px 1px 0 #000, -1px 1px 0 #000, 1px -1px 0 #000, -1px -1px 0 #000;】 | |
| key | なにもしない | なにもしない | イベント名(カンマ区切りで複数可) |
ページ移動状態中に有効にするグローバルイベントを限定できる。 空白時は全て有効。 |
[pop_stack] コールスタック破棄
コールスタックを一つ破棄する
極力使用しないコーディングを推奨します。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| clear | false | true、false | true:全て破棄する。空でもエラーを出さない false:スタックを一つ破棄する。空の場合はエラーメッセージ&アプリ停止 |
[return] サブルーチンから戻る
コールスタックに積まれているジャンプ先に戻るようなジャンプをする。
最後に積んだコールスタックを一つ破棄する。
マクロ内で実行した場合はマクロを脱出する。
fn・label属性で戻り先を上書き指定できる。(マクロ内からジャンプしたいときなど)
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| fn | どちらか、もしくは両方を指定 | 処理中のスクリプトファイル | スクリプトファイル名 | 戻り先のスクリプトファイル |
| label | スクリプトファイルの先頭 | ラベル名(半角アスタリスク*も含む) | 戻り先のスクリプトファイルにあるラベル |
マクロ
[bracket2macro] 括弧マクロの定義
属性textを持つマクロやタグを、任意の二つの文字を括弧とし、括弧で囲った記述で代用できるよう
例 …… [bracket2macro name=title text=⦅⦆]
(訂正:「任意の二つの文字」は特定の半角文字じゃなくてもよいです)
※適用範囲について
本タグより前にロードされたスクリプトファイルには適用されません。
またスクリプトファイルに本タグが記述された場合、本タグより前に出現した半角文字にも適用されません。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| text | 必須 | 特定の括弧にする始点終点の二文字文字 | マクロに出来るのは英文字、空白、;、[、]、、=、&、|、《、》以外のみ。 正規表現で言えば /[\w\s;[]=&|《》]/ 以外。 一文字マクロや定義済みの括弧文字は使用できない | |
| name | 必須 | マクロ名 | 半角文字に割り当てるマクロ名を指定。 組み込みタグか、[macro]による定義済みマクロ名で無ければならない。 組み込みタグやマクロは属性textだけを指定しても問題なく動作し、 それを処理すること。渡される属性textは空文字の場合もある |
[char2macro] 一文字マクロの定義
属性無しのマクロやタグを、半角文字の記述で代用できるよう定義する
本タグより前にロードされたスクリプトファイルには適用されません。
またスクリプトファイルに本タグが記述された場合、本タグより前に出現した半角文字にも適用されません。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| char | 必須 | 一文字 | マクロにする半角文字。 マクロに出来るのは英文字、空白、;、[、]、、=、&、|、《、》以外のみ。 正規表現で言えば /[\w\s;[]=&|《》]/ 以外。 括弧文字や定義済みの一文字マクロは使用できない | |
| name | 必須 | 定義済みのマクロ名 | 半角文字に割り当てるマクロ名を指定。 組み込みタグか、[macro]による定義済みマクロ名で無ければならない |
[endmacro] マクロ定義の終了
[macro]と[endmacro]に囲まれた部分をマクロとして定義する。
[macro] マクロ定義の開始
[macro]と[endmacro]に囲まれた部分をマクロとして定義する。
定義したマクロは既存のタグと同様に使用できる。
渡した属性は、マクロ側で「mp:」「%」スコープにより参照できる。
(ただし式では %a という記述はできず、mp:a 記述のみサポートする)
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | 必須 | 未定義のマクロ名 | 文字列 | 既存のタグやマクロと重複しないマクロ名 |
| nowarn_unused | false(警告する) | true、false |
拡張機能の未使用マクロ警告を抑制、表示しないようにする。 「使われなくても構わないマクロ」であると示す。 SKYNovelの動作には影響なく、拡張機能のみが使用する。 | |
| sum | 文字列 |
拡張機能に表示(※1)するこのマクロの概要。改行記述(※2)が出来る。 SKYNovelの動作には影響なく、拡張機能のみが使用する。 | ||
| %〜(任意のマクロ引数名) | (コメントで解説) |
拡張機能に表示(※1)するこのマクロの引数説明。 その見た目通り、マクロ定義時の変数名に沿っている。(mp:〜 と同様) 記述に文法がある(※3)。 SKYNovelの動作には影響なく、拡張機能のみが使用する。 | ||
| detail | 文字列 |
拡張機能に表示(※1)するこのマクロの詳細説明。改行記述(※2)が出来る。 SKYNovelの動作には影響なく、拡張機能のみが使用する。 |
※1 マクロの概要や引数の説明や詳細説明を以下に表示する
・リファレンス検索パレット(【コマンドパレット】-【リファレンス検索パレットを開く】)
・アウトライン(アウトラインビューに表示)
・マウスホバー(タグ・マクロ名あたりにマウスカーソルを重ねる)
・コード補完機能(スクリプト中で [ や = や半角空白入力時に表示される入力候補)
・引数の説明(スクリプト中で [ や = や半角空白入力時に表示されるホバー)
※2 改行記述について
【\n】文字を入れると、
・一行しか表示できない状況(コード補完機能によるタグ選択中)では【\n】手前までの一行目だけ表示
・複数行表示可能なホバーチップスなどでは、改行して全て表示する
※3 引数説明記述について
書き方があるので、要素を分解して解説する。
例)%layer?='レイヤ名|mes|処理対象の文字レイヤ'
- 【%】 この属性が引数説明記述であることを示す。
- [macro]タグでのみ、「%」で始まる属性は、そのマクロ使用時引数の同名属性解説を示す
- その見た目通り、マクロ定義時の変数名に沿っている。(mp:〜 と同様)
- 【layer】 属性名
- 【余談】SKYNovel 1.36.0 以降は漢字や平仮名なども属性名に使用できる
- 【?】 省略記号
- ? を書くと【省略可能な属性】であると示す。
- ? を書かないと必須属性。 【余談】TypeScriptの省略可能なプロパティを意味する「?」と同様の意味合い
- 【=】
- 【レイヤ名|mes|trueなら〜】 属性値はその他の項目。値は | で区切られた複数の項目になっている
- 【レイヤ名】
- 一項目:値域・型
- 例は「レイヤ名」が指定されているので、[add_lay] で追加したレイヤ名を指定できる
- 他に【ブレンドモード名】【実数】など。タグリファレンスを眺めると参考になる。
- 【mes】
- 二項目:省略時の値
- 例ではレイヤ名「mes」を指定したのと同じになる。この項目そのものも省略してもよいが、【||】表記にすると三項目の説明が書ける
- 【処理対象の文字レイヤ】
- 三項目:概要、マクロを使う人にわかりやすい説明文
- 【レイヤ名】
しおり
[copybookmark] しおりの複写
しおりデータを複写する
セーブデータパスに to, from 属性と同名のフォルダがあればコピーする
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| from | 必須 | 0〜 | 複写元のしおり番号 | |
| to | 必須 | 0〜 | 複写先のしおり番号 |
[erasebookmark] しおりの消去
しおりデータを削除する
セーブデータパスに place 属性と同名のフォルダがあれば削除する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| place | 必須 | 0〜 | 処理対象のしおり番号 |
[load] しおりの読込
しおりデータを読み込み、スクリプト処理を再開する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| place | 必須 | 0〜 | 処理対象のしおり番号 | |
| fn | ... | ... | ... | ロード後最初にしたい共通処理をコールする(処理は[return]で終わらせる)。指定方法は[jump]と同様。 ただし指定する際、fnとlabelは両方指定しなければならない |
| index | 指定なし | トークン番号 | 指定すると、保存時点の再開位置でなくfn(省略時は現在のスクリプト)のこの位置へ直接ジャンプする(ページ移動用)。この時labelは無視され、fn単独で指定できる | |
| do_rec | true | true、false | ロードした状態を次の[record_place]代わりに持たせるか。falseなら持たせない([reload_script]用) |
[record_place] セーブポイント指定
本タグの位置を、スクリプト読み込み時に再開する位置として設定する。
本タグの位置を、スクリプト読み込み時に再開する位置として設定する。
本タグで「しおりを挟み」、[save]タグで実際にデータをセーブするイメージ。
※マクロやサブルーチン内に記述された場合、最初に積まれたコールスタック位置をセーブポイントとする。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 全てのレイヤ | レイヤ名(カンマ区切りで複数可) | しおりに状態を保存するレイヤ。Save/Load画面レイヤや設定画面レイヤなど、保存すべきでないレイヤを除いて指定すべき | |
| reset_sound | true | true、false | 全てのサウンドを停止・再度再生開始するか |
[reload_script] スクリプト再読込
現在処理中のスクリプトをリロードする。
属性無し。
現在処理中のスクリプトをリロードする。
実行位置は[record_place]によるセーブポイントまで戻って再開する。
テンプレの ext_lang.sn が「表示言語を変えたら本文を読み直す」のに使っている。
※スクリプトを大幅に変えた後だと、正常に再開できない場合があります。
bluesnovel:再開位置のスクリプトファイルは無条件でキャッシュを捨てて読み直すため、 派生ファイル(fn@)だけを狙い撃ちして捨てる本家の専用処理は不要(結果は同じ)。
[save] しおりの保存
しおりデータを保存する。
しおりデータを保存する。
読み込み時に再開するスクリプトの位置は最後に[record_place]をコールした位置。
指定した place が sys:const.sn.save.place と同じ場合、const.sn.save.place を +1 する
。
[record_place]がゲーム状態(レイヤ状態など)をバッファに退避し、
[save]は指定しおりに書き出す機能。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| place | 必須 | 0〜 | 処理対象のしおり番号 | |
| path | 従来通り SharedObjectに保存 | フォルダパス | 指定した場合、しおりをファイルとしてフォルダパス下に保存する |
画面揺らし
[quake] 画面を揺らす
画面全体を揺らす
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| time | 必須 | 0〜;ミリ秒 | 揺らす時間 | |
| hmax | 10 | 0〜 | 横方向の最大揺らし幅。幅はランダム値を取る | |
| vmax | 10 | 0〜 | 縦方向の最大揺らし幅。幅はランダム値を取る |
[stop_quake] 画面揺らし中断
画面揺らしを中断する
[wq] 画面揺らし終了待ち
画面揺らしの終了を待ち、再開する。
[event]などでイベントが登録されていても、イベント発生待ちを行わない。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| canskip | true | true、false | クリックなど(→詳細は[waitclick])でウエイトをキャンセルできるか |
システム
[close] アプリの終了
アプリケーションを終了する
[export] プレイデータをエクスポート
プレイデータをファイルとしてエクスポートする
ダウンロードフォルダにプレイデータファイルが保存される。
ブラウザならファイルをダウンロードする。
プレイデータ拡張子、ウェブ版は.swpd、アプリ版は.spdで互換性はない。
暗号化するプロジェクトの場合、出力するプレイデータファイルも暗号化される。
関連するデータファイル([snapshot fn='userdata:/777/pic.jpg']などと保存したサムネイル画像など)も含む。 bluesnovelでは{sys, mark, kidoku, storage}を1つのファイルとして丸ごと暗号化するため、 本家と異なり関連データファイルも暗号化の対象になる。
エクスポート完了時には【sn:exported】というイベントを発火する。
【[event key='sn:exported' 〜]】という記述でジャンプできる。
[import] プレイデータをインポート
プレイデータファイルをインポートする
読み込みダイアログが表示され、選択したプレイデータファイルをインポートする。
プレイデータ拡張子、ウェブ版は.swpd、アプリ版は.spdで互換性はない。
タグはダイアログを表示次第すぐ次の処理に移り、ユーザーの選択を待たない。
インポート完了時には【sn:imported】というイベントを発火する。
【[event key='sn:imported' 〜]】という記述でジャンプできる。
関連するデータファイル([snapshot fn='userdata:/777/pic.jpg']などと保存したサムネイル画像など)も含む。
[loadplugin] プラグインの読み込み
プラグインとして読み込む
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| fn | 必須 | CSSファイルURL | 読み込むプラグインのファイル名 (拡張子はcssのみ、Webフォント用) | |
| join | true | true、false | trueで読み込みを待って次のタグへ進む |
[navigate_to] URLを開く
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| url | 必須 | ブラウザで開けるURL | 開くURL |
[snapshot] スナップショット
アプリ表示部分全体を画像として保存する
画面スナップショットをダウンロードフォルダに保存する。
ファイル名にはプロジェクト名と日時どが追加される。
※ブラウザ版では限定的なサポートです。文字表示が正確ではないので注意。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 全てのレイヤ | レイヤ名(カンマ区切りで複数可) | ||
| page | fore | fore、back | ページの裏表 | |
| fn | snapshot | 保存するファイル名 | 省略時はデスクトップに保存 保存する画像フォーマット(png、jpg)は拡張子で指定 | |
| width | アプリ表示部分の横サイズ | 1〜;横幅 | 保存する画像の横ドットサイズ。 元のサイズと異なる場合は拡大・縮小される | |
| height | アプリ表示部分の縦サイズ | 1〜;縦幅 | 保存する画像の縦ドットサイズ。 元のサイズと異なる場合は拡大・縮小される | |
| smoothing | false | true、false | 拡大・縮小保存される場合、スムージングするか | |
| 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 | 必須 | 文字列 | タイトル文字列 |
[toggle_full_screen] 全画面状態切替
呼び出す度にアプリの全画面/ウインドウモードを切り替えます。
現在の状態は文字列変数「tmp:const.sn.displayState」で分かる。trueならフルスクリーン
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| key | イベント登録せずモード切替 | イベントのキー名 | イベントを発生させるトリガーイベントを予約する。 key属性の値は[event]を参照 |
[update_check] 更新チェック機能
ネットにアプリの更新を確認し、ダウンロードもサポートする
アプリの最新バージョンをネットで確認する。(アプリ版でのみ動作)
処理は非同期に行われ、更新があった時のみ更新確認ウインドウが表示される。
ダウンロードフォルダにアプリパッケージの dmg(インストーラー exe)をダウンロードする。
開発中はデバッグスイッチ devtool・debugLog を有効にすると処理状況やエラーメッセージなども見られて便利です

| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| url | 必須 | URL文字列 | latest(-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 | 何もしない | true、false | trueを指定すると、アプリウインドウをデスクトップの中央に移動する | |
| x | 何もしない | 実数;横座標 | デスクトップにおけるアプリウインドウの横位置を指定 | |
| 必須 | 何もしない | 実数;縦座標 | デスクトップにおけるアプリウインドウの縦位置を指定 |
デバッグ・その他
[dump_lay] レイヤのダンプ
レイヤの内容をデバッグ表示する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | 全てのレイヤ | レイヤ名(カンマ区切りで複数可) | デバッグ表示するレイヤ名を指定。半角カンマ区切りで複数レイヤを指定可能 |
[dump_script] 外部スクリプト連携
実行中スクリプトを外部の関数へ渡す
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| set_fnc | 必須 | globalThis 上の関数名 | スクリプト全文(文字列)を受け取るコールバック。スクリプトが切り替わった時だけ呼ばれる | |
| break_fnc | 何もしない | globalThis 上の関数名 | (行番号, 桁, goto) を受け取るコールバック。停止(goto=true)・再開(goto=false)のたびに呼ばれる。桁は停止タグの行内位置(1始まり) | |
| need_err | true | true、false | globalThis に指定名の関数が見つからない場合にエラーを出すか |
[dump_stack] スタックのダンプ
[call]等によるコールスタックの内容をデバッグ表示する
[dump_val] 変数のダンプ
変数の内容をデバッグ表示する
[log] ログ出力
ダウンロードフォルダにテキスト出力する(追記ではなく上書き。追記する。出力日時・分・スクリプト名や行番号やプロジェクト名も出力
Web版でもログファイルをダウンロードします。ただし連続だと間隔が開いてないと失敗します。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| text | 必須 | 文字列 | ログ出力する値 |
[trace] デバッグ表示へ出力
属性をデバッグ表示する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| text | 必須 | 文字列 | デバッグ表示する値 |