■ 作品&サポート


サウンドノベルプレーヤー のべ〜る

■リファレンスマニュアル(制御コマンド詳細)

※コマンドは随時追加されていく可能性があります。最新情報はプログラムに添付されているドキュメントを参照してください



遅延

【書式】

#delay n

テキスト表示の進行を n ミリ秒停止します。微妙な間をおいてタイミングを取りたいときになどに使用します。ちなみに1秒=1000ミリ秒です。


【使用例】

「それでは、位置について〜、
#delay 500
よ〜い・・・
#delay 1000
どんっ!」




改行

【書式】

;

テキストを改行します。のべ〜るはスクリプトのテキスト中に含まれる改行とTABは無視して文章表示を行う仕様になっています。改行したい場合は明示的に改行文字として ; の挿入が必要です。


【使用例】

AAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCC;
DDDDDDDDDDDDDDDDDDD

※↑この例では1行目、2行目の末尾では画面上では改行せずに文章が表示され、3行目の末尾のところで改行されます





カーソルを点滅させてキー(マウス)入力を待つ

【書式】

#wait

カーソルを点滅させながら、リターン or スペースキー(またはマウス左ボタン)が押されるまで待ちます。短縮表記として #w と書いてもOKです。

※おそらく一番使用頻度が高いコマンドでは?(・ω・)ノ


【使用例】

・・・生きるべきか死ぬべきか、#w それが問題だ。#w
しかしそれより問題なのは、3時のおやつが何であるかだ。





終了

【書式】

#halt

プログラムを終了します。ただしいきなりウィンドウを閉じて終わるのではなく、現在の画面をそのまま維持して、マウス左ボタンまたはリターン(or スペース)キーが押されるのを待ってから終了します。ゲームの最後、または編集途中のスクリプトの動作確認で 「ここまで実行して止まれ」 などの意で挿入することを想定しています。


【使用例】

・・・こうして、聖戦士ホエホエは悪の権化ウヒョウヒョ大魔王を倒した。#wait
その後、村人はみな幸せに暮らしましたとさ。ちゃんちゃん。
#halt




フォントサイズ変更

【書式】

#set_font_size n

フォント(文字)サイズを n に変更します。n はフォントの縦方向のドット数で、16〜24くらいが適当です。


【使用例】

では、少々遊んでみましょう。#w ;
;
#set_font_size 6
これは縦6ドットのフォント#w ;
#set_font_size 12
これは縦12ドットのフォント#w ;
#set_font_size 24
これは縦24ドットのフォント#w ;
#set_font_size 60
これは縦60ドットのフォント#w ;
#set_font_size 20
・・・・あまりやりすぎると馬鹿みたいですね(笑)#w




テキスト表示エリアの変更

【書式】

#set_text_area sx,sy,ex,ey

テキス表示エリアを (sx,sy)-(ex,ey) の矩形領域に設定します。のべ〜るの座標系は下図のとおりで、画面の左上が (0,0) となります。ソフトウェアで扱う画面の座標系は一般の数学座標とは少し違うので注意してください。




【使用例】

#set_text_area 20,350,620,470



#set_text_area 30,40,200,450




テキストウェイトの変更

【書式】

#set_text_wait n

1文字あたりの表示ウェイト値を n ミリ秒に設定します。ただしFPS限界以下の値を設定しても早くはなりません。FPSは充分に高速なマシンであればほぼ60フレーム/秒で、1フレームあたり16msecになります。のべ〜るは1フレーム毎に1文字ずつ処理を進める仕様なので n=16 以下の値を設定してもそれ以上早くはなりません。デフォルトでは60fpsいっぱいに早く表示するため n=15 が設定されています。


【使用例】

#set_text_wait 15
これがデフォルトの表示速度です。
これがデフォルトの表示速度です。
これがデフォルトの表示速度です。
#set_text_wait 50
ウェイトを50まで遅くしてみました。
ウェイトを50まで遅くしてみました。
ウェイトを50まで遅くしてみました。
#set_text_wait 1
極端に小さな値を設定しても限界値以上には高速化しません。
極端に小さな値を設定しても限界値以上には高速化しません。





テキストカラーの変更

【書式】

#set_text_color r1, g1, b1, r2, g2, b2

テキストカラーを、文字色 RGB(r1,g1,b1)、影色 RGB(r2,g2,b2) に変更します。
文字色、影色とは下図の部分の色のことで、RGBとは光の3原色の配分を各色0〜255の数値で表したものです(組み合わせは約1600万通りあります)。
参考までにカラーチャートを乗せておきますので、自分のイメージに近い色のRGBの組み合わせからいろいろ数値をいじってみてください。





