Suika2 コマンドリファレンス

索引


コマンドとは

コマンドとは、Suika2に対する指示のことで、Suika2を使ってノベルゲームを作る上で必要なものです。
ほとんどのコマンドは @ マークから始まります。
コマンドを覚えておく必要はなく、このページを見ながら書くか、一度使ったものをコピペして使うなどすればよいです。


@anime (@アニメ)

@anime [ファイル] (オプション)
@アニメ [ファイル] (オプション)

アニメファイルを再生します。レイヤーの移動、エフェクトの表示に使います。
アニメファイルはフォルダ anime に配置する必要があります。
Suika2/14.5現在、回転や拡大縮小はサポートされていませんが、順次サポートされさす。

使い方1

anime1.txt を再生します。再生完了まで待ちます。(sync)

@anime anime1.txt sync

使い方2

anime1.txt を再生します。再生完了を待ちません。(async)

@anime anime1.txt async
なにかメッセージを表示します。
@anime finish-all

使い方3

anime1.txt を再生します。折りたたみシステムメニューを表示しません。(nosysmenu)

@anime anime1.txt sync,nosysmenu

使い方4

anime1.txt を再生します。メッセージボックスを表示します。(showmsgbox)

@anime anime1.txt sync,showmsgbox

使い方5

ループアニメ loop-anime1.txt を再生します。

@anime loop-anime1.txt async
なにかメッセージを表示します。
@anime stop-all

アニメーションファイルの記述例

# アニメーションファイル

# 中央キャラを2回移動する
move {
    layer: chc;  # 中央キャラクタ CHaracter Center
    clear: chc;  # 既存のアニメーションを破棄する(そのレイヤの最初のmoveにだけ記述)
    start: 0.0;  # 時刻0.0(秒)から開始する
    end: 2.0;    # 時刻2.0(秒)に終了する
    from-x: 0;   # 開始するX座標
    from-y: 0;   # 開始するY座標
    from-a: 255; # 開始するアルファ値
    to-x: 100;   # 終了するX座標
    to-y: 100;   # 終了するY座標
    to-a: 255;   # 終了するアルファ値
}
move {
    layer: chc;  # 中央キャラクタ CHaracter Center
    start: 2.0;  # 時刻2.0(秒)から開始する
    end: 4.0;    # 時刻4.0(秒)に終了する
    from-x: 100; # 開始するX座標
    from-y: 100; # 開始するY座標
    from-a: 255; # 開始するアルファ値
    to-x: 0;     # 終了するX座標
    to-y: 0;     # 終了するY座標
    to-a: 255;   # 終了するアルファ値
}

# それと同時に、右キャラを1回移動する
move {
    layer: chr;  # 中央キャラクタ CHaracter Right
    clear: chr;  # 既存のアニメーションを破棄する(そのレイヤの最初のmoveにだけ記述)
    start: 0.0;  # 時刻0.0(秒)から開始する
    end: 3.0;    # 時刻3.0(秒)に終了する
    from-x: 1000;# 開始するX座標
    from-y: 0;   # 開始するY座標
    from-a: 255; # 開始するアルファ値
    to-x: 0;     # 終了するX座標
    to-y: 0;     # 終了するY座標
    to-a: 255;   # 終了するアルファ値
}

@bg (@背景)

@bg [ファイル] (秒) (エフェクト)
@bg [file=ファイル] (duration=秒) (effect=エフェクト)
@背景 [ファイル=ファイル] (秒=秒) (エフェクト=エフェクト)

背景を変更します。背景の変更後、キャラクタはステージ上からいなくなります。

使い方1

sample.png を1.5秒かけて背景にセットします。

@bg sample.png 1.5

使い方2

sample.png を即座に背景にセットします。

@bg sample.png

使い方3

sample.png を1.5秒かけて右方向カーテンフェードで背景にセットします。

@bg sample.png 1.5 c

使い方4

色を指定して1.5秒かけて左方向カーテンフェードで背景にセットします。

