NScripter

NScripter（エヌスクリプター）は、高橋直樹が開発・公開しているスクリプトエンジンである。動作環境はWindows。Nは作者の「直樹」から取られた。高橋の手によるScripter3 がその前身にあたる。後継エンジンとして、2009年12月よりNScripter2の公開が始まっている。
Windows以外のプラットフォームで動作する、非公式の互換エンジンが公開されている。
概要.
Windows環境上で動作するスクリプトエンジンである。特にアドベンチャーゲームやビジュアルノベルといった、テキスト表現を主体とするゲームの実行を得意とする。文法の平易さと高度な演出能力に加え、広範な利用実績によるエンジンの信頼性や安定性も、高く評価されている。
また、開発コンセプトとして、専属プログラマの存在しない中小零細ソフトハウスにおいても、ゲームシナリオライター自らが演出およびスクリプティングを担当し、ゲーム制作が可能となる事が挙げられている。
商用・同人を問わず、テキストを主体としたゲーム作品のエンジンとして、日本で広く利用されていた。2009年4月公開のVer2.93よりDLLによる機能追加が行われ、スクリプト言語Luaを使用してエンジンのフレームワークの振る舞いをユーザーが自由に改変可能な柔軟性が取り入れられている。
2009年9月公開のVer2.95がWindows 98/Me/2000対応最終版で、2011年12月公開のVer2.96以降はWindows XP以降専用となった。なお、NScripterの全てのバージョンにセキュリティ問題が存在するため、2015年8月に脆弱性に対応したVer3.00が、同年9月にはバグフィックス版の3.03が公開されている。
特徴.
スクリプトはエンジンによりインタプリタで実行される。文法は、BASICに似たもので非常に平易。テキストやCGの表示と演出、音楽の演奏、選択肢の処理など、アドベンチャーゲームの製作に必要な機能は、基本APIとしてエンジンに組み込まれている。このため、それらを呼び出すスクリプトを記述するだけで、高度なアドベンチャーゲームを構築できる。
また、システムカスタマイズと呼ばれる方法で、独自仕様のセーブ・ロード機能の実装や、基本APIには用意されていない複雑な演出の実行、といったエンジンの振る舞いそのものを変更する手段も用意されている。ムービーの再生、スプライト等を利用した演出処理、外部DLLによる機能拡張等も可能。これらの機能を応用し、シミュレーションタイプのゲーム等を製作する事も可能となっている。
反面、Ver2.92以前はオブジェクト指向的な要素は取り入れられておらず、各種タスクの同時並行進行のような処理は苦手としていた。構造化プログラミングについては、defsub命令を用意する事によって、擬似的にこれを実現している。全体として、テキストを主体としたアドベンチャーゲームを、平易に効率良く開発する事に特化した仕様となっている。
Luaによる拡張.
2009年4月にリリースされたVer2.93から、スクリプト言語Luaを使用したフレームワークの拡張が可能となっている。LuaはDLLの形で実装され、NScripter本体から起動される。従来のNScripterスクリプトからLuaの機能を呼び出す事はもちろん、Lua側からNScripterの機能を呼び出す事によって、ゲーム本体の記述をほぼ完全にLuaに移行させる事も出来る。従来のNScripterでは不可能だった複雑な数値演算に加え、ファイル操作、ブロック・スコープ、テーブル・メソッド、モジュール・ライブラリ等、本格的なスクリプト言語の機能を利用した開発が可能となっている。これまでは不可能だった、ゲーム内の各要素の同時並行操作が可能となり、テキスト表示のスプライト化処理が可能になるなど演出と機能が大幅に強化されている。また、システムカスタマイズと呼ばれる方法を用いて実現していた、様々な拡張機能の記述がLuaにより大幅に高度化・簡素化され、ゲーム終了時の挙動の変更などフレームワークの動作その物を改変できる柔軟性が取り入れられている。ただしLuaの使用は強制ではなく、旧来のシステムカスタマイズによる方法も残されている。
利用環境.
PC中級者以上の知識があれば、有志により運営される各種講座サイトを利用する事によって、数時間程度で基本的な使用方法を習得する事ができる。また、ゲームの製作方法を解説した各種の公式書籍も出版されている。ユーザー製作の機能拡張用DLLやサンプルスクリプトも多数公開されており、利用環境は充実している。
反面、エンジンの利用そのものを指南するオフィシャルサイトは存在しない。また、エンジン本体に同梱されているマニュアルも、各種機能拡張の結果、かなり複雑な物となっている。このため利用に当たっては、ユーザー自身が積極的な情報収集に努める必要がある。
公式サイトでは最新版実行ファイルとは別に「NScripterドキュメント / 旧ツール」が配布されている。最新版の同梱マニュアルは、機能拡張に伴い内容が未整備な状態にあるため、新規利用にあたっては別途「NScripterドキュメント / 旧ツール」もダウンロードしておく必要がある。
ライセンス.
ライセンスについては、非商業用途での利用、及び同人流通作品なら無料で使用できる。
2013年に使用条件が簡略化され、ゲーム・その他のコンテストに応募した場合は入賞賞金の有無や入賞作品の流通形態に関わらず、無料で使用できるようになった。また、無料配布であれば法人・個人の区別や配布方法を問わずに無料で使用できる。雑誌の付録にフリーウェア・シェアウェアとして収録する場合についても、無料となった。
ただし、商業流通作品として販売する場合は、使用料を支払う必要がある。同人やフリーソフトの場合でも、使用料を支払えば商用扱いとして「サポート対象」となる。その際、小規模の機能追加（独自の機能拡張や作品個別の暗号化処理など）であれば、使用料の範疇で対応する。
非公式の互換エンジン.
NScripterはWindows上でしか動作しないが、非公式ながら他のプラットフォームでも動作する互換エンジンが開発されている。それらを使用すればNScripterを使用したゲームをWindows以外で動作させることが可能になる。
また、吉里吉里2などの他のスクリプトエンジンを使用したゲームをNScripterで動作するように変換するソフトウェアも存在する。これは、Windowsでしか動作しないスクリプトエンジンから互換エンジンが存在するNScripterへ変換することで、Windows以外のプラットフォームでゲームを動作させることを意図したものが多い。ただし、変換するとオリジナルであった一部の特殊効果等が失われてしまうことがある。変換に使用したソフトウェアがその特殊効果を再現する所まで対応しきれていないためである。
以下に具体的な互換エンジンを挙げる。
ONScripter.
PDA、ゲーム機などを含め、多くのプラットフォームに対応する。オープンソースで開発されている。独自のセーブファイルを出力するが、NScripterと互換性のあるセーブファイルを扱うことも出来る。
CCScripter.
Mac OS Xで動作する互換エンジンとして開発されていたが、2004年に公開されたバージョンを最後に更新・サポートが終了している。代替として、上記のONScripterを使用することができる。
NscPlayer.
Google Chromeで動作する。PNaCL ONScripterが元になっている。