SKYNovel マクロ・プラグイン

SKYNovel Macro And Plugin Reference

sub.sn の定義マクロ

[sys_scenario_start] シナリオ開始時共通処理

タイトルからゲーム本編を開始する際の処理を行なう。

引数無し。
シナリオファイル冒頭に記述するべき。

[sys_title_start] タイトル開始共通処理

ゲーム本編を開始する際の処理を行なう。

引数無し。
タイトルから本編、あるいはしおりロードから本編を開始する際に呼ぶ。

クリック待ち記号、フォント、セーブロード・設定画面などを準備する。

[wc] 文字数分のウェイトを入れる

アプリ開始時やゲーム本編からタイトルに戻る際の処理を行なう

属性必須省略時値域・型コメント
timey整数値0.0〜指定した文字数 x 文字表示ウェイト 分のウェイトを行なう

[plc] 改ページ

改ページと関連処理を行なう。

改ページ記号を表示する前に「自動読み進み状態で」「音声が再生中」なら音声再生終了を待つ。
改ページ記号を表示しクリックを待ち、
押下後[er](テキストを消去)し[record_place](ゲーム状態をバッファに退避)する。

「履歴画面で選択位置から再開する」機能は配布状態では無効になっている。
『; [h_ss_upd] ; 〜』
『; [h_save] ; 〜』
のコメントを外し、シナリオファイル最初の[grp]直後に[h_save]を置くと有効になる。

属性必須省略時値域・型コメント
no_voice_stopnfalseBooleantrueなら改ページ後、音声(バッファ名「音声」の効果音)をフェードアウトしない
no_se_stopnfalseBooleantrueなら改ページ後、効果音(バッファ名「SE」の効果音)をフェードアウトしない
visiblentrueBooleantrueで改ページ記号を表示、falseで非表示

[after_choice] 選択肢直後処理

[link]など選択肢直後にコールする。

引数無し。
[record_place]などを呼んでいます。

[txt_lay_v_left] テキストレイヤ縦書き左設定

文字レイヤを設定する。サンプルゲーム「櫻の樹の下には」の縦書き設定。

このマクロで文字レイヤ(page=back)に設定しておき、
[grp]で場面転換と共に文字レイヤの設定を変えるような使い方をする

属性必須省略時値域・型コメント
layernmesレイヤ名処理対象の文字レイヤ
pagenbackfore、backページの裏表
visiblentrueBooleantrue:表示、false:非表示
ln40整数値テキストウインドウの左端横座標
wn292整数値テキストウインドウの横幅
pln属性l + 26整数値テキストウインドウの左端から内側方向への、文字表示領域との間隔
ptn66整数値テキストウインドウの上端から内側方向への、文字表示領域との間隔
prn画面横幅
-(属性l +属性w ) + 26
整数値テキストウインドウの右端から内側方向への、文字表示領域との間隔
pbn66整数値テキストウインドウの下端から内側方向への、文字表示領域との間隔
fcoln0xffffff色指定。0x000000などテキスト色
b_colorn0x000000色指定。0x000000などテキストウインドウの背景色
b_alphansys:TextLayer.Back.Alpha0.0〜1.0(実数)テキストウインドウの背景の透過度。
0(完全透明)〜0.5(半透明)〜1(不透明)

[txt_lay_v_center] テキストレイヤ縦書き中設定

文字レイヤを設定する。「txt_lay_v_left(テキストレイヤ縦書き左設定)」を画面中央に移動したもの。

txt_lay_v_left(テキストレイヤ縦書き左設定)」の設定に加え以下指定を行なったもの

属性必須省略時値域・型コメント
ln366整数値テキストウインドウの左端横座標

[txt_lay_v_center_wide] テキストレイヤ縦書きWide中設定

文字レイヤを設定する。「txt_lay_v_center(テキストレイヤ縦書き中設定)」を画面中央に移動し、幅を広げたもの。

txt_lay_v_center(テキストレイヤ縦書き中設定)」の設定に加え以下指定を行なったもの

属性必須省略時値域・型コメント
ln294整数値テキストウインドウの左端横座標
wn、固定436整数値テキストウインドウの横幅

[txt_lay_fullscreen] テキストレイヤ全画面設定