@bg #ff8080 1.5 curtain-left

使い方5

目を閉じるような演出を行います。

@bg #000000 1.5 eye-close

使い方6

目を開けるような演出を行います。

@bg sample.png 1.5 eye-open

使い方7

ルール画像を使ってトランジションを行います。 ルール画像はグレースケールで、黒い部分から白い部分にかけて順に描画されます。

@bg sample.png 1.5 rule:rule-star.png

背景/キャラで共通のエフェクト

フェードには次のエフェクトを指定できます。
(すべてのエフェクトを こちらのサイト からお試しいただけます)

エフェクトの種類 エフェクト名 エフェクト短縮名1 エフェクト短縮名2 日本語名
標準のアルファブレンド normal n (指定を省略した場合) 標準
ルール指定トランジション(1bit) rule:ルール画像ファイル
ルール指定トランジション(8bit) melt:ルール画像ファイル
右方向カーテン curtain-right curtain c 右カーテン
左方向カーテン curtain-left cl 左カーテン
上方向カーテン curtain-up cu 上カーテン
下方向カーテン curtain-down cd 下カーテン
右方向スライド slide-right sr 右スライド
左方向スライド slide-left sl 左スライド
上方向スライド slide-up su 上スライド
下方向スライド slide-down sd 下スライド
右方向シャッター shutter-right shr 右シャッター
左方向シャッター shutter-left shl 左シャッター
上方向シャッター shutter-up shu 上シャッター
下方向シャッター shutter-down shd 下シャッター
時計回り clockwise cw 時計回り
反時計回り counterclockwise ccw 反時計回り
時計回り(20°刻み) clockwise20 cw20
反時計回り(20°刻み) counterclockwise20 ccw20
時計回り(30°刻み) clockwise30 cw30
反時計回り(30°刻み) counterclockwise30 ccw30
目を開くような効果 eye-open
目を閉じるような効果 eye-close
目を開くような効果(垂直) eye-open-v
目を閉じるような効果(垂直) eye-close-v
スリットが開くような効果 slit-open
スリットが閉じるような効果 slit-close
スリットが開くような効果(垂直) slit-open-v
スリットが閉じるような効果(垂直) slit-close-v

@bgm (@音楽)

@bgm [ファイル] (once)
@bgm [file=ファイル] (once)
@音楽 [ファイル=ファイル] (once)

BGMを再生します。
BGMファイルはフォルダ bgm に格納されている必要があります。
再生可能なファイル形式は、44.1kHzのOgg Vorbisのみです。もし特定の音楽ファイルが遅く聞こえたり、早く聞こえたりした場合は、そのファイルのサンプリングレートを44.1kHzに変換してください。

使い方1

sample.oggを再生します。

@bgm sample.ogg

使い方2

BGMを停止します。

@bgm stop

使い方3

BGMをループしないで1回だけ再生します。

@bgm sample.ogg once

応用例

BGMを2秒かけてフェードアウトします。

@vol bgm 0 2
@wait 2
@bgm stop

@ch (@キャラ)

@ch [位置] [ファイル] (秒) (エフェクト) (右オフセット) (下オフセット) (アルファ)
@ch [position=位置] [file=ファイル] (duration=秒) (effect=エフェクト) (right=右オフセット) (down=下オフセット) (alpha=アルファ)
@キャラ [位置=位置] [ファイル=ファイル] (秒=秒) (エフェクト=エフェクト) (右=右オフセット) (下=下オフセット) (アルファ=アルファ)

キャラクタを表示、変更、消去します。
キャラクタの位置は、上位レイヤから順に、次のものがあります。

表示位置 コマンドでの指定方法
顔アイコン face
中央前面 center
right
left
中央背面 back

エフェクトの種類は @bg と同じです。

使い方1

sample.png を0.5秒かけて中央前面にセットします。

@ch center sample.png 0.5

使い方2

centerc と省略して構いません。

@ch c sample.png 0.5

使い方3

none を指定するとキャラクタを退場させます。

