RPGツクールMVのお話です。
準公式プラグインは、サンプルゲームに梱包されているので是非活用してね!
(プロジェクトファイルはGamesフォルダ内のexeファイルを解凍してね。)
今回は、プチ改造講座っていうことで
準公式プラグイン「EventSelector.js」のウインドウを
デフォルトのこういうのから
↓ こういうのへ変更しようと思います。 ↓
後、データベースのシステム設定からは消せない
メインメニューの「オプション」と「ゲーム終了」コマンドを
消したりもしちゃうよー。
勢いで講座と銘打ってるけど
どっちかというと「やってみた」に近いものです。
当方、JavaScriptのJaの字も理解していないのでご注意下さい。
この通りやって何か問題がおきても責任はもちません。
よーと、一応免責しておきます。
後、前回までのブログで説明した部分は割愛します。
今回改造するプラグインは
サンプルゲーム「ニナと鍵守の勇者」に同梱されている
「EventSelector.js」です。(nina →js →pluginsフォルダ)
どういうプラグインかというと、簡潔に言うと「アイテム選択」の亜種です。
アイテムではなくコモンイベントを使いますよーというだけです。
ただ、「アイテム選択」とちがってメッセージと同時に表示する事はできません。
詳しくは、プラグインのヘルプを見てね。
テレポートを作るとかだと、ひょっとしたら「アイテム選択」を使うより
やりやすいかもしれません。
いやいや、オレは「アイテム選択」のウインドウを変更してぇんだぜ
という方は、サンプルゲーム「エミールの小さな冒険」に入ってる
「ChangeSelectItemWindow.js」をどうぞ。
今回は、面倒臭いのでパラメータは使いません。
直接ガシガシ変更しちゃいます。
パラメータを使って変更したいんだぜという方も
「ChangeSelectItemWindow.js」を参考にするといいと思います。
とりあえず、「EventSelector.js」を開きウインドウの設定をしている部分を探します。
幅「Width」とか、高さ「Height」という単語を探すといいです。
どうやら137行目あたりの
var width = Graphics.boxWidth;
var height = this.fittingHeight(4);
という部分がソレのようです。
これを直接改変するのですが、元の命令文がわからなくなると困るので
次の行へコピペして挿入した後、元の命令文は「//」でコメントアウトして残しておきます。
とりあえず、高さ(var height)を画面と同じ大きさにあわせてみます。
Graphics.boxWidth; が画面の幅を取得しているようなので
Graphics.boxHeight; に変更すれば高さを取得するはず。
結果、なんとウインドウが全画面表示になりました(当たり前)
じゃあ、幅(var width)を縮めるには
this.fittingHeight(4); を this.fittingWidth(4); に変更すればいいのかにゃ?
結果、エラーが出て動きませんでした。
他の方法を考えることにします。
とにかく、横幅を小さくしたいので
とりあえず 3 で割ってみることにします。
Graphics.boxWidth / 3; と、入力。
(半角スペースは、入れても入れなくても動いてるけど、入れた方が見やすい?)
やったあ! 幅が小さくなったよー!
だけど・・・選択肢は一列に並んで欲しいのに三列あるよ、とほほ・・・
何列表示するかを指定しているところを探します。
よくわからないけど、すぐ下の
return 3;
というのがなんとなしに怪しい気がするので、3を1に変更してみます。
結果、無事1列に表示できました!
山勘大当たりー!
これでまあ・・・おしまいなんですけれど
ウインドウの大きさだけじゃなく
位置も移動したいよって場合もあるかもしませんね。
というわけで、位置を設定している命令文・・・は
どうやら大きさを指定する命令のすぐ下にあるようです。
Window_Selectable.prototype.initialize.call(this, x, y, width, height);
xとyがウインドウの左端の座標のようです。
数字に変更してもいいし、x+10とかにしても良さそうです。
ちなみに、幅を3分の1に指定している場合であれば
xもWidthにすれば真ん中に表示されますね。
ついでといってはアレだけれど
ウィンドウを透明にできたら、汎用しやすくなるんじゃ?
ということで、ウインドウを透明にする方法を探します。
ウインドウを透明にするプラグインがあった気が・・・ということで
公式プラグインの「TitleCommandPosition.js」を開きます。
これは、タイトルのメニューウインドウをいじれるプラグインです。
このプラグインでは、パラメータで背景を選択できるので
まず、パラメータの設定のところを見ます。
(パラメータの設定については、前回のブログ記事を参照のこと)
「background」というのが背景を指定する変数のようです。
この変数が使われている命令文を探します。
this.setBackgroundType(background);
という命令が、ソレのようです。
コピーして「 this.」で始まる命令文の辺りに挿入します。
(ウインドウ位置を指定している命令文より下に書かないとエラー)
結果、エラーで動きません。
そうです、このプラグインでは「background」という変数を定義していないので
そんな変数ねえよ!っていうわけです。
なので、前回のブログ記事よろしく
パラメータを記述してやれば、動くはずですが
面倒なので、「background」の部分を直接数値で入力します。
透明にしたい場合は 2 に入れ替えればいいはず。
this.setBackgroundType(2);
はい、透明になりました。
パチパチパチ・・・
以上で
準公式プラグイン「EventSelector.js」のウインドウの変更は終了です。
<2017/04/21追記>
リストの並び順は新しいものが下にきますがこれを
新しく追加されたものは一番上に並ぶように変更したい場合は
こちらを参考にされると良いと思います。
続きまして
データベースのシステム設定からは消せない
メインメニューの「オプション」と「ゲーム終了」コマンドを消そう!
を、はじめたいと思います。
さて、どこからはじめるかですが・・・
とりあえず、RPGツクールVXAceのときの事を思い出してみます。
「Window_MenuCommand」というクラス(?)で設定されていたようです。
なのでとりあえず、「js」フォルダにある「rpg_windows.js」を開いてみます。
続いて、「MenuCommand」という単語で検索をかけます。
たくさんヒットしますが
コマンドリストを作成している部分を探します。
そして・・・
this.addOptionsCommand();
と
this.addGameEndCommand();
を「//」でコメントアウトすれば、オプションとゲーム終了が
メニューに表示されなくなりました。
おしまい。
なお、一塊の命令文・・・
つまり段落から段落までコピーして、適当な名前でプラグインとして保存し
RPGツクールMVのプラグイン設定画面でONにすれば
元のプログラムを変更しなくて済むので安全かもしれません。
<01/12追記>
ユーザー登録特典の「YEP_MainMenuManager.js」というプラグインでも消せるようです。
なお、このプラグインを使えば、増やすことも出来るそうです。
ゲームとRPGツクールの館さんの12月23日の記事に、設定例があるので参考にされるといいと思います。