【使用例】

#set_text_color 255,255,255,0,0,0

※↑この設定だと文字色は RGB(255,255,255)=白、影色はRGB(0,0,0)=黒




画像(BMP/JPEG)の読み込み

【書式】

#g_load vram, file_name


指定のサーフェイス(画面)に画像を読み込みます。

vram バックサーフェイス=BS 背景画面=BG
File_name 拡張子まで含めたファイル名

なおサーフェイスの指定は
通常はBGにしてください。BSに読み込むといきなり画像がズバっと現れてそれまでに表示していた文章が消えてしまいます。BGに読み込むと、読み込んだだけでは画面に反映しませんが、切り替え効果やフェードインなどの演出コマンドを使いながら画像を表示することができます。

【使用例】

#g_load BG haikei_gazou.jpg
#fade_in

※↑この例はフェードインと組み合わせた例




画像の転送(コピー)

【書式】

#g_copy dst_vram,dx,dy,src_vram,sx,sy,width,height

サーフェイス src_vram の座標 sx,sy 幅 width 高さ height のパターンを、サーフェイス dst_vram の 座標 dx,dy にコピーする。

dst_vram 転送先画面。バックサーフェイス=BS 背景画面=BG
dx , dy コピー先座標
src_vram 転送元画面。バックサーフェイス=BS 背景画面=BG
sx , sy コピー元座標
width,height 幅、高さ

パラメータが多いですが、図で描くと以下のようなことです。



【使用例】

#g_copy BS, 0, 250, BG, 320, 250, 300, 250

※↑この例では画面BSの 座標 (x,y)=(0,250) の位置に、画面BGの座標 (x,y)=(320,250) を左上とする幅300、高さ250のパターンをコピーします




画像の半透明転送(コピー)

【書式】

#alpha_copy dst_vram,dx,dy,src_vram,sx,sy,width,height,rate

サーフェイス src_vram の座標 sx,sy 幅 width 高さ height のパターンを、サーフェイス dst_vram の 座標 dx,dy にコピーする。

dst_vram 転送先画面。バックサーフェイス=BS 背景画面=BG
dx , dy コピー先座標
src_vram 転送元画面。バックサーフェイス=BS 背景画面=BG
sx , sy コピー元座標
width,height 幅、高さ
rate 濃度 0〜100% (0=透明 100=完全不透明)

コピーの要領は、通常の画像転送(#g_copy コマンド)とほぼ一緒です。

【使用例】

#alpha_copy BS, 0, 250, BG, 320, 250, 300, 250, 30

※↑この例では画面BSの 座標 (x,y)=(0,250) の位置に、画面BGの座標 (x,y)=(320,250) を左上とする幅300、高さ250のパターンを濃度30%でコピーします




改ページ

【書式】

#page

現在表示している文字+画像を、背景画面(BS)の画像を上書きすることで消去します。 #page コマンドの前に BG面に別の画像を読み込んでおけば、改ページと同時に背景も切り替わります。




画面切り替え効果

【書式】

#g_change option

現在表示している文字+画像を、背景画面(BS)の画像を上書きすることで消去します。 option は以下の4種類のうちからひとつを指定します。

※ option

CURTAIN
カーテン状に切り替わります



SPREAD
放射状に切り替わります。



STRETCH_X
X(横)方向に伸縮展開します



STRETCH_Y
Y(縦)方向に伸縮展開します




【使用例】

#g_load BG haikei_gazou.jpg
#g_change CURTAIN

※↑この例ではBG面に haikei_gazou.jpg を読み込んで CURTAIN オプションで画面を切り舞えています




イベントフラグ ON

【書式】

#flag_on n

イベントフラグ n 番(n=0〜255)を ON にする。

※イベントフラグの初期値はすべてOFFです



イベントフラグ OFF

【書式】

#flag_off n

イベントフラグ n 番(n=0〜255)を OFF にする。




イベントフラグの状況を表示する(Debug用)

【書式】

#disp_flag n

イベントフラグ n 番(n=0〜255)の状況をダイアログボックスを開いて表示します。スクリプト編集中の動作確認のためのコマンドで、分岐が思ったような動作にならないときに一時的にこのコマンドを文章中に挿入してフラグの状態を確認するような使用方法を想定しています。



イベントフラグによる分岐

【書式】

#if_flag n {
フラグが ON のときの処理
/
フラグが OFF のときの処理
}

