はじめに

ONScripter (オーエヌスクリプター)とは、NScripter(解説)用に作られたスクリプトを独自に解釈して実行するプログラムです。

動作報告・バグ報告・機能追加要望・パッチは随時受け付けますので[ バグトラッキングシステム]までお願いします。報告の際はオプション欄 の中央のチェックボックスを外してから送信してください。「○○ゲームの× ×場面がなんかおかしい」という程度でも結構ですのでお気軽にどうぞ。ペー ジの一番下に記載のあるメールアドレスまで直接送っていただいても構いませ ん。

ソースパッケージ

バイナリパッケージ (Android, Zaurus 以外は当方では動作未確認)

プラットフォームパッケージ配布サイト
Android (1.6 or later)ONScripter on Android のページ
Zaurus (SL-C700, etc.)SDL on Zaurus のページ
LinuxDebian 公式 Unstable (Sid)
Debian 公式 Testing (Wheezy)
Debian 公式 Stable (Squeeze)
Debian 非公式 (Etch, Sarge, Woody, Potato)
Uncle Mion's ONScripter Corner (ONScripter-EN)
MacOSXONScripter Launcher and Binary for Mac OS X
Uncle Mion's ONScripter Corner (ONScripter-EN)
Windows霧雨の降る日に
ONScripter/SDL for Win32 (MinGW)
Uncle Mion's ONScripter Corner (ONScripter-EN)
PSP霧雨の降る日に
iPhone, iPod touchiPodOns
NetWalkerQt 初心者の覚え書き
Brain (WindowsCE 6.0)ONScripter for Brain
NetBSD, DragonFly BSDpkgsrc
pkgsrc-wip-jpめも (pkgsrc-wip/wip-jp/onscripter)
OS2/Warp猫耳なプログラミング格闘日記 (package at OS2.jp)
Playstation3 PS3 Linux で自作ソフトを楽しもう
WiiONScripter WiiBrew
FreeBSD Private Ports for FreeBSD
DreamcastONScripter for Dreamcast
その他募集中

ONScripter-EN とは、Uncle Mion さんによって英語のスクリプトがうまく 扱えるように拡張された ONScripter です。サポートされているコマンドも ONScripter より充実しています。従来の日本語のスクリプトも問題なく実行 できるようです。

特長

  1. 現時点(2009/05/17)で最新の NScripter と互換性のあるセーブファイルを入出力することもできます。異なるプラットフォーム上で同時に遊ぶ方法を参照してください。
  2. 全ての操作をキーボードから行えます。もちろんマウスも使えます。
  3. CD Audio の演奏を音楽ファイル(MP3, Ogg)の演奏に振り替える機能があります。
  4. マルチプラットフォームに対応しており、Windows, Linux, MacOS X, MacOS 9, Android(1.6 以上), iPhone, PSP, Zaurus(SL-5500,SL-A300,SL-B500,SL-C700), FreeBSD, Solaris(on SPARC), Tru64 UNIX, OS/2Warp, iPod, PocketPC, Playstation3, Wii, GP2X, NetWalker, Dreamcast での動作が確認されています。それ以外のプラットフォームでも、動作環境が準備できれば動作するはずです。
  5. --wide オプションを指定することによりワイドスクリーンモードになります。ONScripter ではゲーム画面の比率は通常 4:3 に固定されていますが、ワイドスクリーンモードではこの比率が 16:9 になります。ゲーム画面の横幅は、スクリプトから 320, 400, 640, 800 のいずれかに指定できます(デフォルトは 640)。
  6. 全てのコマンド・仕様を実装していないため、ゲームによっては挙動がおかしくなります。その場合は上記バグトラッキングシステムまで御報告下さい。

実行方法

動作環境

下記の処理系とライブラリ等が必要です。記載のバージョンは作者の開発環境のものですが、このバージョンに合わせる必要はないと思います。

必須

