sub.sn の定義マクロ
[sys_scenario_start] シナリオ開始時共通処理
タイトルからゲーム本編を開始する際の処理を行なう。
引数無し。
シナリオファイル冒頭に記述するべき。
[sys_title_start] タイトル開始共通処理
ゲーム本編を開始する際の処理を行なう。
引数無し。
タイトルから本編、あるいはしおりロードから本編を開始する際に呼ぶ。
クリック待ち記号、フォント、セーブロード・設定画面などを準備する。
[wc] 文字数分のウェイトを入れる
文字数分のウェイトを入れる
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| time | y | 整数値 | 0.0〜 |
文字数を指定。 指定した文字数 x 文字表示ウェイト 分のウェイトを行なう |
[plc] 改ページ
改ページと関連処理を行なう。
改ページ記号を表示する前に「自動読み進み状態で」「音声が再生中」なら音声再生終了を待つ。
改ページ記号を表示しクリックを待ち、
押下後[er](テキストを消去)し[record_place](ゲーム状態をバッファに退避)する。
「履歴画面で選択位置から再開する」機能は配布状態では無効になっている。
『; [h_ss_upd] ; 〜』
『; [h_save] ; 〜』
のコメントを外し、シナリオファイル最初の[grp]直後に[h_save]を置くと有効になる。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| no_voice_stop | n | false | Boolean | trueなら改ページ後、音声(バッファ名「音声」の効果音)をフェードアウトしない |
| no_se_stop | n | false | Boolean | trueなら改ページ後、効果音(バッファ名「SE」の効果音)をフェードアウトしない |
| visible | n | true | Boolean | trueで改ページ記号を表示、falseで非表示 |
[after_choice] 選択肢直後処理
[link]など選択肢直後にコールする。
引数無し。
[record_place]などを呼んでいます。
[txt_lay_v_left] テキストレイヤ縦書き左設定
文字レイヤを設定する。サンプルゲーム「櫻の樹の下には」の縦書き設定。
このマクロで文字レイヤ(page=back)に設定しておき、
[grp]で場面転換と共に文字レイヤの設定を変えるような使い方をする
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | n | mes | レイヤ名 | 処理対象の文字レイヤ |
| page | n | back | fore、back | ページの裏表 |
| visible | n | true | Boolean | true:表示、false:非表示 |
| l | n | 40 | 整数値 | テキストウインドウの左端横座標 |
| w | n | 292 | 整数値 | テキストウインドウの横幅 |
| pl | n | 属性l + 26 | 整数値 | テキストウインドウの左端から内側方向への、文字表示領域との間隔 |
| pt | n | 66 | 整数値 | テキストウインドウの上端から内側方向への、文字表示領域との間隔 |
| pr | n | 画面横幅 -(属性l +属性w ) + 26 | 整数値 | テキストウインドウの右端から内側方向への、文字表示領域との間隔 |
| pb | n | 66 | 整数値 | テキストウインドウの下端から内側方向への、文字表示領域との間隔 |
| fcol | n | 0xffffff | 色指定。0x000000など | テキスト色 |
| b_color | n | 0x000000 | 色指定。0x000000など | テキストウインドウの背景色 |
| b_alpha | n | sys:TextLayer.Back.Alpha | 0.0〜1.0(実数) | テキストウインドウの背景の透過度。 0(完全透明)〜0.5(半透明)〜1(不透明) |
[txt_lay_v_center] テキストレイヤ縦書き中設定
文字レイヤを設定する。「txt_lay_v_left(テキストレイヤ縦書き左設定)」を画面中央に移動したもの。
「txt_lay_v_left(テキストレイヤ縦書き左設定)」の設定に加え以下指定を行なったもの
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| l | n | 366 | 整数値 | テキストウインドウの左端横座標 |
[txt_lay_v_center_wide] テキストレイヤ縦書きWide中設定
文字レイヤを設定する。「txt_lay_v_center(テキストレイヤ縦書き中設定)」を画面中央に移動し、幅を広げたもの。
「txt_lay_v_center(テキストレイヤ縦書き中設定)」の設定に加え以下指定を行なったもの
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| l | n | 294 | 整数値 | テキストウインドウの左端横座標 |
| w | n、固定 | 436 | 整数値 | テキストウインドウの横幅 |
[txt_lay_fullscreen] テキストレイヤ全画面設定
文字レイヤを設定する。全画面を覆うような設定
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | n | mes | レイヤ名 | 処理対象の文字レイヤ |
| page | n | back | fore、back | ページの裏表 |
| visible | n | true | Boolean | true:表示、false:非表示 |
| l | n | 16 | 整数値 | テキストウインドウの左端横座標 |
| w | n | 画面横幅 -16 *2 | 整数値 | テキストウインドウの横幅 |
| pl | n | 28 | 整数値 | テキストウインドウの左端から内側方向への、文字表示領域との間隔 |
| pt | n | 42 | 整数値 | テキストウインドウの上端から内側方向への、文字表示領域との間隔 |
| pr | n | 639 | 整数値 | テキストウインドウの右端から内側方向への、文字表示領域との間隔 |
| pb | n | 479 | 整数値 | テキストウインドウの下端から内側方向への、文字表示領域との間隔 |
| fcol | n | 0xffffff | 色指定。0x000000など | テキスト色 |
| b_color | n | 0x000000 | 色指定。0x000000など | テキストウインドウの背景色 |
| b_alpha | n | sys:TextLayer.Back.Alpha | 0.0〜1.0(実数) | テキストウインドウの背景の透過度。 0(完全透明)〜0.5(半透明)〜1(不透明) |
[sysmenu_draw] システムメニュー描画処理
文字レイヤ mes_sysmenu に表示するシステムメニューを設定する。
このマクロを改造し、ボタンの画像変更・位置変更・増減を行える。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| no_sysmenu_draw | n | なにもしない | Boolean | trueを指定すると、次の[grp]などでの文字レイヤ[trans]などでシステムメニューを表示しない |
[sys_menu] システムメニュー表示切り替え
文字レイヤ mes_sysmenu に表示するシステムメニューを設定する。
このマクロを改造し、ボタンの画像変更・位置変更・増減を行える。
[grp] 場面転換
画面を暗転し背景を変更する。
文字レイヤをフェードアウトし、
クロスフェードしながら背景画像(レイヤ名baseの画像レイヤ)を変更、
前景レイヤ(レイヤ名0〜2の画像レイヤ)をクリアor画像変更し、
文字レイヤをフェードインする。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| bg | y | 何もしない | 画像ファイル名 | 背景レイヤに対する画像ファイルを指定する |
| fb | n | 何もしない | [add_face]で登録した差分名称(半角カンマ区切りで複数可能) | 背景レイヤに対する差分名称を指定する |
| l0 | n | クリアする | 画像ファイル名 | 前景レイヤ0に対する画像ファイルを指定する |
| f0 | n | 何もしない | [add_face]で登録した差分名称(半角カンマ区切りで複数可能) | 前景レイヤ0に対する差分名称を指定する |
| pos0 | n | c | c、横座標 | 前景レイヤ0に対する横座標を指定する。 |
| left0 | n | 0(pos指定が優先) | 画面左上を(0, 0)とする座標 |
前景レイヤ0に対する表示座標を指定する。 ※left使用時はtopも必須です |
| top0 | ||||
| o0 | n | 何もしない | 0.0〜1.0(実数) |
前景レイヤ0に対するレイヤの透過度。 0(完全透明)〜0.5(半透明)〜1(不透明) |
| l1 | n | クリアする | 画像ファイル名 | 前景レイヤ1に対する画像ファイルを指定する |
| f1 | n | 何もしない | [add_face]で登録した差分名称(半角カンマ区切りで複数可能) | 前景レイヤ1に対する差分名称を指定する |
| pos1 | n | c | c、横座標 | 前景レイヤ1に対する横座標を指定する。 |
| left1 | n | 0(pos指定が優先) | 画面左上を(0, 0)とする座標 |
前景レイヤ1に対する表示座標を指定する。 ※left使用時はtopも必須です |
| top1 | ||||
| o1 | n | 何もしない | 0.0〜1.0(実数) |
前景レイヤ1に対するレイヤの透過度。 0(完全透明)〜0.5(半透明)〜1(不透明) |
| l2 | n | クリアする | 画像ファイル名 | 前景レイヤ2に対する画像ファイルを指定する |
| f2 | n | 何もしない | [add_face]で登録した差分名称(半角カンマ区切りで複数可能) | 前景レイヤ2に対する差分名称を指定する |
| pos2 | n | c | c、横座標 | 前景レイヤ2に対する横座標を指定する。 |
| left2 | n | 0(pos指定が優先) | 画面左上を(0, 0)とする座標 |
前景レイヤ2に対する表示座標を指定する。 ※left使用時はtopも必須です |
| top2 | ||||
| o2 | n | 何もしない | 0.0〜1.0(実数) |
前景レイヤ2に対するレイヤの透過度。 0(完全透明)〜0.5(半透明)〜1(不透明) |
| rule | n | 画面全体ピクセルで同時にクロスフェードする | 画像ファイル名(swf不可) | [trans]と同じ |
| その他[trans]と同じ属性 | ||||
| time | n | 1000 | ミリ秒 | 背景・前景の画像レイヤ変化にかける時間 |
| txt_time | n | 300 | ミリ秒 | 文字レイヤ変化にかける時間 |
| nofo_txt | n | false | Boolean | trueなら文字レイヤをフェードアウトしない |
| nofi_txt | n | false | Boolean | trueなら文字レイヤをフェードインしない |
| se | n | 何もしない | 効果音ファイル名 | 場面転換と同時に再生する効果音 |
[bgm] BGM切り替え
BGMをクロスフェードする。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| fn | y | BGM音声ファイル名 | 再生する音声ファイル名 | |
| time | n | 再生中の曲を瞬時に停止し、指定曲を即座に再生する | ミリ秒 | 変化にかける時間 |
[se] 効果音を再生
[playse]に引数省略時音声停止機能を付けたもの。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| fn | n | 音声停止 | 音声ファイル名 | 再生する音声ファイル名 |
| buf | n | 音声 | 効果音を識別するトラック名 | トラック名を変えれば同時に複数の音を操作することが出来ます |
_yesno.sn の定義マクロ
[ask_ync] プレイヤー意志確認
プレイヤーに「はい」「いいえ」等の二択で確認を行なう。
プレイヤーが押下した結果をtmp:_yesnoに「y」か「n」で返す
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| mes | y | String | プレイヤーに質問したい文言 |
ext_fg.sn の定義マクロ
[fg] レイヤ画像を変更
クロスフェードしながらレイヤ画像を変更する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | y | レイヤ名 | 処理対象のレイヤ | |
| page | fore | fore、back | ページの裏表 | |
| fn | n | レイヤをクリア | 画像ファイル名 | 基本画像ファイルを指定する |
| alpha | n | 1.0 | 0.0〜1.0(実数) | レイヤの透過度。0(完全透明)〜0.5(半透明)〜1(不透明) |
| time | n | 500 | ミリ秒数 | 変化にかける時間 |
| … | … | … | 引数は[lay](画像レイヤ)、[trans](ページ裏表を交換)の物を指定。 立ち絵なら主にlayer、fn、pos、rule、time属性を使用すれば表現できる |
[img] 画像レイヤ設定サブ
背景レイヤに画像を設定する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | y | レイヤ名 | 処理対象のレイヤ | |
| page | back | fore、back | ページの裏表 | |
| fn | n | レイヤをクリア | 画像ファイル名 | 基本画像ファイルを指定する |
| alpha | n | 1.0 | 0.0〜1.0(実数) | レイヤの透過度。0(完全透明)〜0.5(半透明)〜1(不透明) |
| … | … | … | 引数は[lay](画像レイヤ)、[trans](ページ裏表を交換)の物を指定。主にlayer、fn、pos属性 |
[fg_fi] フェードイン
フェードインしながらレイヤ画像を出現させる
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | n | 0 | レイヤ名 | 処理対象のレイヤ |
| time | n | 500 | ミリ秒数 | 変化にかける時間 |
| left | n | (現在位置) | ドット数 | 移動元・横位置の絶対位置 |
| top | 移動元・縦位置の絶対位置 | |||
| x | n | (移動しない) | ドット数 | 移動先・横位置の絶対位置 |
| y | 移動先・縦位置の絶対位置(x,yは x='=-50'だと相対位置移動、x='-50'だと絶対位置移動) | |||
| alpha | n | 0 | 0.0〜1.0(実数) | レイヤの透過度(初期値)。0(完全透明)〜0.5(半透明)〜1(不透明) |
| to_alpha | 1 | レイヤの透過度(終端値) | ||
| scale_x | n | 1 | ドット数 | 移動元・横方向拡大/縮小するか。負の値ならレイヤを左右反転 |
| scale_y | 移動元・縦方向拡大/縮小するか。負の値ならレイヤを上下反転 | |||
| to_scale_x | n | 1 | ドット数 | 移動先・横方向拡大/縮小するか。負の値ならレイヤを左右反転 |
| to_scale_y | 移動先・縦方向拡大/縮小するか。負の値ならレイヤを上下反転 | |||
| ease | n | Circular.easeOut | イージング名 | alpha・x・yなど値変化のイージング(値の変化の仕方)を指定する。 イージングの変化はこちらの図が分かりやすい。 指定できる値はplgTweensyの[tsy]を参照 |
| no_wait | n | false | Boolean | trueを指定すると、終了を待たない |
| … | … | … | その他引数は[lay](画像レイヤ)、[trans](ページ裏表を交換)の物を指定。 立ち絵なら主にlayer、fn、pos、rule、time属性を使用すれば表現できる |
[fg_fo] フェードアウト
フェードアウトしながらレイヤ画像を消去する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | n | 0 | レイヤ名 | 処理対象のレイヤ |
| time | n | 500 | ミリ秒数 | 変化にかける時間 |
| x | n | (移動しない) | ドット数 | 移動先・横位置の絶対位置 |
| y | 移動先・縦位置の絶対位置(x,yは x='=-50'だと相対位置移動、x='-50'だと絶対位置移動) | |||
| alpha | n | 0 | 0.0〜1.0(実数) | レイヤの透過度(終端値・[fg_fi]と違う)。0(完全透明)〜0.5(半透明)〜1(不透明) |
| ease | n | Circular.easeOut | イージング名 | alpha・x・yなど値変化のイージング(値の変化の仕方)を指定する。 イージングの変化はこちらの図が分かりやすい。 指定できる値はplgTweensyの[tsy]を参照 |
| no_wait | n | false | Boolean | trueを指定すると、終了を待たない |
[fg_squat] レイヤを屈伸させる
クロスフェードしながらレイヤ画像を変更する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | n | 0 | レイヤ名 | 処理対象のレイヤ |
| time | n | 250 | ミリ秒数 | 変化にかける時間 |
| y | n | 50 | ドット数 | 下へ沈ませる移動量 |
| ease | n | Circular.easeOut | イージング名 | 揺れのイージング(値の変化の仕方)を指定する。 イージングの変化はこちらの図が分かりやすい。 指定できる値はplgTweensyの[tsy]を参照 |
| repeats | n | 1 | 0〜(整数) | 繰返し回数。0は無限ループ |
| no_wait | n | false | Boolean | trueを指定すると、終了を待たない |
[fg_shake] レイヤを震わせる
クロスフェードしながらレイヤ画像を変更する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | n | 0 | レイヤ名 | 処理対象のレイヤ |
| time | n | 250 | ミリ秒数 | ひと揺れにかける時間(実際に掛かる時間 = time * repeats *5【マクロ内の[push_tsy_seq]の数】) |
| x | n | 5 | ドット数 | 左右へ揺らす最大移動量 |
| repeats | n | 5 | 0〜(整数) | 繰返し回数。0は無限ループ |
| no_wait | n | false | Boolean | trueを指定すると、終了を待たない |
[fg_sidestep] レイヤを反復横跳びさせる
クロスフェードしながらレイヤ画像を変更する
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| layer | n | 0 | レイヤ名 | 処理対象のレイヤ |
| time | n | 250 | ミリ秒数 | 一動作にかける時間(実際に掛かる時間 = time * 4) |
| x | n | 25 | ドット数 | 左右へ揺らす移動量 |
| y | n | 25 | ドット数 | 下へ沈ませる移動量 |
| repeats | n | 1 | 0〜(整数) | 繰返し回数。0は無限ループ |
| no_wait | n | false | Boolean | trueを指定すると、終了を待たない |
ext_for_call.sn の定義マクロ
[for_call] 変数の値を増やしながら[call]する
for文のように変数を変化させながら[call]を繰り返す。
for文がないAIRNovelを補助するマクロ。
※ギャラリーの【for文を使える】を参照。(後述)
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| name | y | ループ変数名 | ループインデックスに使用する変数名を指定する。 実際の変数名は前に'tmp:for_call_idx.'を付けたもの | |
| from | y | 整数値 | ループ変数の開始値 | |
| to | y | 整数値 | ループ変数の終了値 | |
| fn | 少なくともどちらかを指定 | … | … | ループ中処理を行なうサブルーチンへのジャンプ先。 指定方法は[jump]と同様 |
| label | ||||
| arg | n | String | 指定した場合、ジャンプ先で「&const.sn.eventArg」にて値を受け取れる |
テンプレの【prj/other/ext_fg2.sn】でも使用されているので、使用法のご参考にどうぞ。(多少複雑な例ですが)
[for_call_break] ループを中断する
内側一つだけ脱出する
[for_call]呼び先サブルーチンで使用すると、ループを終了し[for_call]の次に戻る。
[for_call_break]の直後に[return]が必要。
引数無し。
※使用例は[for_call]を参照。
humaneプラグイン
プラグインは core/plugin/ 下に配置し使用します。[notice] humane.js 通知パネル
humane.jsにより通知を表示する。
humane.js·見た目のカスタマイズも可能なWeb通知ライブラリ MOONGIFT
humaneフォルダを配置すれば使用できます。
サンプルプロジェクト「桜の樹の下には」では最初から配置されています。
| 属性 | 必須 | 省略時 | 値域・型 | コメント |
|---|---|---|---|---|
| text | y | String | 元になる文字列 | |
| その他 | Stringほか | humane.jsのその他の引数 |