イベントフラグ n 番(n=0〜255)のON/OFF状況に応じて処理を分岐します。{ } で挟んだスクリプトブロックを / で場合分けする構文になっており、{ } の内部には普通にスクリプトを記述することができます。


【使用例】

j※どこかでイベントを経験し、フラグ 10 番がONになっている前提です

勇者「王様、ただいま戻りました!」 #w ;
王様「おお勇者よ、我が王国の宝剣・・・しかと取り戻してくれたか」 #w ;
勇者「はい。ここに」#w ;
#if_flag 10 {
王様「うむ、たしかに失われた宝剣じゃ! でかしたぞ!」
/
王様「ばか者、これはただのおもちゃの剣ではないか!」#w ;

勇者「のー」#w ;

#jump *BAD_END:
}

※スクリプトを { } の中に長々と書くよりも、上の例のようにラベルジャンプでそれぞれのシナリオに飛んでいくほうがスマートと思われます。



ラベルジャンプ

【書式】

#jump *LABEL:

ラベル *LABEL: をスクリプト先頭からサーチして、その直後にジャンプする。文章の途中でジャンプコマンドを書いておくと、ジャンプ先のラベルの直後から画面表示が継続していく。なお #jump コマンドで処理を飛ばせるのは同一のテキストファイル中に限られる。

※ラベルの定義
「*」で始まり「:」で終る32文字以内の英数字文字列で、必ずテキストの行頭にある必要がある。ラベルは処理を飛ばすときの目印で、画面には表示されない。




ファイル間ラベルジャンプ

【書式】

#file_change file_name, *LABEL:

別のテキストファイルのラベル位置にジャンプする。要するに #jump コマンドの拡張版。

※ラベルの定義
「*」で始まり「:」で終る32文字以内の英数字文字列で、必ずテキストの行頭にある必要がある。ラベルは処理を飛ばすときの目印で、画面には表示されない。




選択

【書式】

#select3 {
選択肢1
選択肢2
選択肢3
/
選択肢1を選んだときの処理
/
選択肢2を選んだときの処理
/
選択肢3を選んだときの処理
}

選択肢を3つ表示してプレイヤーに選ばせ、それぞれの処理に分岐する。選択肢の文字列は画面の1行に収まる範囲でなければならない。




WAV再生(効果音)

【書式】

#play_wav flag , filename

WAVファイルを再生します。フラグによって単発再生かループ再生(延々と波の音を続けるなど)かを選べます。WAVファイルは フォルダ wav に入れておく必要があります。

flag : 0=単発再生 1=ループ再生
filename : wavファイル名(***.wav)



WAV停止(効果音)

【書式】

#stop_wav

WAVファイルの再生を停止します。

※単発再生のWAVは鳴りやめばそこで終わりなので、わざわざ #stop_wav コマンドで止める必要はありません。非常に長いWAV(BGM1曲まるごとWAVなど)やループ再生中のWAVを止めたいときに使用するコマンドです。



MIDI再生(BGM)

【書式】

#play_midi filename

フォルダ midi にはいってるMIDIファイルを再生します。既にBGMが流れている場合は #stop_midi で現在の演奏をまず止める必要があります。なお、演奏は無限に繰り返し(ループ)ます。



MIDI停止(BGM)

【書式】

#stop_midi

MIDIファイルの再生を停止します。



MP3再生(BGM)

【書式】

#play_mp3 filename

フォルダ midi にはいってMP3ファイルを再生します。既にBGMが流れている場合は #stop_mp3 で現在の演奏をまず止める必要があります。なお、演奏は無限に繰り返し(ループ)ます。



MP3停止(BGM)

【書式】

#stop_mp3

MP3ファイルの再生を停止します。



明示的にセーブポイントを設定する

【書式】

#save_point

ユーザーがシステムメニューを開いてSAVEコマンドを選んだときに保存されるポイントを定義する。短縮表記として #sp と記述してもよい。

■解説

スクリプトの文章表記が以下のようなものだった場合、下図の「ここで SAVE」 の部分を表示中にユーザーがSAVEを実行しても、LOAD時には #sp の部分からスクリプト再生が始まる。イベント等で 「LOAD時はここから始まりたい」 という意図がある場合に設定する。



適当な文章の例適当な文章の例適当な文章の例 #w ;
適当な文章の例適当な文章の例適当な文章の例 #w ;
適当な文章の例適当な文章の例適当な文章の例 #w ;
#sp
適当な文章の例適当な文章の例適当な文章の例 #w ;
適当な文章の例適当な文章の例適当な文章の例 #w ;
適当な文章の例適当な文章の例適当な文章の例 #w ; ← ここでSAVE
適当な文章の例適当な文章の例適当な文章の例 #w ;