推奨

  • ogg-1.2.0, vorbis-1.3.1 (The Ogg Vorbis CODEC Project)
    Ogg Vorbis 形式の音楽ファイルを再生する場合には入れてください。同梱の Makefile.Linux, Makefile.ArmLinux ではデフォルトで使用するようになっています。整数演算のみを使用した Tremor vorbis を代わりに使うこともできます。

必要に応じて導入

  • mad-0.15.1b (MAD: Mpeg Audio Decoder)
    整数演算のみを使用した MP3 演奏ライブラリです。Android や Zaurus で MP3 を演奏する場合には必須です。MAD を使用するためには、SMPEG の代わりに MAD を有効にしてコンパイルした SDL_mixer を使用してください。
  • avifile-0.7.48 (avifile)
    avi コマンドを使ってムービーを再生する場合には入れてください。Linux で動作確認をしています。USE_AVIFILE を定義し AVIWrapper.o をリンクしてコンパイルすると使用されます。

当方では Windows, Linux, Android(HTC Desire (2.2)) で動作確認をしています。

コンパイル

適当な場所に ONScripter を展開し、Linux の場合は make -f Makefile.Linux, Windows の場合は、nmake -f Makefile.Win とやって下さい。Windows の場合は、bzip2, SDL と SMPEG のヘッダファイルとライブラリのある場所を Makefile.Win で指定しているので、自身の環境に合わせて適宜修正してください。

実行

[必須]まずゲームのアーカイブを一カ所にまとめます。通常は、スクリプト(0.txt もしくは nscript.dat)とアーカイブ(arc.sar もしくは arc.nsa)の2つのファイルがあれば十分なはずです。arc1.nsa 〜 arc9.nsa がある場合は、それも置いてください。またゲームによっては、アーカイブの外に一部の画像ファイルや音楽ファイルを置いていたりします。その場合は、それらのファイルも元と同じように置いてください。一番確実なのは、ディレクトリ毎全てのファイルをコピーしてくることです。

[必須]下記のTrueType font による文字表示を参考に、日本語 TrueType font を用意し、"default.ttf" という名前で置いてください。

[任意] CD audio の振り替え演奏をしたい場合は、下記のCD audio 演奏の振り替えに従って MP3 ファイルを用意してください。

[必須]最後に、ONScripter を実行してください。同じディレクトリにある nscript.dat とアーカイブを自動的に探し、ゲームが開始されます。なお ONScripter は、同じディレクトリにセーブデータやファイルログ等の状態ファイルを保存するため、このディレクトリには write permission を出しておいてください。

TODO

  1. ()Lua 対応
  2. ()右クリックからの windowerase を実行する時に windoweffect の効果を反映させる。
  3. ()bgcopy で取得した画像をセーブ時にファイルに保存するようにする。
  4. ()文字の影が既に描画されている文字にかぶった場合に対処する。
  5. ()正式な英語モード(english コマンド)への移行。
  6. ()existspbtn を spbtn として実装しているが、それでよいのかを検証する。
  7. ()コードの clean up。
だめーエンジン開発・移植日記(仮)
数多くのプラットフォームにONScripterを移植していただいた秋月かたねさんの日記です。
技術屋きさらの箱庭
以前にバグトラッキングシステムを運用していただいたきさらさんの日記です。

雑多なこと

キーボードショートカット

ONScripter は全ての操作をキーボードで行うことができます。ただし、 スクリプトの方でショートカットキーを設定している場合は、そちらが優先さ れます。

キー説明
spaceマウスの左クリックと同じだが、下にボタンがあってもボタン外を押したことになる
returnマウスの左クリックと同じ
escapeマウスの右クリックと同じ
p,k,↑ボタン・文章選択時にマウスカーソルを前の選択項目に動かす
n,j,↓ボタン・文章選択時にマウスカーソルを次の選択項目に動かす
s 次の選択肢まで飛ばすモードに切り替え
o 1ページ表示をするかしないかの切り替え
h,←マウスのホイールアップと同じ
l,→マウスのホイールダウンと同じ
f Full screen mode と Window mode の切り替え
a automode もしくは mode_ext が設定されている場合に、読み上げモードに入る
z --edit オプションを指定して起動したときに、音量及び変数変更モードに入る
1, 2, 3 文字の描画速度を変更
Shift + q 終了(end コマンドを発行)