文字レイヤを設定する。全画面を覆うような設定

属性必須省略時値域・型コメント
layernmesレイヤ名処理対象の文字レイヤ
pagenbackfore、backページの裏表
visiblentrueBooleantrue:表示、false:非表示
ln16整数値テキストウインドウの左端横座標
wn画面横幅 -16 *2整数値テキストウインドウの横幅
pln28整数値テキストウインドウの左端から内側方向への、文字表示領域との間隔
ptn42整数値テキストウインドウの上端から内側方向への、文字表示領域との間隔
prn639整数値テキストウインドウの右端から内側方向への、文字表示領域との間隔
pbn479整数値テキストウインドウの下端から内側方向への、文字表示領域との間隔
fcoln0xffffff色指定。0x000000などテキスト色
b_colorn0x000000色指定。0x000000などテキストウインドウの背景色
b_alphansys:TextLayer.Back.Alpha0.0〜1.0(実数)テキストウインドウの背景の透過度。
0(完全透明)〜0.5(半透明)〜1(不透明)

[sysmenu_draw] システムメニュー描画処理

文字レイヤ mes_sysmenu に表示するシステムメニューを設定する。

このマクロを改造し、ボタンの画像変更・位置変更・増減を行える。

属性必須省略時値域・型コメント
no_sysmenu_drawnなにもしないBooleantrueを指定すると、次の[grp]などでの文字レイヤ[trans]などでシステムメニューを表示しない

[sys_menu] システムメニュー表示切り替え

文字レイヤ mes_sysmenu に表示するシステムメニューを設定する。

このマクロを改造し、ボタンの画像変更・位置変更・増減を行える。

[grp] 場面転換

画面を暗転し背景を変更する。

文字レイヤをフェードアウトし、
クロスフェードしながら背景画像(レイヤ名baseの画像レイヤ)を変更、
前景レイヤ(レイヤ名0〜2の画像レイヤ)をクリアor画像変更し、
文字レイヤをフェードインする。

属性必須省略時値域・型コメント
bgy何もしない画像ファイル名背景レイヤに対する画像ファイルを指定する
fbn何もしない[add_face]で登録した差分画像(半角カンマ区切りで複数可能)背景レイヤに対する差分画像ファイルを指定する
l0nクリアする画像ファイル名前景レイヤ0に対する画像ファイルを指定する
f0n何もしない[add_face]で登録した差分画像(半角カンマ区切りで複数可能)前景レイヤ0に対する差分画像ファイルを指定する
pos0ncc、横座標前景レイヤ0に対する横座標を指定する。
left0n0(pos指定が優先)画面左上を(0, 0)とする座標 前景レイヤ0に対する表示座標を指定する。
※left使用時はtopも必須です
top0
o0n何もしない0.0〜1.0(実数) 前景レイヤ0に対するレイヤの透過度。
0(完全透明)〜0.5(半透明)〜1(不透明)
l1nクリアする画像ファイル名前景レイヤ1に対する画像ファイルを指定する
f1n何もしない[add_face]で登録した差分画像(半角カンマ区切りで複数可能)前景レイヤ1に対する差分画像ファイルを指定する
pos1ncc、横座標前景レイヤ1に対する横座標を指定する。
left1n0(pos指定が優先)画面左上を(0, 0)とする座標 前景レイヤ1に対する表示座標を指定する。
※left使用時はtopも必須です
top1
o1n何もしない0.0〜1.0(実数) 前景レイヤ1に対するレイヤの透過度。
0(完全透明)〜0.5(半透明)〜1(不透明)
l2nクリアする画像ファイル名前景レイヤ2に対する画像ファイルを指定する
f2n何もしない[add_face]で登録した差分画像(半角カンマ区切りで複数可能)前景レイヤ2に対する差分画像ファイルを指定する
pos2ncc、横座標前景レイヤ2に対する横座標を指定する。
left2n0(pos指定が優先)画面左上を(0, 0)とする座標 前景レイヤ2に対する表示座標を指定する。
※left使用時はtopも必須です
top2
o2n何もしない0.0〜1.0(実数) 前景レイヤ2に対するレイヤの透過度。
0(完全透明)〜0.5(半透明)〜1(不透明)
rulen画面全体ピクセルで同時にクロスフェードする画像ファイル名(swf不可) [trans]と同じ
その他[trans]と同じ属性
timen1000ミリ秒背景・前景の画像レイヤ変化にかける時間
txt_timen300ミリ秒文字レイヤ変化にかける時間
nofo_txtnfalseBooleantrueなら文字レイヤをフェードアウトしない
nofi_txtnfalseBooleantrueなら文字レイヤをフェードインしない
sen何もしない効果音ファイル名場面転換と同時に再生する効果音