※セーブポイントは後述の
自動生成モードがデフォルトとなっているので、明示的に設定したい場合はマニュアルモードに切り替えておく必要がある。



セーブポイントの自動生成を設定/解除する

【書式】

#save_point _mode flag

flag : AUTO = 自動 MANUAL = 手動

セーブポイントを自動生成するかどうかを設定する。AUTO を設定した場合、無条件に改ページ直後をセーブポイントとして扱う。 MANUAL を設定した場合は #save_point または #sp コマンドで明示的に示された箇所のみセーブポイントとして扱う。プログラム起動時のデフォルトは AUTO モードになっている。



#save_point_mode AUTO

■解説

ノベルの場合、ユーザーがシステムメニューを開いてSAVEを実行した位置が表示中ページの最初のほうでも最後の方でも、LOAD時にはそのページの先頭からテキスト表示が再開してほしい。そのため、内部的にセーブポイントという概念で 「LOAD時にはここから再生をはじめる」 という位置情報を管理している。このコマンドは、これを自動更新にするか、手動で設定するかを切り替える。デフォルト設定はAUTOになっており、改ページのタイミングで自動更新されている。

MANUALモードにした場合、テキスト表示で最後に通過した #sp の場所がLOAD位置になるため、うっかり #sp を記述し忘れるとLOADした瞬間に数十ページ前の #sp 記述位置まで戻ってしまう場合もある。
通常は AUTO にしておいたほうが無難で、わからない人は設定を変えてはいけません(・ω・)ノ



セーブポイントの生成モードを表示する(DEBUG用)

【書式】

#disp_save_point_mode

現在のセーブポイント生成モードを表示する。スクリプトDEBUG中の確認用に用意したもの。



画面が揺れる効果

【書式】

#shake dir

dir で指定した方向に画面を揺らす。

dir :
X = 横方向
Y = 縦方向
XY = 縦横方向

【例】

#shake Y



フェードアウト

【書式】

#fade_out

画面を暗くフェードアウトする。








フェードイン

【書式】

#fade_in

BG画面の画面内容でフェードインする。





※事前にフェードアウトをせず、そのままBG画面に別の画像を 読み込んでフェードインすると、画面がじわっと切り替わる効果になります。







文字列変数に値を書き込む

【書式】

#set_str 変数名 "文字列"

文字列変数 STR n に文字列をセットする。

【例】

#set STR 0 "山田太郎"

※文字列変数は STR 0 〜 STR 15 までの16個が使用できる。上の例では STR 0 に「山田太郎」という人名をセットしている。これを文章中で表示するには次のように記述すればよい。

俺の名前は \STR 0 だ。




ダイアログBOXを開いて人名記入

【書式】

#text_input 変数名 "デフォルトテキスト"

ダイアログボックスを開いてプレイヤーに名前の入力を促します。プレイヤーが名前を入力しないままダイアログを閉じた場合は、デフォルトテキストで指定した文字列が文字列変数に格納されます。



#text_input STR 00, "山田太郎"





起動時メニュー

【書式】

#start_menu x , y

x,y = 表示座標。

ゲーム起動時の初期メニュー(はじめから/LOAD/EXIT)を画面上の座標 (x , y) に表示します。

■解説

初期メニューをコマンドとして実装しているのは、最初にタイトル表示とか寸劇のようなちょっとした演出をおこなって、頃合を見計らってメニュー表示させたい、という要求によります。

メニュー処理のうち、EXITはそのまま終了、LOADは前回までのプレイ内容の再生に処理が移ってしまうので、「はじめから」が選ばれた場合のみ、#start_menu コマンド以降のスクリプトに処理が移ります。ゲームのオープニング部分は #start_menu に続けてそのまま記述すればよいことになります。




システムメニューの許可/禁止

【書式】

#system_menu_flag ON/OFF

ユーザーがマウス右クリックをしたときに、システムメニューが開くのを許可するか、禁止するかを指定します。ON=許可、OFF =禁止となります。



#system_menu_flag ON

■解説

まだゲームのオープニング劇が終わっていないとか、イベントの都合でLOAD/SAVEさせたくない場合に意図的にシステムメニューが開くのを禁止できるようにするコマンドです。OFFにしたままノベルを進行させるとプレイヤーがセーブをできないままになってしまうので、頃合を見計らってちゃんとONに戻すようにしましょう。





のべ〜る Home