はじめまして。ネットの片隅でひっそり暮らすへっぽこPGのRaTTiEと申します。
さて、もうすぐ発売(2015/12/06現在)されるRPGツクールMVですが、今作からゲームエンジンは従来のRGSS(Ruby)ではなく、JavaScriptで実装されることになりました。
これで作ったゲームをローカルで動かす場合のバックエンドは、昨今話題のJavaScript環境・Node.jsのパッケージのひとつである、nw.jsで動いてます。
- Node.js
https://nodejs.org - nw.js
http://nwjs.io/
ツクールのインストールフォルダを参照すると、確かに、nwjs-winとかnwjs-macとかいうフォルダがあったり。
っていうことは、nw.jsさえあれば、ツクール本体からではなくコマンドラインからとかでもテストプレイできるのでは…?
という訳で、Node.jsの勉強がてら試してみることにしました。まあ、実際にはほとんどすることなかったりするけど…。
あ、事前にNode.jsはインストールしといてください。
#Node.jsのプロジェクト作成
とりあえず、Node.jsのプロジェクトを作成します。
ここでは「rpgmv-test」という名前のプロジェクトとします。
以下のようなフォルダ構成を想定します。
rpgmv-test
+--www
| +--js
| +--libs
| | :
| +--plugins
| +--main.js
| +--Game.rpgproject
| +--index.html
| : (ここにツクールのプロジェクトファイルを配置)
+--package.json
(2015/12/10修正・追記)
当初、プロジェクトファイルを配置するフォルダはbinとしていましたが、実際にツクールからデプロイした場合、フォルダはwwwになります。
binでも問題ないと思っていたのですが、どうやらwwwにした場合はセーブデータをwww直下ではなく実行パス直下(package.jsonのある場所)へsaveフォルダを作成するようです。
ゲームエンジンにもそういう意図の処理が書かれており、これが想定された正しいパスと判断しましたので、フォルダ構成を訂正します。
フォルダを作成したら、フォルダへ移動してnpm initしましょう。
npm init
:
entry point: (index.js) www/index.html?test
:
概ね適当でいいですが、エントリポイントの指定だけ、「www/index.html?test」とします。ここで指定したファイルが、nw.jsで実行されるファイルとなります。index.htmlの末尾に「?test」を付けることで、テストモードで起動できるようです。
npmの初期化が終わったらbinフォルダを作成し、ツクールのプロジェクトを放り込んでおきます。エントリポイントの設定を適宜入れ替えれば、フォルダ外のプロジェクトを起動することもできます(ただし、相対パスじゃないと怒られる模様)。
#nw.jsのインストール
nw.jsが入ってない場合はnpmからインストールします。
npm install -g nw
上記の例だとグローバルにインストールしてますが、ローカルに入れたい場合は適宜オプションを読み替えてください。
#package.jsonの編集
package-jsonに以下の項目を追加します(js-flags以降)。
{
"name": "rpgmv-test",
"version": "1.0.0",
:
"main": "www/index.html?test",
"js-flags": "--expose-gc",
"window": {
"title": "",
"width": 816,
"height": 624,
"icon": "www/icon/icon.png",
"toolbar":false
}
}
#nw.js起動
package.jsonの編集が終わったら、package.jsonのある階層でnw.jsを実行します。
nw
うまくいけば、ツクールでテストプレイを起動したとき同様、ゲーム画面が開きます。
#え、こんだけ?
まあ、これだけだと正直あまり意味はなかったりします。ただテストプレイするだけならツクールから起動してもあまり変わらないですし。
ただ、もうゲームエンジンをがっつりカスタマイズするとか、そういう用途だとこれができた方が都合がよかったりするケースもあるんではないかなぁと思います。
あと、linuxでもその気になればテストプレイできたり。ライセンス買わない状態でそこら辺ごにょごにょするのは普通にKADOKAWAから怒られそうなんで推奨しませんが。やるなら自己責任で。