忍者ブログ
windowsやブラウザ のゲーム作ったりとか。
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);

xyがウインドウの左端の座標のようです。
数字に変更してもいいし、x+10とかにしても良さそうです。
ちなみに、幅を3分の1に指定している場合であれば
xWidthにすれば真ん中に表示されますね。

ついでといってはアレだけれど
ウィンドウを透明にできたら、汎用しやすくなるんじゃ?
ということで、ウインドウを透明にする方法を探します。

ウインドウを透明にするプラグインがあった気が・・・ということで
公式プラグインの「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日の記事に、設定例があるので参考にされるといいと思います。



 


最後に、拍手ボタンを押して下さった皆様
ツイッターで記事を拡散してくださった皆様
ありがとうございます、とても嬉しいです。

<拍手返信>

すでにあるプラグインの改造なので、1から作る場合よりもわかりやすいと思います! これはすばらしい!

ありがとうございます!
これからも頑張ります!

拍手[5回]

PR
この記事にコメントする
name
title
color
mail
URL
comment
pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret (チェックを入れると管理人だけに表示できます)
広告枠
アクセス解析

ATOM  
ATOM 
RSS  
RSS 


ソフトウェア制作講座





Copyright ©   YUWAKA'S SOFT   All Rights Reserved
Design by MMIT / TemplateB3  Powered by NINJA TOOLS
忍者ブログ [PR]