@ch c none 0.5

使い方4

時間を指定しないと即座に表示されます。

@ch c sample.png

使い方5

mask あるいは m を指定すると点描エフェクトを使います。
mask 以外にも、 @bgで使用できるエフェクトは全て使用できます。

@ch c sample.png 1.0 mask

使い方6

normal あるいは n を指定すると通常のアルファブレンドを使います。
指定を省略したときにも通常のアルファブレンドが利用されます。

@ch c sample.png 1.0 normal

使い方7

キャラクタ表示位置をずらすことができます。
下記の例では右に100ピクセル、下に50ピクセルずらします。

@ch c sample.png 1.0 n 100 50

使い方8

アニメの起点を指定するために、アルファ値を指定してキャラクタ画像を読み込みます。
アルファ値には 0 から 255 を指定できます。 また、アルファ値には 255 の別名で show を指定できるほか、 0 の別名で hideを指定できます。

@ch c sample.png 1.0 n 0 0 show

使い方9

メッセージボックスの左にキャラの顔を表示します。(消す場合はnoneを指定します。)

@ch face face-001.png

@cha (@キャラ移動)

@cha [位置] [秒] [加速] [Xオフセット] [Yオフセット] [アルファ]
@cha [position=位置] [duration=秒] [acceleration=加速] [x=Xオフセット] [Y=Yオフセット] [alpha=アルファ]
@キャラ移動 [position=位置] [duration=秒] [acceleration=加速] [x=Xオフセット] [Y=Yオフセット] [alpha=アルファ]

キャラクタの移動(アニメーション)を行います。
キャラクタの位置の指定とアルファ値の指定は @ch コマンドを参照してください。

使い方1

中央に表示したキャラクタを1.0秒かけて左側に600ピクセル移動して非表示にします。

@cha center 1.0 move -600 0 hide

使い方2

使い方1との差分は、移動を加速(アクセル)しながら行うことです。

@cha center 1.0 accel -600 0 hide

使い方3

使い方1との差分は、移動を減速(ブレーキ)しながら行うことです。

@cha center 1.0 brake -600 0 hide

使い方4

初めに画面の外にキャラクタを読み込んでおいて、画面の中に移動させます。

@ch right sample.png 0 n 600 0 hide
@cha right 2.0 move -600 0 show

@chapter

@chapter [タイトル]
@chapter [title=タイトル]
@章 [タイトル=タイトル]

章のタイトルを設定します。

使い方

@chapter 第一章

@choose (@選択肢)

@choose [行き先1] [選択肢1] (行き先2) (選択肢2) (行き先3) (選択肢3) (行き先4) (選択肢4) (行き先5) (選択肢5) (行き先6) (選択肢6) (行き先7) (選択肢7) (行き先8) (選択肢8)
@choose [destination1=行き先1] [option1=選択肢1] (destination2=行き先2) (option2=選択肢2) (destination3=行き先3) (option3=選択肢3) (destination4=行き先4) (option4=選択肢4) (destination5=行き先5) (option5=選択肢5) (destination6=行き先6) (option6=選択肢6) (destination7=行き先7) (option7=選択肢7) (destination8=行き先8) (option8=選択肢8)
@選択肢 [行き先1=行き先1] [選択肢1=選択肢1] (行き先2=行き先2) (選択肢2=選択肢2) (行き先3=行き先3) (選択肢3=選択肢3) (行き先4=行き先4) (選択肢4=選択肢4) (行き先5=行き先5) (選択肢5=選択肢5) (行き先6=行き先6) (選択肢6=選択肢6) (行き先7=行き先7) (選択肢7=選択肢7) (行き先8=行き先8) (選択肢8=選択肢8)

選択肢を表示してラベルにジャンプします。選択肢の数は最大で8つです。

使い方1

3つの選択肢を表示します。

@choose label1 おはよう label2 こんにちは label3 こんばんは
:label1
おはよう
@goto end
:label2
こんにちは
@goto end
:label3
こんばんは
:end

