#author("2023-10-22T11:10:20+09:00","default:discord","discord") * Suika2 コマンドリファレンス [#vaae6a00] ** 索引 [#j5e7f3bc] - [[コマンドとは]] - 画面表示系のコマンド -- [[メッセージ:#メッセージ]] -- [[セリフ:#セリフ]] -- [[@bg 背景の表示:#bg]] -- [[@ch キャラクタの表示:#ch]] -- [[@chsx キャラクタと背景の一括変更:#chsx]] -- [[@cha キャラクタの移動:#cha]] -- [[@shake 画面を揺らす:#shake]] -- [[@video 動画の再生:#video]] -- [[@anime アニメーションの表示:#anime]] - 音声再生系のコマンド -- [[@bgm BGMの再生:#bgm]] -- [[@se SEの再生:#se]] -- [[@vol ボリュームの変更:#vol]] - 選択肢表示系のコマンド -- [[@choose 選択肢の表示:#choose]] -- [[@ichoose インライン選択肢の表示:#ichoose]] -- [[@gui GUIの表示:#gui]] - ウェイト系のコマンド -- [[@click クリックされるまで待機:#click]] -- [[@wait 指定した時間だけ待機:#wait]] -- [[@skip ウェイトのスキップを禁止:#skip]] - シナリオ分岐系のコマンド -- [[ラベル]] -- [[@goto ラベルにジャンプ:#goto]] -- [[@set 変数に値を設定:#set]] -- [[@if 変数の値でジャンプ:#if] -- [[@load スクリプトにジャンプ:#load]] -- [[@chapter 章のタイトルを設定:#chapter]] - システム系のコマンド -- [[@setconfig コンフィグの書き換え:#setconfig]] -- [[@setsave セーブ許可/禁止:#setsave]] -- [[using マクロの取り込み:#using]] ** コマンドとは [#コマンドとは] [#pd3c4172] コマンドとは、Suika2に対する指示のことで、Suika2を使ってノベルゲームを作る上で必要なものです。 ほとんどのコマンドは @ マークから始まります。 コマンドを覚えておく必要はなく、このページを見ながら書くか、一度使ったものをコピペして使うなどすればよいです。 ** @anime (@アニメ) [#anime] 記法 @anime [ファイル名] (オプション) @アニメ [ファイル名] (オプション) アニメファイルを再生します。レイヤーの移動、エフェクトの表示に使います。 アニメファイルはフォルダ anime に配置する必要があります。 Suika2/14.5現在、回転や拡大縮小はサポートされていませんが、順次サポートされさす。 *** 使い方1 [#ma66156d] anime1.txt を再生します。再生完了まで待ちます。(sync) @anime anime1.txt sync *** 使い方2 [#z7eaee21] anime1.txt を再生します。再生完了を待ちません。(async) @anime anime1.txt async なにかメッセージを表示します。 @anime finish-all *** 使い方3 [#le3c1138] anime1.txt を再生します。折りたたみシステムメニューを表示しません。(nosysmenu) @anime anime1.txt sync,nosysmenu *** 使い方4 [#b0154217] anime1.txt を再生します。メッセージボックスを表示します。(showmsgbox) @anime anime1.txt sync,showmsgbox *** 使い方5 [#x5db5a32] ループアニメ loop-anime1.txt を再生します。 @anime loop-anime1.txt async なにかメッセージを表示します。 @anime stop-all *** アニメファイルの記述例 [#z0f46131] 詳細は[[アニメファイルの書き方]]をご参照ください。 下記は例です。 # アニメーションファイル # 中央キャラを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 [ファイル名] (秒) (エフェクト) @bg [file=ファイル名] (duration=秒) (effect=エフェクト) @背景 [ファイル=ファイル名] (秒=秒) (エフェクト=エフェクト) 背景を変更します。背景の変更後、キャラクタはステージ上からいなくなります。 *** 使い方1 [#y9f83e66] sample.png を1.5秒かけて背景にセットします。 @bg sample.png 1.5 *** 使い方2 [#yd4b973f] sample.png を即座に背景にセットします。 @bg sample.png *** 使い方3 [#aa234de2] sample.png を1.5秒かけて右方向カーテンフェードで背景にセットします。 @bg sample.png 1.5 c *** 使い方4 [#aa408acd] 色を指定して1.5秒かけて左方向カーテンフェードで背景にセットします。 @bg #ff8080 1.5 curtain-left *** 使い方5 [#fe29bb79] 目を閉じるような演出を行います。 @bg #000000 1.5 eye-close *** 使い方6 [#i7a4f574] 目を開けるような演出を行います。 @bg sample.png 1.5 eye-open *** 使い方7 [#k6e31dae] ルール画像を使ってトランジションを行います。 ルール画像はグレースケールで、黒い部分から白い部分にかけて順に描画されます。 @bg sample.png 1.5 rule:rule-star.png *** 背景/キャラで共通のエフェクト [#d1eaec13] フェードには次のエフェクトを指定できます。すべてのエフェクトを[[こちらのページ:https://akatsuki-club.com/tools/suika2_bg/]]でお試しいただけます。(スクリプト配布元は[[こちらのサイト:https://akatsuki-club.com/blog/suika2_background_effect_tool/]]です。) |LEFT:150|LEFT:150|LEFT:150|LEFT:150|LEFT:150|c |エフェクトの種類|エフェクト名|エフェクト短縮名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] @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 center は c と省略して構いません。 @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.file と switch.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 セリフ キャラ名「セリフ」 *キャラ名*セリフ [#x67a2138] *キャラ名*音声ファイル*セリフ [#x0d9c1df] メッセージボックスにセリフのテキストを出力します。 また、名前ボックスにキャラクタの名前を出力します。 ボイスを再生することができます。 ボイスファイルは、フォルダ cv の中に存在する必要があります。 ボイスファイルの形式は、44.1kHzのOgg Vorbisである必要があります。 メッセージと同様の装飾が使えます。 使い方1 セリフを出力します。 みどり「こんにちは、Suika2です。」 使い方2 ボイスを再生して、セリフを出力します。 *みどり*001.ogg*こんにちは、Suika2です。 [#hf46b675] 使い方3 指定したビープ音をリピート再生して、セリフを出力します。 *名前*@beep.ogg*こんにちは、新しいノベルゲームです。 [#aed6d58c] @set (@フラグをセット) @set [変数] [演算子] [値] @フラグをセット [変数] [演算子] [値] ローカル変数、グローバル変数、名前変数に値をセットします。 「ローカル変数」はセーブデータごとに値が異なり、 $0 から $9999 までの10000個を利用できます。 「グローバル変数」は、全てのセーブデータで共通の値となり、 $10000 から $10999 までの1000個を利用できます。 ローカル変数とグローバル変数は整数で、変数の初期値はすべて 0 です。 「名前変数」はセーブデータごとに値が異なり、 %a から %z までの26個を利用できます。 名前変数は文字列で、変数の初期値はすべて空の文字列です。 @set で利用できる計算には下記のものがあります。名前変数には代入以外使えません。 計算の種類 意味 = 単純に a に b を入れます(代入) += a に b を足し算します(加算) -= a から b を引き算します(減算) *= a に b をかけ算します(乗算) [#wcf77799] /= a を b で割り算します(除算) %= a を b で割った余りを求めます(剰余) 使い方1 ローカル変数 $0 に値 1 を代入します。 フラグのセットに利用します。ローカル変数の初期値は 0 なので、フラグが立ったことになります。 @set $0 = 1 使い方 2 ローカル変数 $10 に値 23 を加算します。 好感度の加算などに応用できます。 @set $10 += 23 使い方3 ローカル変数 $0 に 0 から 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、画面を揺らします。 なお、 horizontal は h と省略できます。 @shake horizontal 1.0 3 100 使い方2 1.0秒かけて、3回、縦方向に100px、画面を揺らします。 なお、 vertical は v と省略できます。 @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 にします。 bgm は b と省略することもできます。 @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 ビジュアルノベル制作ツール Suika2