[bgm] BGM切り替え

BGMをクロスフェードする。

属性必須省略時値域・型コメント
fnyBGM音声ファイル名 再生する音声ファイル名
timen再生中の曲を瞬時に停止し、指定曲を即座に再生するミリ秒変化にかける時間

[se] 効果音を再生

[playse]に引数省略時音声停止機能を付けたもの。

属性必須省略時値域・型コメント
fnn音声停止音声ファイル名 再生する音声ファイル名
bufn音声効果音を識別するトラック名トラック名を変えれば同時に複数の音を操作することが出来ます

_yesno.sn の定義マクロ

[ask_ync] プレイヤー意志確認

プレイヤーに「はい」「いいえ」等の二択で確認を行なう。

プレイヤーが押下した結果をtmp:_yesnoに「y」か「n」で返す。

ボタン素材としてファイル名がMnu_btnOK・Mnu_btnCancelの画像ファイルと、
ダイアログ素材としてファイル名が_yesnoの画像ファイルを使用する

属性必須省略時値域・型コメント
mesyStringプレイヤーに質問したい文言

ext_fg.sn の定義マクロ

[fg] レイヤ画像を変更

クロスフェードしながらレイヤ画像を変更する

属性必須省略時値域・型コメント
layeryレイヤ名処理対象のレイヤ
pageforefore、backページの裏表
fnnレイヤをクリア画像ファイル名基本画像ファイルを指定する
alphan1.00.0〜1.0(実数)レイヤの透過度。0(完全透明)〜0.5(半透明)〜1(不透明)
timen500ミリ秒数変化にかける時間
引数は[lay](画像レイヤ)、[trans](ページ裏表を交換)の物を指定。
立ち絵なら主にlayer、fn、pos、rule、time属性を使用すれば表現できる

[img] 画像レイヤ設定サブ

クロスフェードしながらレイヤ画像を変更する

属性必須省略時値域・型コメント
layeryレイヤ名処理対象のレイヤ
pageforefore、backページの裏表
fnnレイヤをクリア画像ファイル名基本画像ファイルを指定する
alphan1.00.0〜1.0(実数)レイヤの透過度。0(完全透明)〜0.5(半透明)〜1(不透明)
引数は[lay](画像レイヤ)、[trans](ページ裏表を交換)の物を指定。主にlayer、fn、pos属性

[fg_fi] フェードイン

クロスフェードしながらレイヤ画像を変更する

属性必須省略時値域・型コメント
layern0レイヤ名処理対象のレイヤ
timen500ミリ秒数変化にかける時間
leftn(現在位置)ドット数移動元・横位置の絶対位置
top移動元・縦位置の絶対位置
xn(移動しない)ドット数移動先・横位置の絶対位置
y移動先・縦位置の絶対位置(x,yは x='=-50'だと相対位置移動、x='-50'だと絶対位置移動)
alphan00.0〜1.0(実数)レイヤの透過度(初期値)。0(完全透明)〜0.5(半透明)〜1(不透明)
to_alpha1レイヤの透過度(終端値)
scale_xn1ドット数移動元・横方向拡大/縮小するか。負の値ならレイヤを左右反転
scale_y移動元・縦方向拡大/縮小するか。負の値ならレイヤを上下反転
to_scale_xn1ドット数移動先・横方向拡大/縮小するか。負の値ならレイヤを左右反転
to_scale_y移動先・縦方向拡大/縮小するか。負の値ならレイヤを上下反転
easenCircular.easeOutイージング名alpha・x・yなど値変化のイージング(値の変化の仕方)を指定する。
イージングの変化はこちらの図が分かりやすい。
指定できる値はplgTweensyの[tsy]を参照
no_waitnfalseBooleantrueを指定すると、終了を待たない
その他引数は[lay](画像レイヤ)、[trans](ページ裏表を交換)の物を指定。
立ち絵なら主にlayer、fn、pos、rule、time属性を使用すれば表現できる