使い方2

2つの選択肢を表示します。

@choose label1 おはよう label2 こんにちは
:label1
おはよう
@goto end
:label2
こんにちは
@goto end
:end

使い方3

1つの選択肢を表示します。

@choose label1 おはよう
:label1
おはよう

応用編

拡張 switch 文を使うことで、ラベルを使わずに選択肢を表現できます。

<<<
switch "おはよう" "こんにちは" "こんばんは" {
case "おはよう":
    @ch center good-morning.png
    break
case "こんにちは":
    @ch center good-afternoon.png
    break
case "こんばんは":
    @ch center good-evening.png
    break
}
>>>

@ichoose (@インライン選択肢)

@ichoose [行き先1] [選択肢1] (行き先2) (選択肢2) (行き先3) (選択肢3) (行き先4) (選択肢4) (行き先5) (選択肢5) (行き先6) (選択肢6) (行き先7) (選択肢7) (行き先8) (選択肢8)
@ichoose [destination1=行き先1] [option1=選択肢1] (destination2=行き先2) (option2=選択肢2) (destination3=行き先3) (option3=選択肢3) (destination4=行き先4) (option4=選択肢4) (destination5=行き先5) (option5=選択肢5) (destination6=行き先6) (option6=選択肢6) (destination7=行き先7) (option7=選択肢7) (destination8=行き先8) (option8=選択肢8)
@インライン選択肢 [行き先1=行き先1] [選択肢1=選択肢1] (行き先2=行き先2) (選択肢2=選択肢2) (行き先3=行き先3) (選択肢3=選択肢3) (行き先4=行き先4) (選択肢4=選択肢4) (行き先5=行き先5) (選択肢5=選択肢5) (行き先6=行き先6) (選択肢6=選択肢6) (行き先7=行き先7) (選択肢7=選択肢7) (行き先8=行き先8) (選択肢8=選択肢8)

メッセージボックス内に選択肢を表示してラベルにジャンプします。
選択肢をメッセージボックス内に表示する以外は、 @choose と同じです。
この機能を使用するときには、コンフィグの switch.bg.fileswitch.fg.file に透明な画像を指定してください。


@chs (@場面転換) (非推奨: @chsxが推奨)

@chs [中央ファイル] [右ファイル] [左ファイル] [背面ファイル] (秒) (背景ファイル) (エフェクト)
@chs [center=中央ファイル] [right=右ファイル] [left=左ファイル] [back=背面ファイル] (duration=秒) (background=背景ファイル) (effect=エフェクト)
@場面転換 [中央=中央ファイル] [右=右ファイル] [左=左ファイル] [背面=背面ファイル] (秒=秒) (背景=背景ファイル) (エフェクト=エフェクト)

キャラクタの一括変更を行います。
Suika2/12.37以降では @chsx をご利用ください。
また、キャラクタと同時に背景も変更できます。
キャラクタの指定順は、中央、右、左、後ろです。
エフェクトの種類は @bg と同じです。

使い方1

中央と右にキャラクタを1.0秒かけて表示します。
他のキャラクタは変更しません。(stay の指定)

@chs center.png right.png stay stay 1.0

使い方2

中央のキャラクタを1.0秒かけて退場させます。(none の指定)
他のキャラクタは変更しません。(stay の指定)

@chs none stay stay stay 1.0

使い方3

キャラクタを表示させたまま(stay の指定)、背景を1.0秒かけて変更します。

@chs stay stay stay stay 1.0 background.png

使い方4

中央のキャラクタを1.0秒かけて変更します。
背景も変更します。
エフェクトはカーテンです。

@chs center.png stay stay stay 1.0 background.png curtain

@chsx (@場面転換X)

