ハトネコエ Web がくしゅうちょう

プログラミングやサーバー・Web制作、チームマネジメントなど得た技術のまとめ

【Mac】RPGツクールMVの古いプロジェクトのコアスクリプトを最新に

1. 開発期間が長引く場合の罠

RPGツクールMVRPG Maker MV) で作った古いプロジェクトは、
たとえRPGツクールMVのバージョンアップをしていても、
コアスクリプトと呼ばれる、いわばプラグインの根幹となるプラグインが古いままです。

これにより、入手したプラグインがなぜか上手く動作しない……といった現象が発生するようになります。

開発期間が長引いたなどの理由でプロジェクトのコアスクリプトが古いままになっている場合は、
手動で最新版に更新させてあげる必要があります。

2. 準備

前提として、RPGツクールMV本体が最新になっている必要があります。

Steam版の場合は、Steamによって自動的に更新されていると思います。
それ以外の方は、公式サイトの「ダウンロード」ページよりアップデータをダウンロードし更新しましょう。
(「ダウンロード」ページのコンテンツがすごく増えててびっくりした)

それから、必ずバックアップをとっておいてください。

必ずバックアップをとっておいてください。

すでに使っているプラグインとの兼ね合いでゲームが動かなくなる可能性がとてもあります。
バージョンが離れてるほど、コアスクリプトのアップデートは難しくなると思いますので、
その際はアップデートをあきらめざるを得ないかもしれません。

3. コアスクリプトのアップデート方法

コアスクリプトのアップデート方法は、以下のページの最下部に記載されています。

Mac についてコマンドで簡単におこなう方法を記します。

まず、自分のプロジェクトがあるディレクトリに移動してください。
そして以下のコマンドを実行します。
(※私の環境ではRPG Maker MV.app」~/Games/steamapps/common/RPG Maker MV ディレクトリ下にありますが、Steam の設定によっては変わります)

rsync -av ~/Games/steamapps/common/RPG\ Maker\ MV/RPG\ Maker\ MV.app/Contents/MacOS/NewData/js/ ./js/ --exclude "plugins.js" --exclude "plugins/" --dry-run

すると、コピー予定のファイルが表示されます。例えばこんな感じ……↓

building file list ... done
./
main.js
rpg_core.js
rpg_managers.js
rpg_objects.js
rpg_scenes.js
rpg_sprites.js
rpg_windows.js
libs/
libs/fpsmeter.js
libs/lz-string.js
libs/pixi-picture.js
libs/pixi-tilemap.js
libs/pixi.js

sent 2319755 bytes  received 296 bytes  4640102.00 bytes/sec
total size is 2322204  speedup is 1.00

これで問題なさそうだなあ、と思ったら、 --dry-run を抜いた

rsync -av ~/Games/steamapps/common/RPG\ Maker\ MV/RPG\ Maker\ MV.app/Contents/MacOS/NewData/js/ ./js/ --exclude "plugins.js" --exclude "plugins/"

を実行してください。

公式の手順に沿うなら、これで終了です。

4. 個人的におすすめな追加手順

上に加えてやっておくといいことです。

まず、私の場合は index.html が古いために、ゲーム実行時、
makeVideoPlayableInline is not defined」のエラーが起きてしまいました。

f:id:nekonenene:20190609231223p:plain
ReferenceError "makeVideoPlayableInline is not defined"

rsync -av ~/Games/steamapps/common/RPG\ Maker\ MV/RPG\ Maker\ MV.app/Contents/MacOS/NewData/index.html ./

上のコマンドで、 index.html の更新もおこないました。

また、公式の案内では plugins ディレクトリはコピーしないほうがいいと書かれているのですが、
これが古いせいで変な動作が起こると元も子もないので、個人的にはこのディレクトリもコピーするのがおすすめです。

というわけで、 3. で紹介したコマンドは私としては以下のようになりました。

rsync -av ~/Games/steamapps/common/RPG\ Maker\ MV/RPG\ Maker\ MV.app/Contents/MacOS/NewData/js/ ./js/ --exclude "plugins.js"

ちなみに plugins.js は、現在プロジェクトで使っているプラグインの設定が保存されているファイルなので、
こちらは上書きしないように気を付けましょう。

RPGツクール2000 のゲームを「ウィンドウモード」で起動する

ツクールプレイヤーにとってちょいちょい困るのが、
RPGツクール2000製のゲームが全画面モードで起動すること。
全画面に移行するせいか起動がもっさりするし、他のことできませんし、マルチディスプレイ環境でもおかしなことが起きたりして困ります。

作者さんが、ウィンドウモードで起動するように配布してくださると助かるんですけどね。

さて、プレイヤーはどうやったらウィンドウモードで起動できるのか、説明します。

1.ショートカットの作成

下の図のように、ゲームの実行ファイル(たいていは「RPG_RT.exe」)を右クリックしてメニューを出し、
「ショートカットの作成」をクリックしてショートカットを作ってください。
f:id:nekonenene:20150606092041j:plain

2.ウィンドウモードで起動できるようにする

先ほど作ったショートカット「RPG_RT.exe - ショートカット」を右クリックしてメニューを出し、「プロパティ」をクリックしてください。
「リンク先」の部分は例えば「C:\Users\TanakaTarou\Documents\Games\OFF_JP_v1.2.2\OFF_Japanese_Translation_v1.2.2\RPG_RT.exe」となっていると思います。

これの後ろに、「 0 0 Window」と付け加えてください。
つまり、先ほどの例だと「リンク先」が「C:\Users\TanakaTarou\Documents\Games\OFF_JP_v1.2.2\OFF_Japanese_Translation_v1.2.2\RPG_RT.exe 0 0 Window」となります。

f:id:nekonenene:20150606093641j:plain

なお、付け加えるのは実は「 0 0 Window」でなくとも「 wan nyaa Window」など、なんでもいいんですが、
とにかく、2つ以上の引数を持ってきて、その次に「Window」です。*1

3.相対パスで指定する

さて、ここからはちょっと上級編。
ツクールユーザーの年齢層を考えると、付いてこれない人も出るでしょう。

上記のリンク先は絶対パスです。
これで困るのが、例えばゲームフォルダの場所を変える時や、
はたまたDropbox上に置いて、PCのユーザー名が異なる複数のパソコンからアクセスさせたいとき。

どちらの場合も、絶対パスで指定していては不都合が生じます。
せっかく作ったショートカットが動かなくなってしまうのです。

では、相対パスで指定する方法について考えましょう。
ショートカットで指定するパスを相対パスで指定する方法 - Windows - Project Group
こちらの記事を参考にしました。


今回は、作ったショートカットは、ゲームフォルダの1つ上の階層のフォルダに置いたとします。

今回の場合ですと、
RPG_RT.exe - ショートカット」があるフォルダに「OFF_Japanese_Translation_v1.2.2」というフォルダもいっしょにあり、
「OFF_Japanese_Translation_v1.2.2」というフォルダの中にゲーム実行ファイル(RPG_RT.exe)があるという構成になっています。

その場合、ショートカットの「リンク先」をこうします。

%windir%\system32\cmd.exe /c start "%cd%" ".\OFF_Japanese_Translation_v1.2.2\RPG_RT.exe" 0 0 Window

また、「作業フォルダ」の項目は空にします。

f:id:nekonenene:20150606094918j:plain

これで、相対パスでツクールをウィンドウモードで起動できるようになりました。

起動時に一瞬、コマンドプロンプトが立ち上がりますが、まあ、そこは仕方ないですね。

*1:参考にしたページ:http://muspell.raindrop.jp/file/launch.htm