[fg_fo] フェードアウト

クロスフェードしながらレイヤ画像を変更する

属性必須省略時値域・型コメント
layern0レイヤ名処理対象のレイヤ
timen500ミリ秒数変化にかける時間
xn(移動しない)ドット数移動先・横位置の絶対位置
y移動先・縦位置の絶対位置(x,yは x='=-50'だと相対位置移動、x='-50'だと絶対位置移動)
alphan00.0〜1.0(実数)レイヤの透過度(終端値・[fg_fi]と違う)。0(完全透明)〜0.5(半透明)〜1(不透明)
easenCircular.easeOutイージング名alpha・x・yなど値変化のイージング(値の変化の仕方)を指定する。
イージングの変化はこちらの図が分かりやすい。
指定できる値はplgTweensyの[tsy]を参照
no_waitnfalseBooleantrueを指定すると、終了を待たない

[fg_squat] レイヤを屈伸させる

クロスフェードしながらレイヤ画像を変更する

属性必須省略時値域・型コメント
layern0レイヤ名処理対象のレイヤ
timen250ミリ秒数変化にかける時間
yn50ドット数下へ沈ませる移動量
easenCircular.easeOutイージング名揺れのイージング(値の変化の仕方)を指定する。
イージングの変化はこちらの図が分かりやすい。
指定できる値はplgTweensyの[tsy]を参照
repeatsn10〜(整数)繰返し回数。0は無限ループ
no_waitnfalseBooleantrueを指定すると、終了を待たない

[fg_shake] レイヤを震わせる

クロスフェードしながらレイヤ画像を変更する

属性必須省略時値域・型コメント
layern0レイヤ名処理対象のレイヤ
timen250ミリ秒数ひと揺れにかける時間(実際に掛かる時間 = time * repeats *5【マクロ内の[push_tsy_seq]の数】)
xn5ドット数左右へ揺らす最大移動量
repeatsn50〜(整数)繰返し回数。0は無限ループ
no_waitnfalseBooleantrueを指定すると、終了を待たない

[fg_sidestep] レイヤを反復横跳びさせる

クロスフェードしながらレイヤ画像を変更する

属性必須省略時値域・型コメント
layern0レイヤ名処理対象のレイヤ
timen250ミリ秒数一動作にかける時間(実際に掛かる時間 = time * 4)
xn25ドット数左右へ揺らす移動量
yn25ドット数下へ沈ませる移動量
repeatsn10〜(整数)繰返し回数。0は無限ループ
no_waitnfalseBooleantrueを指定すると、終了を待たない

ext_for_call.sn の定義マクロ

[for_call] 変数の値を増やしながら[call]する

for文のように変数を変化させながら[call]を繰り返す。

for文がないAIRNovelを補助するマクロ。

属性必須省略時値域・型コメント
nameyループ変数名ループインデックスに使用する変数名を指定する。
実際の変数名は前に'tmp:for_call_idx.'を付けたもの
fromy整数値ループ変数の開始値
toy整数値ループ変数の終了値
fn少なくともどちらかを指定ループ中処理を行なうサブルーチンへのジャンプ先。
指定方法は[jump]と同様
label
argnString指定した場合、ジャンプ先で「&const.sn.eventArg」にて値を受け取れる

[for_call_break] ループを中断する

内側一つだけ脱出する

[for_call]呼び先サブルーチンで使用すると、ループを終了し[for_call]の次に戻る。
[for_call_break]の直後に[return]が必要。
引数無し。

humaneプラグイン

プラグインは core/plugin/ 下に配置し使用します。

[notice] humane.js 通知パネル

humane.jsにより通知を表示する。

humane.js·見た目のカスタマイズも可能なWeb通知ライブラリ MOONGIFT

humaneフォルダを配置すれば使用できます。
サンプルプロジェクト「桜の樹の下には」では最初から配置されています。

属性必須省略時値域・型コメント
textyString元になる文字列