@chsx (center=center-image) (center-x=center-x-offset) (center-y=center-y-offset) (right=right-image) (right-x=right-x-offset) (right-y=right-y-offset) (left=left-image) (left-x=left-x-offset) (left-y=left-y-offset) (back=back-image) (back-x=back-x-offset) (back-y=back-y-offset) (background=background-image) (bg-x=background-x-offset) (bg-y=background-y-offset) (effect=effect) (duration=seconds)
@場面転換X (中央=中央ファイル) (中央X=中央キャラのXオフセット) (中央Y=中央キャラのYオフセット) (右=右ファイル) (右X=右キャラのXオフセット) (右Y=右キャラのYオフセット) (左=左ファイル) (左X=左キャラのXオフセット) (左Y=左キャラのYオフセット) (背面=背面ファイル) (背面X=背面キャラのXオフセット) (背面Y=背面キャラのYオフセット) (背景=背景ファイル) (背景X=背景のXオフセット) (背景Y=背景のYオフセット) (エフェクト=エフェクト) (秒=秒)

キャラクタの一括変更を行います。背景のみの変更や、キャラクタと同時に背景も変更できます。
このコマンドに限って、center= のような引数の名前が必須ですが、代わりに引数の指定順に制限がありません。
エフェクトの種類は @bg と同じです。
変更のないキャラには stay を指定します。指定されなかったキャラは退場します。

使い方1

中央と右にキャラクタを1.0秒かけて表示します。
他のキャラクタは変更しません。(stay の指定)

@chsx center=center.png right=right.png left=stay back=stay duration=1.0

使い方2

中央のキャラクタを1.0秒かけて退場させます。(none の指定)
他のキャラクタは変更しません。(stay の指定)

@chsx center=none left=stay right=stay back=stay duration=1.0

使い方3

キャラクタを表示させたまま(stay の指定)、背景を1.0秒かけて変更します。

@chsx background=background.png center=stay left=stay right=stay back=stay duration=1.0

使い方4

中央のキャラクタを1.0秒かけて変更します。
背景も変更します。
エフェクトはカーテンです。

@chsx center=center.png background=background.png left=stay right=stay back=stay effect=curtain duration=1.0

@click (@クリック)

@click
@クリック

クリックされるのを待ちます。
待っている間、メッセージボックスは非表示となります。

使い方

クリックを待ちます。

@click

@gosub

@gosub [行き先]

サブルーチンにジャンプします。 @return で戻ります。
普通のノベルゲームを作る分には利用しない機能です。

使い方

サブルーチン SUB を実行します。

@gosub SUB
:SUB
ここに何らかの処理やメッセージを記述します。
@return

@goto (@ジャンプ)

@goto [行き先]
@ジャンプ [行き先=行き先]

ラベルにジャンプします。
ループを作成するときや、ループから抜け出す際にも使用します。

使い方1

ラベル abc にジャンプします。

:abc
ここに何らかの処理やメッセージを記述します。ループします。
@goto abc

使い方2

ロード画面を表示します。 $LOADは特殊なラベルです。

@goto $LOAD

使い方3

セーブ画面を表示します。 $SAVEは特殊なラベルです。

@goto $SAVE

@gui (@メニュー)

@gui [ファイル] (cancel)
@gui [file=ファイル] (cancel)
@メニュー [ファイル=ファイル] (キャンセル許可)

GUIを表示します。GUIでは最大128個のボタンを作成できます。
ボタンの種類には、押されるとラベルにジャンプするものや、フラグがセットされているときだけ表示されるものなどがあります。
なお、GUI定義ファイルはコンフィグ画面やセーブ・ロード・履歴画面の定義にも利用されます。

使い方1

GUI定義ファイル menu.txt を読み込んでGUIを実行します。

@gui menu.txt

使い方2

右クリックによるキャンセルを許可します。

@gui menu.txt cancel

@if

@if [変数] [条件] [数値] [行き先]
@フラグでジャンプ [変数] [条件] [数値] [行き先]@gui [file=ファイル]

条件式とマッチするときだけラベルにジャンプします。
利用できる条件の種類は下記の通りですが、 普通のノベルゲームを作る分には == (等しい場合) だけの利用で問題ありません。

