RPGツクールプラグイン制作過程紹介 第1回
第0回でご紹介した通り、今回から「マップ上でスキルを使用可能にし、使用したスキルに応じてイベントを発動させる」プラグインの実際の制作に入っていきます。
といっても今回はプラグイン制作の下ごしらえですので、具体的なコーディングは行いません。まずはウォーミングアップといきましょう!
構想
まず、そもそもどんなゲームを作りたいのかを考えることから始めます。私はいつも脳内で済ませてしまいますが、本来ならきちんとメモを取るべきなのかもしれません(笑)。今回は以下のような構想とします。
・マップ上でスキルを使用可能にする
・マップ上には様々なイベントがあり、イベントの種類に対応したスキルを使用すると専用のイベントが発生する
これは大きなレベルの概要ですね。もう少し掘り下げて、イベントやスキルの具体例を以下に考えてみます。
・たきぎに《ファイア》を使用すると火がつく
・たき火に《ウォーター》を使用すると火が消える
・水辺に《アイス》を使用すると凍る
・ケガをしている人に《ヒール》を使用するとケガが治る
・電源が入っていない機械に《サンダー》を使用すると電源が入る
当然これは一例ですが、つまりフィールド上のオブジェクトに何らかのアクションをするとそれに応じた反応が返ってくる、というゲームにしたいと思います。市販ゲームにもこのような仕様のものがあると思いますが、このような試みをツクールでやったことがある、もしくはやってみたいという方もいらっしゃるのではないでしょうか。もしやってみたことがおありであれば、これを実装するのがどれほど手間のかかることであるのかをご存知でしょう。具体的にどのような作業なのかは、次回以降ご紹介します。
命名
このシステムに名前を考えます。この時点ではあくまでも仮のもので構わないのですが、この名前をのちにプラグイン名や関数名などに多用することになるので、正式名でも通用する程度にはきちんとした名前をつけるようにしています。
今回は「フィールドアクション(Field Action)」という名前にします。
プロジェクト作成
まずはツクールMZで新規プロジェクトを作成します。私はプラグインごとにプロジェクトを作成するようにしています。今回は「FieldAction」という名前のプロジェクトを作りました。
ところで本シリーズでは、記事執筆時点での最新バージョンであるRPGツクールMZ 1.2.0を使用します。異なるバージョンをお使いの場合内容が当てはまらない可能性もありますが、あらかじめご了承ください。
プロジェクトができたらVisual Studio Code(以下VSC)でそのフォルダを開きます。そしてDebugger for Chromeでデバッグ可能なように設定します。具体的には、.vscodeフォルダおよびその中にlaunch.jsonというファイルを作成します。
詳細な手順は第0回でもご紹介させていただいたこちらの記事をご覧ください。
ちなみにこのファイルはプロジェクトにかかわらず同一で問題ないようなので、私は初めて作った時のものを.vscodeフォルダごとコピーしています。
ファイルが作成できたらF5キーを押して、Chromeがテストプレイのために起動するかどうかを確認します。私の環境では起動直後、タイトル画面の音楽は流れますが画面は真っ暗な状態になります。ブラウザ内のどこかをクリックすると画面が表示されるようになります。その後ツクール上からのテストプレイと全く同様に操作できていれば、正常に動作しています。
プラグインファイルの作成
新規プラグインを作る際、まずはテンプレートとなる「枠」だけを定義したプラグインファイルを作るようにしています。一から記述するのは大変なので、ロンチプラグインをコピー・改変するとラクです。
ロンチプラグインはjs/pluginsフォルダ内に最初から入っています。どれでもいいのでまずはコピーファイルを作成します。一番上にあるAltMenuScreen.jsがちょうど良さそうですね。VSC上でも通常のエクスプローラと同様のファイル操作が行えますので、コピーしたいファイルを選択してからCtrl+C→Ctrl+Vで簡単にコピーファイルを作成できます(もちろんMacの方はCtrlではなくcommand⌘キーですね!)。
作成したコピーファイルの名前を変えましょう。今回は「FieldAction.js」とします。私はMacなのでリネームはEnterキーですが、Windowsの場合おそらくF2キーだと思います。もちろん右クリック→Renameでも大丈夫です。
名前を変えたらこのファイルをVSC上で開きます。
開いたらAltMenuScreen.js特有の内容を全て削除します。アノテーション記述の際に利用するので、上部のコメントは枠だけ残します。以下のようになるはずです。
@target MZは残しておきます。
下部にあるカッコがたくさん並んだ「枠」は、必要な部分まで削除しないように気をつけてください。ところで本シリーズでは、毎回記事の最後にその回で作ったこのプラグインファイルの全文を掲載することにします。どこまで削除していいのかわからなければ、このコードをコピーするということでも大丈夫です。
この「枠」の中に、use strictを挿入します。枠を含めて、以下のようになるはずです。
(() => {
'use strict';
})();
この意味については本記事では触れませんので、公式のプラグイン講座をご覧ください。
ここまでできたら保存します。これでプラグインのテンプレートいっちょあがりです。このテンプレートは一度作ればプラグイン制作のたびに利用できますので、別ファイルとして保存して流用するのも良いでしょう。私はファイル管理が苦手なので、毎回この流れでテンプレを一から作成しています(笑)。
プラグイン設定
ツクールのプラグイン管理を開き、FieldAction.jsを選択します。現時点では以下のように、全ての枠が空欄であるはずです。
これはアノテーションにまだ何も記述していないからです。この設定については今後の回でご紹介します。これらが空欄でも動作には特に問題ありませんので、とりあえずFieldAction.jsを有効にします。
有効化したら保存してテストプレイを起動します。通常通りに動作していれば問題なくプラグインファイルが設定できています。
現時点ではまだ何のコードも書いていませんので、ツクールMZ標準と完全に同一に動作していることこそが正常な状態ということになります。
もしエラーが発生した場合、上記手順のどこかでミスをしているということになりますが、おそらく「枠」の必要な部分まで削除してしまったというケースが大半だと思われます。
これはわざと枠を削除した画像ですが、このような場合VSCでは赤線(〜)が表示されます。これによってミスしていることが一目でわかります。
こうなってしまった場合、落ち着いて上記手順をやり直します。プログラミングにこうしたミスはつきものですから、気にする必要は全くありません!
まとめ
今回はプラグインの構想とプラグインファイルの作成までとします。お疲れ様でした。
あくまでも準備ということで具体的なことは何もしていませんが、どんなプラグイン制作においても必要な作業でしょう。
上述のように作業によっては毎回行う必要はなく、一度作ってしまえばコピーが可能なものもあります。プラグイン制作に慣れてくればすぐに済ませることができるようになるでしょう。
次回は「ツクール標準機能を使用したプラグイン仕様構想」を予定しています。何かございましたらお気軽にコメントください。
それではまた次回お会いしましょう!
今回までの最終コード
//=============================================================================
// RPG Maker MZ -
//=============================================================================
/*:
* @target MZ
* @plugindesc
* @author
*
* @help
*
*
*
*
*/
/*:ja
* @target MZ
* @plugindesc
* @author
*
* @help
*
*
*
*
*/
(() => {
'use strict';
})();
この記事が気に入ったらサポートをしてみませんか?