起動オプション

オプション 説明
-h,--helpへルプを表示して終了します。
-v,--versionバージョンを表示して終了します。
--cdaudioCD Audio 演奏モードに変更します。CD Audio が使えなかったとしても MP3 ファイルは使用しません。
--cdnumber cd_numberCD Audio 演奏モードにおいて、CD-ROM ドライブが複数ある場合に、何番目のドライブを使用するのかを指定します。デフォルトは0番目です。
-f,--font file使用する TTF フォントファイルを指定します。
--registry file使用する registry file を指定します。
--dll file使用する dll file を指定します。
-r,--root path使用するゲームファイルのあるディレクトリを指定します。
--fullscreenフルスクリーンモードで起動します。
--windowウィンドウモードで起動します。
--wideワイドスクリーン(16:9)モードで起動します。
--force-button-shortcutgetenter と useescspc のコマンドを無視します。つまり、マウスのクリックを強制的に esc, space, return キーに割り付けます。
--enable-wheeldown-advanceテキスト終端でのクリック待ちの際に、マウスのホイールダウン操作をクリック操作として扱います。textgosub でクリック待ちをカスタマイズしているときには効果はありません。
--disable-rescale-DPDA を付けてコンパイルした ONScripter で、画像の解像度を PDA 用に落としたアーカイブを使用する場合は、このオプションを設定してください。ONScripter 内で解像度を 320x240 用に変換することを抑制します。
--editz キーを押したときに、音量及び変数の編集モードに入れるようになります。

異なるプラットフォーム上で同時に遊ぶ方法

例えばデスクトップPC(Windows, Linux)やスマートフォン(Android)など、 異なるプラットフォームでセーブファイルを共有してゲームを進めることがで きます。プラットフォームごとにゲームのアーカイブを用意し、以下の注意に したがってプラットフォームを移るたびに ONScripter(もしくは NScripter) の書き出すファイルをコピーしてください。

NScripter もしくは ONScripter が書き出すファイルには次のものがあり ます。このうち一部のファイルはゲームによっては書き出されないため、無い 場合もあります。

書き出しファイル説明
archive_path/gloval.savグローバル変数の格納
archive_path/envdata環境変数の格納
archive_path/kidoku.dat既読テキスト情報の格納
archive_path/NScrflog.dat既読ファイル情報の格納
archive_path/NScrllog.dat既読ラベル情報の格納
archive_path/save*.datセーブファイル(ONScripter の出力したものは ONScripter 専用です、NScripter が出力したものは NScripter でも ONScripter でも読み込めます)
archive_path/sav/save*.dat上段の NScripter が出力するものと互換性のあるセーブファイル(無保証)で、ONScripter が出力します
archive_path/その他画像ファイルスクリーンショットを画像ファイルとして保存している場合があります。これはゲームによって場所や名前が異なるので、ゲームごとに対応してください。

セーブファイルのフォーマットは NScripter (ONScripter) がバージョン アップするときに変更されることがあります。そのため、ONScripter の出力 するセーブファイルには、先頭にセーブファイルのバージョン番号が入ってい ます。また、sav というディレクトリがある場合には、バージョン番号なしの セーブファイルを sav 以下にも同時に作成します。sav 以下に生成されるセー ブファイルは、最新の NScripter が生成するセーブファイルと互換性があり ます。なお、セーブファイルのバージョン番号は ONScripter のバージョンと は異なります。

ONScripter は、バージョン番号ありのセーブファイルか、もしくは ONScripter がサポートする最新のフォーマットでバージョン番号なしのセー ブファイルを読み込むことができます。

ONScripter 環境から ONScripter 環境へデータを移動