条件の種類意味
>a > b (aがbより大きい)
>=a ≧ b (aがbより大きいか等しい)
==a = b (aとbが等しい)
<=a ≦ b (aがbより小さいか等しい)
<a < b (aがbより小さい)
!=a ≒ b (aとbが等しくない)

条件文の左側はローカル変数名($0 など)か、グローバル変数名($10000 など)か、名前変数名(%a など)である必要があります。
条件文の左側がローカル変数名かグローバル変数名のとき、条件文の右側は整数(1 など)か、ローカル変数名($0 など)か、グローバル変数名($10000 など)を指定できます。
条件文の左側が名前変数のとき、条件文の右側には文字列のみ指定できます。文字列中の変数名は展開されません。

使い方1

ローカル変数の値でシナリオを分岐します。
ローカル変数 $1 の値が 1 であれば、ラベル abc にジャンプします。
つまり、フラグが立っていればシナリオを分岐します。

@if $1 == 1 abc
変数の値が1以外です。つまり、フラグが立っていないということです。
ここにシナリオを記述します。
@goto end
:abc
変数の値が1です。つまり、フラグが立っているということです。
ここにシナリオを記述します。
:end

使い方2

名前変数の値でシナリオを分岐します。
名前変数 %a の値が みどり であれば、ラベル MIDORI にジャンプします。
デフォルトの名前のときだけイベントを発生させるときに使えます。

@if %a == みどり MIDORI
名前がみどり以外です。
ここにシナリオを記述します。
@goto end
:MIDORI
名前がみどりです。
ここにシナリオを記述します。
:end

応用編

ラベルやジャンプがわかりにくいときは、拡張 if 文を使うことができます。

<<<
if $1 == 0 {
    おはよう。
}-
else if $1 == 1 {
    こんにちは。
}-
else {
    こんばんは。
}
>>>

ラベル

:ラベル名

ジャンプ先となるラベルを作成します。
ラベルはゲームの見た目には影響しません。
ラベルの名前には日本語を使うことも可能です。

使い方

ループします。

:ジャンプ先
何かメッセージを表示する
@goto ジャンプ先

@load (@シナリオ)

@load [ファイル]
@load [file=ファイル]
@シナリオ [ファイル=ファイル]

スクリプトファイルにジャンプします。
スクリプトファイルはフォルダtxtの中に存在する必要があります。

使い方

スクリプトファイル 001.txt にジャンプします。

@load 001.txt

メッセージ

メッセージボックスにテキストを出力します。
\n で改行できます。
\#{RRGGBB} でフォントの色を変更できます。
\@{サイズ} でフォントのサイズを変更できます。
\w{秒数} でウェイトを挿入できます。
\p{x座標,y座標} で描画位置を変更できます。
長\^{おしゃまんべ}万部 でルビを振ることができます。
行の先頭に \ を置くことで、前の行を継続できます。(全画面ノベルで使用)
$数字 でローカル変数やグローバル変数の値の数値を出力できます。
%アルファベット小文字 で名前変数の値の文字列を出力できます。

使い方

こんにちは、新しいノベルゲームです。

@news

@news [...長い...]

注意: このコマンドは隠しコマンドです。通常のノベルゲームでは使用されません。

@switch の亜種です。
親選択肢の最初の4つが、北、東、西、南に表示されます。
ダンジョン探索のような場面のために存在します。
親選択肢に限り、表示メッセージに * を指定することで、選択肢を非表示にすることができます。


@return

@return

サブルーチンから戻ります。
通常のノベルゲームでは使用しません。

使い方

サブルーチン SUB を実行します。

@gosub SUB

:SUB
ここに何らかの処理やメッセージを記述します。
@return

@se (@効果音)

@se [ファイル]
@se [file=ファイル]
@効果音 [ファイル=ファイル]

SE(効果音)を再生します。
SEファイルはフォルダ se に格納されている必要があります。
再生可能なファイル形式は、44.1kHzのOgg Vorbisのみです。

使い方1

SEを再生します。

