Suika2 コマンドリファレンス

索引

コマンドとは

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

@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 (指定を省略した場合) 標準
ルール指定トランジション rule:ルール画像ファイル
右方向カーテン 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

エフェクト mask は削除されました。 代わりに rule:rule-mask.png を使用してください。

@bgm (@音楽)

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

BGMを再生します。

BGMファイルはフォルダ bgm に格納されている必要があります。
再生可能なファイル形式は、44.1kHzのOgg Vorbisのみです。

使い方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
おはよう

@chs (@場面転換)

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

キャラクタの一括変更を行います。
また、キャラクタと同時に背景も変更できます。
キャラクタの指定順は、中央、右、左、後ろです。
エフェクトの種類は @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

@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を表示します。従来の @menu@retrospect を置き換えます。
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など)
条件文の右側は整数(1など)か変数名($0など)を指定できます。

使い方

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

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

ラベル

:ラベル名

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

使い方

ループします。

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

@load (@シナリオ)

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

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

使い方

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

@load 001.txt

注意: このコマンドは廃止予定です。代わりに @gui を使用してください。

@menu [...長い...]

画像を表裏の2枚使ってメニューを表示します。
ボタンを16個まで作成できます。
基本的に1枚目の画像が表示されますが、ボタンがマウスでポイントされている間は、そのボタンの領域だけ2枚目の画像が表示されます。
メニュー画面は右クリックでキャンセルできません。

使い方

@menu menu.png menu-selected.png START 640 480 240 120 END 880 600 240 120
:START
:END

引数の意味:

  • menu.png ... 1枚目の画像
  • menu-selected.png ... 2枚目の画像
  • START ... ボタンが押されたときのジャンプ先ラベル
  • 640 480 ... ボタンを表示する位置(ボタンの左上座標)
  • 240 120 ... ボタンのサイズ

メッセージ

メッセージボックスにテキストを出力します。
\n で改行できます。
行の先頭に \ を置くことで、前の行を継続できます。(全画面ノベルで使用)
$数字 で変数の値の数値を出力できます。

使い方

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

@news

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

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

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

@retrospect

注意: このコマンドは廃止予定です。代わりに @gui を使用してください。

@retrospect [...長い...]

CG鑑賞モードを実行します。
@menu と同様に表裏2枚の画像を使用してボタンを作成しますが、 @retrospect のボタンはイベントCGのサムネイルです。
作成できるボタンの数は12個までです。
それぞれのボタンに変数を指定して、変数の値が 0 のときはボタンを隠します。
また、@menuと異なり右クリックでキャンセルが可能です。この場合次のコマンドに進みます。
引数が多いです。先頭から順に7つは、次のようになっています。

  • 背景画像
  • 選択時に上書きされる画像
  • 変数の値が0のときにボタンを塗りつぶす色のR
  • 変数の値が0のときにボタンを塗りつぶす色のG
  • 変数の値が0のときにボタンを塗りつぶす色のB
  • ボタンの幅
  • ボタンの高さ

以降、ボタンの数だけ、次の4つを繰り返します。

  • ジャンプ先ラベル
  • チェックする変数
  • ボタンの左上X座標
  • ボタンの左上Y座標

使い方

@retrospect menu.png menu-selected.png 0 0 0 320 240 PICTURE1 $1 320 240
キャンセルされました
@goto END
:PICTURE1
@bg picture1.png 1.0
@click
:END

@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

@select

注意: このコマンドは廃止予定です。代わりに @choose を使用してください。

@select [...長い...]

選択肢を表示してラベルにジャンプします。
このコマンドは簡易版なので、選択肢の数は3つに固定されています。

使い方:

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

セリフ

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

メッセージボックスにセリフのテキストを出力します。
また、名前ボックスにキャラクタの名前を出力します。
ボイスを再生することができます。
ボイスファイルは、フォルダ cv の中に存在する必要があります。
ボイスファイルの形式は、44.1kHzのOgg Vorbisである必要があります。
メッセージと同様に、 \n で改行できるほか、 $数字 で変数の値の数値を出力できます。

使い方1

セリフを出力します。

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

使い方2

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

*名前*001.ogg*こんにちは、世界。

使い方3

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

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

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

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

変数に値をセットします。
セーブデータごとに値が異なる「ローカル変数」は、 $0 から $9999 までの10000個を利用できます。
また、全てのセーブデータで共通の値となるグローバル変数は、 $10000 から $10999 までの1000個を利用できます。
変数の初期値はすべて 0 です。
@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

@setsave

@setsave [disable/enable]

セーブ・ロード画面の表示を禁止・解禁します。
特別なケースとして、もし禁止状態であったとしても、 @goto $LOAD あるいは @goto $SAVE を実行すると、 その禁止状態は解除されます。
この機能は通常のノベルゲームでは使いません。

使い方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]
@スキップ [許可/不許可]

ウェイトのスキップを禁止・解禁します。
この機能は演出の他にも、ゲーム起動時にブランドロゴを表示するのに使用できます。
特殊な使い方として、メッセージやセリフの途中でのスキップも禁止できますが、この場合は @setsave disable でセーブ・ロード画面を無効にするとともに、 @goto $LOAD@goto $SAVE を使わないでください。

使い方1

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

@skip enable

使い方2

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

@skip disable

@switch

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

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

注意: 通常の選択肢を作成するには @choose を使用してください。

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とMacでのみ有効です。
Windowsで再生できる動画は .wmv ファイルです。
Macで再生できる動画は .mp4 ファイルです。
動画ファイルは mov ディレクトリに格納します。
mov ディレクトリは data01.arc ファイルに格納されません。

使い方

動画を再生します。

@video sample.wmv

@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

使い方2

特殊な例で、BGMの「グローバル音量」を即座に0.5に設定します。

@vol BGM 0.5 0

グローバル音量とは、全てのセーブデータで共通となる音量で、ゲームの設定画面から設定するものです。
グローバル音量を設定するには、トラック名に大文字BGM, VOICE, SE を指定します。
最終的な音量は「セーブデータごとの音量 × グローバル音量」となります。
グローバル音量を指定する際、時間には 0 (一瞬でという意味)を指定します。

@wait (@時間待ち)

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

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

使い方

5秒待ちます。

@wait 5.0

@wms (@スクリプト)

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

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

使い方

hello.txt を実行します。

@wms hello.txt