今後の更新予定(あくまで予定)

LuaNScripterの連携は簡単なところからはじめようと思っています。

  • NScripter側からLuaの関数を呼べる(defsubのような形でluasub命令を作りました。)
  • LuaからNScripterの命令を呼べる
    • 今のところ、例えばNSExec("bg black,1")というようなコードが実際に動いています。
    • NScripterの内部機能を使っているだけですから描画性能は普通と同じなのですが、Luaを使えば複雑なアルゴリズムが書きやすいはずです。
  • Luaから任意のDLLの任意の(lua_registerで登録できる形式の)関数が呼び出せる
    • この機能を使って、いずれはグラフィック処理全体を高速なものに置き換える予定です。

↑今ここまで出来てます。↓おきたらやります

  • Luaからマウス入力やキーボード入力を得る。
    • Lua部分だけでミニゲームくらいなら作ってしまえます。表示にはNScripterのスプライト機能がそのまま使えます(そのとおりNSExec関数を使って命令を送ればいいだけです)。
    • ボタン機能をまるまる組んでしまうことも可能でしょう。
  • テキスト表示文をLuaで横取りできるようにする
    • たとえば、横取りしてstrspなどを使って表示するようにすれば、テキストウィンドウもスプライトとして扱えますし、外部DLLを用意すれば文字表示全体を置き換えられます。
  • 横取りできる処理を増やしていく。アニメーション/セーブポイント/セーブ・ロード/閉じる/終了
    • セルアニメーションの仕組みでLuaを呼び出せるので、たとえばボタン処理中にスプライトを動かすことも簡単に出来ます。
    • 終了時に独自ウィンドウを出す、なんてことも出来るようになります。
  • 最終的には、何もかも横取りできるようにします。

イメージとしては、NScripterLuaの上で走っている、というのではなく、NScripterLuaが並行して走っていて、互いに通信をして処理をしている、というものになります。相互通信のインターフェースはかなり単純にしてあります。
(いずれ全体をLuaでのっとるまでになったら、これはLuaの上でNScripterを動かしている、という形になるでしょうけど)。
ここでミソなのは、どこまで横取りしてどこまでデフォルトの機能に任せるかは選べるということです。いじりたいところだけLuaでいじればいいのです。LuaからNScripterの命令が呼べますから、使い方も難しくはないと思います。