@se click.ogg

使い方2

SEを停止します。

@se stop

使い方3

SEをリピート再生します。

@se sample.ogg loop

特殊な使い方

ボイストラックでSEを再生します。
この機能は音量設定画面でボイス再生を行う際に使います。
音声ファイルは se フォルダのものが用いられます。

@se click.ogg voice

セリフ

キャラ名「セリフ」
*キャラ名*セリフ
*キャラ名*音声ファイル*セリフ

メッセージボックスにセリフのテキストを出力します。
また、名前ボックスにキャラクタの名前を出力します。
ボイスを再生することができます。
ボイスファイルは、フォルダ cv の中に存在する必要があります。
ボイスファイルの形式は、44.1kHzのOgg Vorbisである必要があります。
メッセージと同様の装飾が使えます。

使い方1

セリフを出力します。

みどり「こんにちは、Suika2です。」

使い方2

ボイスを再生して、セリフを出力します。

*みどり*001.ogg*こんにちは、Suika2です。

使い方3

指定したビープ音をリピート再生して、セリフを出力します。

*名前*@beep.ogg*こんにちは、新しいノベルゲームです。

@set (@フラグをセット)

@set [変数] [演算子] [値]
@フラグをセット [変数] [演算子] [値]

ローカル変数、グローバル変数、名前変数に値をセットします。
「ローカル変数」はセーブデータごとに値が異なり、 $0 から $9999 までの10000個を利用できます。
「グローバル変数」は、全てのセーブデータで共通の値となり、 $10000 から $10999 までの1000個を利用できます。
ローカル変数とグローバル変数は整数で、変数の初期値はすべて 0 です。
「名前変数」はセーブデータごとに値が異なり、 %a から %z までの26個を利用できます。
名前変数は文字列で、変数の初期値はすべて空の文字列です。
@set で利用できる計算には下記のものがあります。名前変数には代入以外使えません。

計算の種類意味
=単純に a に b を入れます(代入)
+=a に b を足し算します(加算)
-=a から b を引き算します(減算)
*=a に b をかけ算します(乗算)
/=a を b で割り算します(除算)
%=a を b で割った余りを求めます(剰余)

使い方1

ローカル変数 $0 に値 1 を代入します。
フラグのセットに利用します。ローカル変数の初期値は 0 なので、フラグが立ったことになります。

@set $0 = 1

使い方 2

ローカル変数 $10 に値 23 を加算します。 好感度の加算などに応用できます。

@set $10 += 23

使い方3

ローカル変数 $00 から 9 までのランダムな値を代入します。
最初にランダムな数を $RAND で求めてから、 10 で割った余りを計算しています。
ランダムなイベント発生に応用できます。

@set $0 = $RAND
@set $0 %= 10

使い方4

ローカル変数 $1 にローカル変数 $2 を加算します。
好感度の計算などに利用できます。

@set $1 += $2

使い方5

名前変数 %a に文字列 みどり を代入します。
デフォルトの名前を設定するのに利用できます。

@set %1 = みどり

@setconfig

@setconfig [コンフィグ名] (値)

コンフィグをゲーム実行中に書き換えられる便利コマンドです。 ですが、コンフィグ変更はできるだけWMSにまとめるて実行するのをおすすめします。

使い方

メッセージボックスを変更します。画面いっぱいを使うノベルと、アドベンチャー形式を切り替えるのに使います。

@setconfig msgbox.bg.file msgbox-bg.png
...
@setconfig update-msgbox-and-namebox

@setsave

@setsave [disable/enable]

セーブ・ロード画面の表示を禁止・解禁します。 この機能は通常のノベルゲームでは使いません。

使い方1

セーブ・ロード画面を有効化(解禁)します。 [デフォルト設定]

@setsave enable

使い方2

セーブ・ロード画面を無効化(禁止)します。

@setsave disable

@shake (@スキップ)

