スクリプトエンジン
■概要
スクリプトエンジンとはゲームエンジンの一つで、主にアドベンチャーゲームなどで使用されるエンジンです。 実装される機能はゲームの仕様で異なりますが、基本的にプログラムの知識がない人でも ドキュメントやサンプルを見ながら作れれば、しっかりとしたゲームが作れるように作られています。 代表的なスクリプトエンジンでは「吉里吉里」「NScripter」などがあり、 アドベンチャーゲームをメインで開発している会社では、 独自のスクリプトエンジンあるところが多いです。
■機能
スクリプトエンジンに実装されている機能は画像やテキストの表示 サウンドの再生などが基本的な機能となります。 その他、アドベンチャーではセーブ、ロード機能や既読スキップ機能などの 各ジャンルで必須となるような機能や、そのゲーム特有のものなど ゲームに合わせた機能が実装されています。 ●プログラム言語と同等 高機能なスクリプトエンジンになると変数や条件分岐 繰り返し処理や関数などの一般的なプログラム言語と 同等の機能を有しているエンジンもあります。
■開発メリット
●手軽に使用可能 スクリプトエンジンを使用する対象はプログラマーではなく、 主にプランナーです。 なので、プログラムを理解していなくても、 手軽に使用することができるように作られています。 ●開発効率の上昇 プログラマー以外が修正、調整を行えるので スクリプト開発自体にコストがかかったとしても プロジェクト単位で考えると開発効率は上昇します。 また、単純なスクリプトエンジン(命令を順次実行していくものなど)の場合、 コストをかけずとも開発することが可能です。 ●同じジャンルで使いまわせる アドベンチャーなら画像表示や文字スクロール、セーブ/ロードなど 各ジャンルで共通機能が実装されていることが多く 同じジャンルなら再利用することでき、それによって開発期間の短縮が見込めます。
■吉里吉里
フリーウェアである「吉里吉里」のダウンロードから実行までの簡単な説明です。 ※実行はKAGを使用します。 ●ダウンロード 以下のリンクから「吉里吉里」をダウンロードします。 「安定板ダウンロード」項目の最新版をダウンロードしてください。 吉里吉里 ダウンロードページ ファイルはzip形式になっているので解凍(展開)します。 吉里吉里はインストーラーを使用しなくても zipを展開するだけで問題ありません。 各フォルダの中にreadme.txtがあるので目を通してください。 ●KAG KAGとはアドベンチャーゲームを手軽に作成できるよう作られたスクリプトです。 kag3/kag3docにKAGのドキュメントがあり、 こちらに機能や、やり方について全て書かれています。 ・デモの実行 KAGの簡単な説明用のデモスクリプトが用意されているのそちらを実行して どのようなことができるのかを体験してみます。 ①.krkr.eXeの実行 KAG自体は吉里吉里スクリプトなので実行するには 「krkr.eXe」をクリックします。 ②.フォルダの指定 展開したフォルダの中のkag3の中に「syoukai」というフォルダが あるのでそちらを選択し、OKボタンを押します。③.デモ実行 デモが実行されると以下の画面が表示されるので、 「吉里吉里とは」または「KAGとは」をクリックして 中身を確認してください。
・自作プロジェクト実行 次は簡単なスクリプトを作成し、実行します。 ①.プロジェクト作成 新しいゲーム用のスクリプトを作るときはそのゲームのデータを 入れておくためのフォルダを用意し、kag3/templateフォルダの中にある フォルダをすべて新しく作成したフォルダにコピーします。
これらのフォルダ毎に入れるリソースは決まっており、 例えばscenarioフォルダには作成したスクリプトを入れて、 bgimageにはゲーム中に使用する背景を入れます。 ※その他のフォルダの役割はkag3/kag3docにあるドキュメントの 「準備をしよう」項目に記載されています。 ②.configのファイル名変更 コピーしたフォルダのsystemの中に「Config.~new」というファイルがあるので このファイルの名前をConfig.tjsに変更します。 ③.実行 krkr.eXeを実行して、フォルダ選択画面で作成した プロジェクトフォルダを指定してください。 無事、実行が完了したら以下の画面が表示されます。
●シナリオ シナリオは「.ks」拡張子で作成します。 scenarioフォルダには「first.ks」があり、このファイルが「吉里吉里」で実行した際に 一番最初に動作するシナリオファイルと認識してもらって構いません。 今回はこちらのファイルに書かれている命令の簡単な解説を行います。 ※シナリオファイルはテキストエディタ(メモ帳など)で開きます。 first.ks [wait time=200] *start|スタート [cm] こんにちは。 ※2行目の「*start|スタート」は今回は説明しません。 ・タグ 1行目と3行目が「コマンド」と呼ばれる命令になります。 KAGは「タグ」とよばれる特別な機能を実行できる命令があります。 このタグを使用するには命令を[]で囲みます。 [wait time=200]は一定時間待機する命令で、後ろに書かれている数字が 待機時間(1 = 1ミリ秒)で、「time=200」と記述した場合は 200ミリ秒待機をしてから次に命令を実行することになります。 [cm]はメッセージを消去してくれる命令で、画面上にある文字を 消したい場合に使用します。 ・メッセージ 4行目の「こんにちは」のようなタグやその他の特殊文字ではない 文字列はメッセージとして扱われ、命令の順番が回ってきたら 画面に表示されます。 今回は「cm」で画面上のメッセージを消去してから 表示されるようになっています。 試しに「こんにちわ」の次の行に「こんばんわ」と記述すると 以下のように画面になります。 シナリオ [wait time=200] *start|スタート [cm] こんにちは。 こんばんわ。 結果
結果の画像でわかると思いますが、「こんにちわ」と「こんばんわ」の 間に改行がありません。 改行はコマンド[r]を使用して行います。 シナリオ [wait time=200] *start|スタート [cm] こんにちは。[r] こんばんわ。 結果
きちんと「こんにちわ」の後で改行されて「こんばんわ」が表示されました。 その他にクリック待ちができる[l]や、改ページ待ちの「p」などがありますので、 色々と試してみてください。 ●コマンド行 KAGにはタグの[]と同等の効果を与える「@」があります。 この@を使用した命令をコマンド行と呼びます。 例: [wait time=200] @wait time=200 上記の命令は同じ動作をします。 ●コメント 行の開始に「;」を記述するとその行は無視されるようになります。 このように実行から無視され、メモを記述できる機能を 「コメント」と呼んでいます。 コメントは記述方式が異なりますが、一般のプログラム言語でもあります。 例: [wait time=200] *start|スタート [cm] ;こんにちは。[r] こんばんわ。 結果
このようにコメント化された行は無視されて表示されません。
■自作スクリプトエンジン
準備中
③.デモ実行
デモが実行されると以下の画面が表示されるので、
「吉里吉里とは」または「KAGとは」をクリックして
中身を確認してください。
・自作プロジェクト実行
次は簡単なスクリプトを作成し、実行します。
①.プロジェクト作成
新しいゲーム用のスクリプトを作るときはそのゲームのデータを
入れておくためのフォルダを用意し、kag3/templateフォルダの中にある
フォルダをすべて新しく作成したフォルダにコピーします。
これらのフォルダ毎に入れるリソースは決まっており、
例えばscenarioフォルダには作成したスクリプトを入れて、
bgimageにはゲーム中に使用する背景を入れます。
※その他のフォルダの役割はkag3/kag3docにあるドキュメントの
「準備をしよう」項目に記載されています。
②.configのファイル名変更
コピーしたフォルダのsystemの中に「Config.~new」というファイルがあるので
このファイルの名前をConfig.tjsに変更します。
③.実行
krkr.eXeを実行して、フォルダ選択画面で作成した
プロジェクトフォルダを指定してください。
無事、実行が完了したら以下の画面が表示されます。
●シナリオ
シナリオは「.ks」拡張子で作成します。
scenarioフォルダには「first.ks」があり、このファイルが「吉里吉里」で実行した際に
一番最初に動作するシナリオファイルと認識してもらって構いません。
今回はこちらのファイルに書かれている命令の簡単な解説を行います。
※シナリオファイルはテキストエディタ(メモ帳など)で開きます。
first.ks
[wait time=200]
*start|スタート
[cm]
こんにちは。
※2行目の「*start|スタート」は今回は説明しません。
・タグ
1行目と3行目が「コマンド」と呼ばれる命令になります。
KAGは「タグ」とよばれる特別な機能を実行できる命令があります。
このタグを使用するには命令を[]で囲みます。
[wait time=200]は一定時間待機する命令で、後ろに書かれている数字が
待機時間(1 = 1ミリ秒)で、「time=200」と記述した場合は
200ミリ秒待機をしてから次に命令を実行することになります。
[cm]はメッセージを消去してくれる命令で、画面上にある文字を
消したい場合に使用します。
・メッセージ
4行目の「こんにちは」のようなタグやその他の特殊文字ではない
文字列はメッセージとして扱われ、命令の順番が回ってきたら
画面に表示されます。
今回は「cm」で画面上のメッセージを消去してから
表示されるようになっています。
試しに「こんにちわ」の次の行に「こんばんわ」と記述すると
以下のように画面になります。
シナリオ
[wait time=200]
*start|スタート
[cm]
こんにちは。
こんばんわ。
結果
結果の画像でわかると思いますが、「こんにちわ」と「こんばんわ」の
間に改行がありません。
改行はコマンド[r]を使用して行います。
シナリオ
[wait time=200]
*start|スタート
[cm]
こんにちは。[r]
こんばんわ。
結果
きちんと「こんにちわ」の後で改行されて「こんばんわ」が表示されました。
その他にクリック待ちができる[l]や、改ページ待ちの「p」などがありますので、
色々と試してみてください。
●コマンド行
KAGにはタグの[]と同等の効果を与える「@」があります。
この@を使用した命令をコマンド行と呼びます。
例:
[wait time=200]
@wait time=200
上記の命令は同じ動作をします。
●コメント
行の開始に「;」を記述するとその行は無視されるようになります。
このように実行から無視され、メモを記述できる機能を
「コメント」と呼んでいます。
コメントは記述方式が異なりますが、一般のプログラム言語でもあります。
例:
[wait time=200]
*start|スタート
[cm]
;こんにちは。[r]
こんばんわ。
結果
このようにコメント化された行は無視されて表示されません。