上記の書き出しファイルを全てそのままコピーしてください。
ONScripter_dir/* → ONScripter_dir/*

NScripter 環境から ONScripter 環境へデータを移動

上記の書き出しファイルを全て(save*.datを含む)そのままコピーしてください。
NScripter_dir/* → ONScripter_dir/*

ONScripter 環境から NScripter 環境へデータを移動

save*.dat を除く上記の書き出しファイルを全てそのままコピーしてください。
ONScripter_dir/* → NScripter_dir/*
save*.dat については sav ディレクトリ以下に生成されたファイルをコピーしてください。
ONScripter_dir/sav/save*.dat → NScripter_dir/save*.dat

注意点

  • NScripter は、現時点(2009/05/17)で配布されている最新の nscr.exe を使用してください。古いものとは、セーブファイルの互換性がありません。
  • NScripter と ONScripter のデータ互換性は保証しませんが、私が試した限りは問題は生じておりません。
  • ONScripter は古いバージョンの NScripter が生成するセーブファイルを読み込むことができないため、ONScripter と NScripter を併用したい方は Windows 上では最初から上記の最新の nscr.exe を使用してください。
  • ONScripter と NScripter を併用する場合には、あらかじめ sav というディレクトリを作成しておいてください。

レジストリ読み込み

getreg コマンドは Windows の registry から指定されたデータを取得し ます。ONScripter では、テキストファイル registry.txt にデータを記述し、 これを読み込むことでこの機能を実現します。

registry.txt の書式は次の通りです。大文字・小文字は区別されます。ま た余計なスペース等を入れないようにして下さい。2バイト文字が使われてい る場合、文字コードが Shift JIS になることに注意してください。

[getreg の2番目の引数(ただし前後の""は除く)]
getreg の3番目の引数 = 比較対象文字列
(前後の""は必要です)  (前後の""は必要です)

registry.txt の例

[software\StudioOGA\ONScripter]
"INSTALL"="FULL"

[software\StudioOGA\のまど]
"Download log file"="c:\nomad_down.log"
"Upload log file"="c:\nomad_up.log"

ONScripter 起動時に --registry オプションを指定することで、 registry.txt を一カ所にまとめておくことができます。--registry を指定し ない場合は、現在のディレクトリの registry.txt を読みにいきます。

DLL 読み込み

exec_dll コマンドは Windows 上で実行可能な DLL (Dynamic Link Library) を実行します。ONScripter では、テキストファイル dll.txt に DLL 名とその戻値の対応を記述し、これを読み込むことでこの機能を実現しま す。従って、実際に DLL が実行されるわけではなく、また戻値は固定になり ます。

dll.txt の書式は次の通りです。大文字・小文字は区別されます。また余 計なスペース等を入れないようにして下さい。2バイト文字が使われている場 合、文字コードが Shift JIS になることに注意してください。

[dll 名]
str = "文字列(getret で受け取ることのできる文字列戻値))" 
ret = 整数(getret で受け取ることのできる数字戻値)

dll.txt の例

[test.dll]
str = "山田/太郎/やまだ/たろう"
ret = 1

[test2.dll]
str = "StudioOGA"
ret = 2

ONScripter 起動時に --dll オプションを指定することで、dll.txt を一 カ所にまとめておくことができます。--dll を指定しない場合は、現在のディ レクトリの dll.txt を読みにいきます。

音量及び変数編集モード

これは暫定的なおまけ機能であり、今後変更されたり無くなったりする可能性があります。

ONScripter 起動時に --edit オプションを指定することで有効になります。

任意のキー入力待ち状態時に z キーを押すことで、編集モードに入ります。この時、title bar に

[EDIT MODE]  MP3 vol (m)  SE vol (s)  Voice vol (v)  Numeric variable (n)

と表示されるはずです。この状態で、m, s, v, n のい ずれかのキーを押すことで、それぞれの値を変更するサブモードに入ります。 また、Esc キーを押すことによってモードを抜けることができます。

数字変数の場合は、値変更の前にどの変数を変更するのかを選択します。

値変更サブモードでは、0 から 9 までの数字と -, BackSpace, Esc, リター ンキーが使えます。- キーは、対象が数字変数でかつ数字が0の時のみ有効に なります。既に数字が入力されている場合には、一旦 BackSpace で数字を全 部消してから - キーを押してください。

TrueType font による文字表示

文字を表示するためには、TrueType font を用意する必要があります。例えば Windows 2000 では \WinNT\Fonts の下に msgothic.ttc があり、またフリーの TrueType font として、kochi-gothic.ttf や wadalab-gothic.ttf があります。
ここで注意しなければいけないのは、TrueType font によっては正常に文字表示ができないということです。この原因は FreeType library か SDL_ttf の制約だと思いますが、以下に私が試した5つのフォントについて書きます。

MSゴシック (msgothic.ttc)
embedded bitmap を使っており、ゲームで 22pt 以下のフォントを要求すると正常に表示できません。
東風ゴシックフォント (kochi-gothic.ttf)
embedded bitmap を使っており、ゲームで 17pt 以下のフォントを要求すると正常に表示できません。
和田研ゴシック (wadalab-gothic.ttf)
embedded bitmap は使っていませんが、UNICODE で記述されていないため使えません。
HG ゴシック (hgrsmp.ttf)
embedded bitmap は使っておらず、全てのサイズのフォントを正常に表示できます。
みかちゃんフォント(みかちゃん-pb.ttf)
embedded bitmap は使っておらず、全てのサイズのフォントを正常に表示できます。

まとめると、UNICODE で記述されておりかつ embedded bitmap を使っていないフォント(上の例では HG ゴシックやみかちゃんフォント)が一番問題がなく、大きなフォントしか使わないゲームでは embedded bitmap が使用されていても使える(上の例では MSゴシックや東風ゴシック)といったところです。

ONScripter を起動する前に、使用する TrueType font ファイルを、default.ttf という名前にしてゲームのスクリプトがある場所のコピーしておいてください。

CD audio 演奏の振り替え

ゲームのスクリプトがある場所に cd というディレクトリを作成し、そこに以下の名前で音楽ファイルを置きます。
cd/track01.xxx
cd/track02.xxx
cd/track03.xxx
...
cd/track14.xxx
...
音楽ファイルのフォーマットは mp3, ogg, wav 形式に対応しています。上の xxxは、使用するフォーマットに合わせて変更してください。

スクリプト中の CD audio の1曲目を演奏するコマンドは、 "track01.mp3" (mp3 形式の場合)を演奏するように変更されます。 "--cdaudio"オプションが指定されていないかぎり、これがデフォ ルトの挙動となります。音楽ファイルが見つからない場合は、演奏せずに続行 します。

MIDI 演奏機能

MIDI は SDL_mixer の機能を使って演奏します。
この時、現在のディレクトリに tmp.mus という一時ファイルを作ります。美しくないですが、SDL_mixer の MIDI 読み込み部がファイルからの読み込みしかサポートしていないためやむをえません。

Unix系(動作確認は Linux と Zaurus)でソフトウェア音源で演奏する場合(デフォルト)。
SDL_mixer に取り込まれている timidity を使用してソフトウェア音源で演奏します。この場合、MIDIの音色データtimidity.tar.gzをダウンロードして /usr/local/lib/ 以下に展開してください。
Windows の場合。
timidity.tar.gzをダウンロードして c:\ 以下に展開してください。 これをしなくても MIDI が鳴ったと思っていたのですが、こうしないと落ちるようです。
Mac OS X の場合。
ONScripter for Mac OS X(かつらさん)のバイナリに添付されている外部プログラムを利用して演奏が可能です。(当方未確認)
Unix系(動作確認は Linux)で外部 MIDI 音源を利用して演奏する場合。
playmidi 等の外部音源を使用できる MIDI player をインストールし、環境変数 MUSIC_CMD を設定してください。(例 MUSIC_CMD=/usr/bin/playmidi)
当方では、シリアル接続で外部音源を繋ぎ、MUSIC_CMD に '/usr/bin/midiplay -q -o /dev/ttyS0' を設定して動作確認をしています。
playmidiは、カーネルで認識される MIDI ポートに対してしか演奏できませんが、midiplayはシリアルに直接出せます。
シリアルポートをMIDIポートにする patchを使えば、playmidi でもシリアル接続音源を使えそうですが、未確認です。

アーカイブ圧縮

昔のZaurus (320x240) や PSP (360x270) などは画面の大きさが小さいた め、あらかじめアーカイブ中の画像ファイルを画面サイズに合わせて小さくし ておくことにより、アーカイブサイズを縮小し、少ない記憶デバイスを有効活 用することができます。なお、SPB 圧縮の画像は、後述の -e オプションを指 定しない場合 BMP 形式として格納されます。

使い方

> sarconv                    変換元画面幅 変換先画面幅 変換元SARファイル名 変換先SARファイル名 
> nsaconv [-e] [-ns2] [-ns3] 変換元画面幅 変換先画面幅 変換元NSAファイル名 変換先NSAファイル名 

変換元画面幅は 640 か 800 のいずれかを指定してください。

変換先画面幅は 176(iPod), 320(QVGA), 360(PSP), 384(PSP), 640(VGA) などが指定できます。

使用例

画面のサイズが 640x480 で拡張子が sar のアーカイブを 320x240 にする 場合

> sarconv 640 320 arc.sar zaurus_dir/arc.sar
...

画面のサイズが 800x600 で拡張子が nsa のアーカイブ(バージョン1) を 320x240 にする場合

> nsaconv [-e] 800 320 arc.nsa zaurus_dir/arc.nsa
> nsaconv [-e] 800 320 arc1.nsa zaurus_dir/arc1.nsa
...

画面のサイズが 800x600 で拡張子が nsa のアーカイブ(バージョン2) を 640x480 にする場合

> nsaconv [-e] -ns2 800 640 arc.nsa zaurus_dir/arc.nsa
> nsaconv [-e] -ns2 800 640 arc1.nsa zaurus_dir/arc1.nsa
...

NSA アーカイブのバージョン1と2と3の区別は手動です。スクリプトで ns2 コマンドが使われていればバージョン2、ns3 コマンドが使われていればバージョン3です。スクリプトが確認できない場合は、まず -ns2 を付けずに試し、うまくいかなかったら -ns2 もしくは -ns3 を付けて試してください。

-e オプションを付けると、wav と bmp ファイルを nbz 圧縮します。これを行うと、NSA アーカイブの圧縮の種類を示すフラグに ONScripter 独自の値を設定します。この独自拡張については、本家が将来アーカイブの仕様を拡張したときにバッティングする可能性がありますが、その時はそれを回避するようにコンバータを修正し、再コンバートすることで解決できます。その場合でも、save file 等には一切影響がありませんので、Zaurus で使用される方はこのオプションを付けてコンバートすることをお勧めします。wav を bzip2 で圧縮するので、wav を多用するゲームではかなりアーカイブが小さくなります。デメリットとしては、bzip2 の復号を行うため若干遅くなりますが、気が付かない程度です。

-j オプションを付けると、ファイル名はそのままで bmp ファイルを jpeg に変換します。ただし、パレットカラーの bmp ファイルは bmp のまま変換されます。

-q オプションで jpeg で圧縮する際の品質(0〜100)を指定することができます。小さい値を指定すると、品質が悪くなりますが、圧縮後のサイズが小さくなります。デフォルトとは75です。

サイズを小さくしたアーカイブを使うときは、onscripter に --disable-rescale オプションを指定してください。
なお、Linux 等でも、-DPDA をつけてコンパイルすることにより、320x240 画 面でゲームを実行することができます。

Windows 上で MP3 の音がぶつぶつとぎれる問題

Windows でコンパイル済の SMPEG のバイナリを持ってくると、MP3 によっては音がぶつぶつとぎれて演奏されます。これは、SMPEG を MSVC でコンパイルする時の最適化の問題で、下記の通りに MSVC の global optimization を一部抑制する指定をし、自分でコンパイルすることで解決できます。

修正するファイル: audio/mpeglayer3.cpp
関数 layer3reorderandantialias の前後に、下のように #pragma 指定を追加 する。

#pragma optimize( "g", off )
void MPEGaudio::layer3reorderandantialias(int ch,int gr,
                                          REAL  in[SBLIMIT][SSLIMIT],
                                          REAL out[SBLIMIT][SSLIMIT]){
  ......
}
#pragma optimize( "g", on )

英語ノベル作成(Obsolete)

これは Chend さん(chendo[at]gmail.com)からの要望に基づく ONScripter 独自の拡張です。これまで、仕様の提案やパッチなど多くの協力をしていただ きました。

コンパイル時に ENABLE_1BYTE_CHAR を定義することで、`(back quote) 以 降行末もしくは別の ` までを、1byte 文字で記述されたテキスト文とみなし て表示するようにします。この間では半角スペースが表示として有効になりま すが、テキスト内の変数表示は無効になり、また色・時間指定も開始位置によっ ては無効になります。テキスト途中で色を変える場合は、/ で行を分けるなど してください。ただし、クリック待ち(@)改ページ待ち(\)直後の強制クリック 文字を無視(_)は有効です。

将来本家で ` に何か機能を割り振った場合には、削除もしくは別の文字に 変更される可能性があります。現状のように ENABLE_1BYTE_CHAR の指定の有 無で使い分けられるようにするかもしれませんが、保証の限りではありません。

また、コンパイル時に ENABLE_1BYTE_CHAR と合わせて FORCE_1BYTE_CHAR を指定すると、全ての表示を半角にすることが可能になります。具体的には、 上記に加えて、右クリックメニューの表示が英語になり、また数字変数の表示 が半角になります。

以下にスクリプト例を書きます。

*define 
clickstr `.?"`, 2 
savename `Save the scene`, `Load the scene`, "Memory "
rmenu `Save to file`,save,`Load from file`,load
game
 
*start
`Hi, this was test.
`Hi, this is test again.
`_"He said so."
`_"She said so."
`Does it work??
br
selgosub `Say "Turn to the right."`, *right, 
`Say "Turn to the left."`, *left ,
"`Do nothing.", *nothing
end 

*right
`You turned to the right.
return

*left
`You turned to the left.
return

*nothing
`You didn't do anything.
return

開発メモ

event_mode

下の表の値は排他的に用いられます。

説明
IDLE_EVENT_MODEクリックで飛ばせない待ちwait
WAIT_BUTTON_MODEButtonLink(画像)を使用した選択待ちbtnwait, select, 右クリックメニュー
WAIT_INPUT_MODEクリックで飛ばせる入力待ちdelay, click, @, \, テキスト文字描画, 画面効果

下の表の値は、上の表の値と組み合わせて使用されます。

説明
WAIT_TIMER_MODE時間を指定した待ち、待ち中にアニメーションを実行画面効果、テキスト文字描画以外のほぼ全ての場合
WAIT_VOICE_MODEボイスの発声終了を待つautomode, btntime2 使用時のみ
WAIT_TEXT_MODEテキスト終端での待ち(右クリックメニューの可否の判定用)@, \, select
WAIT_RCLICK_MODE右クリック待ちlrclick

レイヤ描画順

下の表で、上のレイヤが下のレイヤを隠します。humanz の初期値は 499 です。

文字は、描画時には常に一番上に来ます。

通常windowback 使用
ボタン
カーソル
テキストウィンドウ・文字数値ラベル
数値ラベルバー
バースプライト (humanz から 0)
**モノクロ・ネガ効果**テキストウィンドウ・文字
スプライト2 (255 から 0)スプライト2 (255 から 0)
スプライト (humanz から 0)**モノクロ・ネガ効果**
立ち絵
スプライト (999 から humanz+1)
背景