@shake [方向] [秒] [回数] [大きさ]
@shake [direction=方向] [duration=秒] [times=回数] [amplitude=大きさ]
@振動 [direction=方向] [秒=秒] [回数=回数] [大きさ=大きさ]

画面を揺らします。

使い方1

1.0秒かけて、3回、横方向に100px、画面を揺らします。
なお、 horizontalh と省略できます。

@shake horizontal 1.0 3 100

使い方2

1.0秒かけて、3回、縦方向に100px、画面を揺らします。
なお、 verticalv と省略できます。

@shake vertical 1.0 3 100

@skip (@スキップ)

@skip [enable/disable]
@スキップ [許可/不許可]

待ち時間のあるコマンドのスキップを禁止・解禁します。
ゲーム起動時にブランドロゴを表示するのに使用できます。

使い方1

スキップを有効にします。 [デフォルト設定]

@skip enable

使い方2

スキップを無効にします。

@skip disable

@switch

@switch [...長い...]

注意: このコマンドは隠しコマンドです。
2階層の選択肢を表示します。
1階層目を親選択肢と呼び、2階層目を子選択肢と呼びます。
親選択肢が最大8個、子選択肢が最大8個で、合計で最大64分岐を記述できます。

使い方

2階層で4つの選択肢を表示します。

@switch 親選択肢1 親選択肢2 * * * * * * LABEL1 子選択肢1 LABEL2 子選択肢2 * * * * * * * * * * * * LABEL3 子選択肢3 LABEL4 子選択肢4 * * * * * * * * * * * *
:LABEL1
:LABEL2
:LABEL3
:LABEL4

@video (@動画)

@video [ファイル]
@video [file=ファイル]
@動画 [ファイル=ファイル]

動画を再生します。
Windowsで再生できる動画は .wmv ファイルです。
その他の環境で再生できる動画は .mp4 ファイルです。
ファイル名の指定で拡張子(.wmv.mp4)を省略すれば、その環境用に自動選択されます。
動画ファイルは mov ディレクトリに格納します。
mov ディレクトリは data01.arc ファイルに格納されません。

Webブラウザでは、プレイヤが最初にクリックする前に動画を再生しようとするとゲームが止まります。 Web版でゲームの先頭で動画を再生するときは事前に @click を入れてください。

使い方

動画を再生します。 Windowsでは sample.wmv が再生されます。 その他の環境では sample.mp4 が再生されます。

@video sample

@vol (@音量)

@vol [トラック] [音量] (秒)
@vol [track=トラック] [volume=音量] (duration=秒)
@音量 [トラック=トラック] [音量=音量] (秒=秒)

時間を指定してボリュームを調整します。
調整できるトラックは、小文字bgm, voice, se の3つです。
または、日本語で 音楽, , 効果音 と指定することもできます。
これらの3トラックの音量は初期値で 1.0 で、セーブデータごとに別な値に変化します。
音量の値は 0.0 から 1.0 の範囲で指定できます。 0.0 が無音で、 1.0 が最大音量です。

使い方1

BGMの音量を 1.0 秒かけて 0.5 にします。
bgmb と省略することもできます。

@vol bgm 0.5 1.0
@wait 1.0

@wait (@時間待ち)

@wait [秒]
@wait [duration=秒]
@時間待ち 秒=秒

時間を指定して待機します。
途中、キーボードやマウスの入力があれば待機を終了します。
待機中、メッセージボックスは表示されません。

使い方

5秒待ちます。

@wait 5.0

@wms (@スクリプト)

@wms [ファイル]
@wms [file=ファイル]
@スクリプト [ファイル=ファイル]

WMS (Watermelon Script) を実行します。

使い方

wms/hello.txt を実行します。

@wms hello.txt

マクロの取り込み

using [マクロファイル]

ファイルにまとめたマクロを取り込みます。
マクロ内で定義したサブルーチンを @gosub で呼び出してください。

使い方

txt/macro.txt を取り込みます。 マクロがそのまま実行されないように、@gotoでガードします。

@goto MACRO_END
using macro.txt
:MACRO_END