神無月サスケ
ユーザー
プラグインを作る人にとって、避けて通れないのが、MVのコアスクリプトの解析です。
このスレッドでは、主に、公式のコアスクリプトを読んでいて、分かりにくいところなどを
質問、相談し合うスレッドにしたいと思います。
(※注意:現在では、アツマールのコアスクリプトなども出ていますが、筆者はそちらには明るくないことを
あらかじめお断りしておきます。分かる方のご回答をお待ちください)
なお、相談するコアスクリプトのバージョンは、特に必要な場合(例:古いプラグインの改造に必要なケースなど)以外は、
最新版('17/05/05 では、 1.4.0)を前提として話しましょう。
■おまけ1:コアスクリプト解読、はじめの一歩
MV初心者講座のプラグイン編に加筆修正しました。(赤字が加筆部分)
rpg_core.js
画像や入力など、システムの土台となる部分を記述したファイルです。車で言えばエンジンの部分にあたるため、この部分は普通プラグインで書き換えません。書き換えるのは上級者になるでしょう。 解析は最後が無難
rpg_managers.js
ImageManager や、BattleManager など、マネージャ、つまり様々な要素を管理するためのモジュールを集めたファイルです。後述のファイルで定義されたクラスから頻繁に呼び出されます。
このため、下記のファイルから先に解読して、~Managerが出てきた時点で読むことをオススメ
rpg_objects.js
アクターや敵キャラ、アイテムなど、ゲーム内のデータとその処理を記したクラスを集めたファイルです。ここで定義されるクラス名は、全て「Game_」 で始まります。 このファイルか、次のファイルを最初に読むのをオススメ
rpg_scenes.js
シーンを扱うクラスを集めたファイルです。マップシーン(Scene_Map)やメニューシーン(Scene_Menu)など、ゲームのシチュエーションごとにシーンは細かく分けられています。それぞれのクラスは、ベースとなるシーン(Scene_Base)をオーバーライドし、バトルシーン(Scene_Battle)では rpg_manager.js の BattleManagerを多く参照するなど、緻密で理解しやすい構造になっています。 是非、rpg_managers.jsのSceneManager と一緒にお読みください
rpg_sprites.js
ゲーム画面の表示を司るファイルです。ここまでのファイルの記述では、ゲームの処理は記述していても、画面に関する記述はしていません。このファイルと、次の rpg_windows.js に表示関連の処理をまとめることで、「内部処理」と「見た目の処理」を分離しているのです。名前が「Sprite_」で始まるクラスは、イベントやキャラなど、各要素の画像をスプライトとして表示し、「Spriteset_」で始まるクラスは、複数のスプライトをまとめて画面を構成しています。
Game_xxxx と Sprite_xxxx が1対1対応していることに気づけば、半分は理解できたも同然です
rpg_windows.js
画面内に表示される数多くのウィンドウを一括して定義したファイルです。全てのクラス名が「Window_」で始まります。 全てのウインドウに共通の処理は、Window_Base で、選択肢のあるウィンドウの共通処理は Window_Selectable でやっているため、このふたつを中心に理解すると早いです
■おまけ2:MVスクリプト習得の裏技:VX Aceから勉強する
実は、MVのコアスクリプトは、ツクールVXAceのRGSS3、つまりRubyで書かれたスクリプトを、
そのまま、JavaScriptにした上で(一部、RubyとJavaScriptの言語仕様の違いから、構造を書きかえている部分あり)、
新機能を追加したものです。
そして、RGSS3には、丁寧な日本語コメントがついている上、ヘルプに「スクリプト入門」があります。
このため、MVのコアスクリプトの解析のために、わざわざVX Aceの該当部分を見る人が、結構いると聞きます。
これもひとつの勉強方法かもしれないと思い、紹介しました。
ご存知の通り、VX Aceは、しょっちゅうセールやってますので、これ目当てに買うのも悪くないかも……?
このスレッドでは、主に、公式のコアスクリプトを読んでいて、分かりにくいところなどを
質問、相談し合うスレッドにしたいと思います。
(※注意:現在では、アツマールのコアスクリプトなども出ていますが、筆者はそちらには明るくないことを
あらかじめお断りしておきます。分かる方のご回答をお待ちください)
なお、相談するコアスクリプトのバージョンは、特に必要な場合(例:古いプラグインの改造に必要なケースなど)以外は、
最新版('17/05/05 では、 1.4.0)を前提として話しましょう。
■おまけ1:コアスクリプト解読、はじめの一歩
MV初心者講座のプラグイン編に加筆修正しました。(赤字が加筆部分)
rpg_core.js
画像や入力など、システムの土台となる部分を記述したファイルです。車で言えばエンジンの部分にあたるため、この部分は普通プラグインで書き換えません。書き換えるのは上級者になるでしょう。 解析は最後が無難
rpg_managers.js
ImageManager や、BattleManager など、マネージャ、つまり様々な要素を管理するためのモジュールを集めたファイルです。後述のファイルで定義されたクラスから頻繁に呼び出されます。
このため、下記のファイルから先に解読して、~Managerが出てきた時点で読むことをオススメ
rpg_objects.js
アクターや敵キャラ、アイテムなど、ゲーム内のデータとその処理を記したクラスを集めたファイルです。ここで定義されるクラス名は、全て「Game_」 で始まります。 このファイルか、次のファイルを最初に読むのをオススメ
rpg_scenes.js
シーンを扱うクラスを集めたファイルです。マップシーン(Scene_Map)やメニューシーン(Scene_Menu)など、ゲームのシチュエーションごとにシーンは細かく分けられています。それぞれのクラスは、ベースとなるシーン(Scene_Base)をオーバーライドし、バトルシーン(Scene_Battle)では rpg_manager.js の BattleManagerを多く参照するなど、緻密で理解しやすい構造になっています。 是非、rpg_managers.jsのSceneManager と一緒にお読みください
rpg_sprites.js
ゲーム画面の表示を司るファイルです。ここまでのファイルの記述では、ゲームの処理は記述していても、画面に関する記述はしていません。このファイルと、次の rpg_windows.js に表示関連の処理をまとめることで、「内部処理」と「見た目の処理」を分離しているのです。名前が「Sprite_」で始まるクラスは、イベントやキャラなど、各要素の画像をスプライトとして表示し、「Spriteset_」で始まるクラスは、複数のスプライトをまとめて画面を構成しています。
Game_xxxx と Sprite_xxxx が1対1対応していることに気づけば、半分は理解できたも同然です
rpg_windows.js
画面内に表示される数多くのウィンドウを一括して定義したファイルです。全てのクラス名が「Window_」で始まります。 全てのウインドウに共通の処理は、Window_Base で、選択肢のあるウィンドウの共通処理は Window_Selectable でやっているため、このふたつを中心に理解すると早いです
■おまけ2:MVスクリプト習得の裏技:VX Aceから勉強する
実は、MVのコアスクリプトは、ツクールVXAceのRGSS3、つまりRubyで書かれたスクリプトを、
そのまま、JavaScriptにした上で(一部、RubyとJavaScriptの言語仕様の違いから、構造を書きかえている部分あり)、
新機能を追加したものです。
そして、RGSS3には、丁寧な日本語コメントがついている上、ヘルプに「スクリプト入門」があります。
このため、MVのコアスクリプトの解析のために、わざわざVX Aceの該当部分を見る人が、結構いると聞きます。
これもひとつの勉強方法かもしれないと思い、紹介しました。
ご存知の通り、VX Aceは、しょっちゅうセールやってますので、これ目当てに買うのも悪くないかも……?