NScripter2について

旧SGE(Sunday Game Engine)が、バージョンアップ後、NScripter2と改名してアルファ版ながらも公開された。これについて、あくまで私の調査した限りにおいて説明する。

どこで入手できるか。

これを書いている現時点では、
http://naokitakahashi-dev.blogspot.jp/2012/07/blog-post_31.html
から、入手できる。
いずれ将来的には別のバージョンが発表されるだろうが。

NScripter2とは何か

Lua言語によって操作されるグラフィックエンジンである。Lua*1でコントロールされ、主にPCゲーム目的での使用を想定されている。

最小構成

nscr2.exe
NScripter2の本体。起動に際してはこれをダブルクリックなり実行なりする。
lua5.1.dll
Lua部分の本体。単純にLuaソースコードWindowsで動くようにコンパイルした物。
root.lua
スクリプト。開発は基本、このファイルの編集から始まる。

構造

nscr2.exeは、アプリの枠、画像ファイルを読み込んで表示できるレイヤー、音楽再生、動画再生などの機能環境を、Luaからコントロールできる形で提供する。その後、root.luaを自動実行する。
root.luaには、Lua言語を使用してnscr2.exeの用意した環境を操作するスクリプトが期待されている。将来提供されるはずのサンプルは、別のスクリプト言語で書かれたファイルを読み込んでそれを解釈実行するスクリプトが付与される。このスクリプトはBASICに似た、あるいは旧NScripterを操作するのに必要な言語と類似である。

N言語(仮)とは

この、サンプルで提供されるはずの言語のことを、N言語と仮に呼ぶ。
このN言語の仕様は全てroot.lua(とそこから呼び出される別のLuaファイル)において記述定義される。
よって、N言語に対して命令の削除・無効化・機能変更・新規追加などは、このroot.luaの編集で実装される。

新規スクリプト言語の作成

N言語はオフィシャルから提供される言語であるが、言語使用は全てroot.luaの記述次第と言うことで、突き詰めるとまったく別のスクリプト言語を作成することも(労力をいとわなければ)可能である。
これによって、理論的には旧NScripter吉里吉里のtjs、tjsのラッパーであるKAGなども理論的にはクローンすることができる。

私見

シナリオライターの要望を最大限に聞いた、シナリオライターに最適なシナリオ記述言語を提案実装してみたい。

*1:バージョンは5.1。以降、Luaと言った場合は全てこれに準じる。