事前のお知らせ

攻略本レベル1 入門から初級

トゲ床のトラップ:YADOT参考MVバージョン

この記事は、記事内容の趣旨・引用についてYADO様に許可を頂いて書いたものです。

先日書いた「棘が出入りするダメージ床の作り方」と、YADOTに同趣旨の記事があります。

トゲ床のトラップ
yado.tk/2k/12_en/037_yuka_trap/

RPGツクール2000にはスクリプトがないため、全てのイベントをイベントコマンドで作成する必要があります。
これはRPGツクールMVを使いこなす為にも意義があると考え、同様に設定できるか挑戦しました。

2000にはあるが、MVにはない機能

今回、影響が大きいのは「イベントの呼び出し」です。
これを代用するために、下記のプラグインを入れプラグインコマンドを使用しました。

テンプレートイベント(トリアコンタン様作)
raw.githubusercontent.com/triacontane/RPGMakerMV/master/TemplateEvent.js
プラグインコマンド
TE_CALL_MAP_EVENT \v[5] 1
使用例(変数「5」の値のイベントの1ページ目を呼び出す)

「キャラクターのフラッシュ」もMVには無いため「アニメーションの表示」で代用しました。

2000にはないが、MVにはある機能

今回使用するものにはリージョンがあります。

サンプルプロジェクト

下記作業を終えている最小限のデータを配布します。
新規プロジェクトを作成し、上書きすることで確認ができます。

まとめてZIPダウンロード(16KB)

作業開始

スイッチ・変数の一覧

  • スイッチ
    • 番号:名前 使用内容
    • 0001 : トラップ確認 足元のイベントがトゲであるかどうかを確認する時に使用。
    • 0002 : トラップ実行 足元のイベントがトゲである時にON。
  • 変数
    • 番号 : 名前 : 使用内容
    • 0001 : トラップ時間 : トゲの上下移動の時間を60分の1秒単位で設定。
    • 0002 : 無敵時間 : 無敵時間を60分の1秒単位で設定。マイナス値の場合は無敵。
    • 0003 : X座標 : プレイヤーのX座標を設定。
    • 0004 : Y座標 : プレイヤー のY座標を設定。
    • 0005 : イベントID:イベントIDを取得。
    • 0006 : 1ページ目:イベントを呼び出す時に使用。
    • 0007 : リージョンID:MVでリージョンを取得。(0005の代替)

※先にスイッチや変数の名前を設定しておくと、この後のイベント設定が楽になると思います。

マップイベント「床チェック」

変数の操作:#0001..0002 += 1
条件分岐:トラップ時間 ≥ 120
変数の操作:#0001 トラップ時間 = 0

分岐終了
条件分岐:トラップ時間 < 60
イベント処理の中断

分岐終了
変数の操作:#0003 X座標 = プレイヤーのマップX
変数の操作:#0004 Y座標 = プレイヤーのマップY
指定位置の情報取得:イベントID, イベントID, ({X座標},{Y座標})
条件分岐:イベントID = 0
イベント処理の中断

分岐終了
条件分岐:無敵時間 < 0
イベント処理の中断

分岐終了
変数の操作:#0006 1ページ目 = 0
スイッチの操作:#0002 トラップ実行 = OFF
スイッチの操作:#0001 トラップ確認 = ON
注釈:イベントの呼び出し
プラグインコマンド:TE_CALL_MAP_EVENT \v[5] 1
スイッチの操作:#0001 トラップ確認 = OFF
条件分岐:トラップ実行がON
変数の操作:#0002 無敵時間 = -30
SEの演奏:Attack3 (90, 100, 0)
HPの増減:パーティ全体, - 1
アニメーションの表示:プレイヤー, 打撃/物理

分岐終了

マップイベント「トゲの床」

上記は動作を忠実に再現するためにプラグインを導入しました。
しかし、この手法はこのプラグインの本来の使用方法と異なるので、応用が効きません。
ここから、プラグインなしで、同様の動作をする変更をします。

プラグインなしに変更を試みる

今回は呼び出しているイベントの内容が同じで、シンプルなものだったので、呼び出さずに直接実行してみましたが、棘が出ないイベントの上でもダメージを受ける動作になってしまいます。
取得情報をイベントIDからリージョンに変更します。
そして、トラップ実行がONの動作に条件分岐を追加します。

マップイベント「床チェック」

変数の操作:#0001..0002 += 1
条件分岐:トラップ時間 ≥ 120
変数の操作:#0001 トラップ時間 = 0

分岐終了
条件分岐:トラップ時間 < 60
イベント処理の中断

分岐終了
変数の操作:#0003 X座標 = プレイヤーのマップX
変数の操作:#0004 Y座標 = プレイヤーのマップY
指定位置の情報取得:リージョンID, リージョンID, ({X座標},{Y座標})
条件分岐:リージョンID ≠ 1
イベント処理の中断

分岐終了
条件分岐:無敵時間 < 0
イベント処理の中断

分岐終了
変数の操作:#0006 1ページ目 = 0
スイッチの操作:#0002 トラップ実行 = OFF
スイッチの操作:#0001 トラップ確認 = ON
注釈:イベントの呼び出し
スイッチの操作:#0002 トラップ実行 = ON
スイッチの操作:#0001 トラップ確認 = OFF
条件分岐:トラップ実行がON
変数の操作:#0002 無敵時間 = -30
SEの演奏:Attack3 (90, 100, 0)
HPの増減:パーティ全体, - 1
アニメーションの表示:プレイヤー, 打撃/物理

分岐終了

マップイベント「トゲの床MV」

最後に、棘が出入りするマップイベントの上にリージョン1を上書きします。

このようにRPGツクール2000のイベントコマンドを使い尽くした情報は、MVでも有益です。
安易にプラグインやスクリプトに頼らずに、イベントコマンドで作成していく方法をじっくり考えると、プログラミング的思考が身につき、いずれスクリプト等に触れる時に役に立つと思います。

今後も、YADOTさんの記事から参考になるものをご紹介していく予定です。

スポンサードリンク

スポンサードリンク

-攻略本レベル1 入門から初級
-

Copyright© RPGツクールMZ・MV初心者的備忘録 - FGMG (Fun Game Make Group) , 2024 All Rights Reserved.