読者です 読者をやめる 読者になる 読者になる

スタジオ・サニーサイド

札幌を拠点に活動する、ゲームのサウンド&シナリオ制作スタジオです

スクリプト作成エンジン「NScripter」をサンプルつきで紹介します!

シナリオ仕事 ソフトウェア kato

こんにちは!
夏休みの宿題は8月末にがんばるタイプ、加藤です。
ban氏は7月にがんばるタイプだったそうで
そんな小学生の存在は都市伝説だと思っていたので衝撃でした。



前回からスクリプトについてお話しています。
ゲーム開発でスクリプトを書く際、通常はそのプロジェクトのために用意されたものを使用します。
そのためプロジェクトや会社によってスクリプトの仕様は異なります。
といっても、今までに仕事で4社(4つのプロジェクト)のスクリプトを拝見しましたが、
必要に応じてできることに幅こそあれ、基本はよく似ています。

実際に使用したスクリプトを紹介するわけにはいかないので、
今回はフリーのスクリプト作成エンジン「NScripter」で作成した
サンプル(ざっくりしたやつだよ!)を使って紹介していきます。
なおNScripterについて、くわしくはWikipediaこちらのページをごらんください。


背景、キャラクター、文字を表示してゲームのイベントシーンを作成してみます。
必要な画像、ここでは背景とキャラ絵を用意します。


背景はフリー素材をもらってきてサイズ調整しました。


自分で撮って加工しても面白いですね。


キャラ絵は…自分で描きました。こんな絵だけどサイズ間違えて2回も描き直しましたよ。

で、これらを使ってスクリプトを組むことで、
読み進めてプレイするアドベンチャーゲーム(もしくはイベントシーン)を作ることができます。

画面はこちら。背景とキャラクター、それからウィンドウにメッセージが表示されます。


キャラ表示を切り替えることで表情を変えられます。画面ではキャラが頬を染めています。


選択肢を出しています。わかりにくいですが、海と山のどっちが好きか聞かれています。


どうやら海と答えたようです。背景を海に変えています。

サンプルですので最後は冒頭にループしています。
このサンプルのスクリプトファイルはこちらです。

 *define

nsa

effect 2,10,1000

game

;スタート---------------------------------------------
 *start

bg black,2

ld c,":l;chara\chara0.bmp",7,1000

setwindow 28,316,22,5,20,20,0,2,20,1,1,#999999,20,300,619,459

こんにちは! ボク 適当な絵で
ほんと スミマセン!\

背景も 真っ黒ですね…
どこかに 行きますか!\

bg "bg\bg0.bmp",7,1000

ld c,":l;chara\chara0.bmp",7,1000

わあ 街だ!
こうやって 二人で歩いてると
デートみたいですね!\

ld c,":l;chara\chara1.bmp",7,1000

フフ… ボク
頬も 染められるんですよ…\

あなた よく見ると
とっても ステキですね…\

ld c,":l;chara\chara0.bmp",7,1000

なーんて! 冗談です!\

あっ そうそう
分岐も しておきましょう
海と山 どっちが好きですか?\

select "海が好き",*sea,
"山が好き",*mountain

;海が好き---------------------------------------------
 *sea

それじゃ 海へ行きますか!\

bg "bg\bg1.bmp",7,1000

ld c,":l;chara\chara0.bmp",7,1000

こんな感じで 背景やキャラを変えて
イベントシーンを 作れます!\

それじゃ 最初に戻ります さようなら!
見てくれて ありがとうございました!\

最後なんで
ゆっくり フェードアウトします!\

bg black,2,2500

goto *start

;山が好き---------------------------------------------
 *mountain

それじゃ 山へ行きますか!\

bg "bg\bg2.bmp",7,1000

ld c,":l;chara\chara0.bmp",7,1000

こんな感じで 背景やキャラを変えて
イベントシーンを 作れます!\

それじゃ 最初に戻ります さようなら!
見てくれて ありがとうございました!\

最後なんで
ゆっくり フェードアウトします!\

bg black,2,2500

goto *start

end

スクリプトを眺めていると、なんとなくわかってくるのではないかと思いますが、
いくつか説明すると
bg black,2
 この命令は背景を真っ黒に、2というのはワイプの種類を指定しています。
ld c,":l;chara\chara00.bmp",7,1000
 この命令の ldは位置、ファイル名はキャラ画像の指定、7がワイプの種類で、1000というのは時間です。

こんな感じで、コマンドを書いていくとゲームが作れます。
詳しいことは、NScripterの使い方を詳しく教えてくれるサイトがたくさんあるので、
そういうサイトを見て調べたり、難しいようならサンプルをコピーして使わせてもらえば、
すぐに動くものができると思います。

一応、実行ファイルも置いておきます。
このsample0.zipというファイルをクリックでダウンロードして、
解凍後、sample.exeを起動すればプレイできます。
一緒にスクリプトファイル(00.txt)も入ってます。興味があったらごらんください!




このNScripter、何度か仕事で使っています。
といっても実際のゲームを作るわけではなく、サンプル作りに使用していました。
ゲームを作る際、メインの要素はアクションだったりバトルだったりするので
みんなはそちらの作成に忙しく…イベントシーンは後回し…なんてことがあるのですが
そういう場合、NScripterで一人ちまちま仮のイベントシーンを組んで、
「こういうイベントになるんだよー」というサンプルを作るのに使っていました。
実際に動くとイメージも掴めますし、そのまま本番用のスクリプトファイルに変換すれば
書き直さなくていいので早いです。

こんな風に私の場合、NScripter=サンプル作り、にしか使っていないので
フラグやセーブなど小難しいことは一切しないのですが、
もう少し複雑なものを作ろうとすると
NScripterは難しいイメージがあります(※個人の感想です)。
そのため分岐を複雑にしたいなら、同じくフリーソフトYuuki! Novelの方が
フローチャートで作成できるので、視覚的に流れが把握しやすくて良いかと思います。

そんなわけでYuuki! Novelの方もいずれ紹介しようかと思います。
それではまた!