[Shift]キーを押すとジャンプするを仕組みを作る方法
RPGにジャンプ要素を加えると、プレイヤーに高い自由度を感じてもらうことができます
この記事は【ツクールアドベントカレンダー2023】用に書かれたものです
だから、今回、画像が多い
過去作から「ジャンプ」の導入の一例を紹介します
この仕組みを利用すると、[Shift]キーでなくても、例えば[Ctrl]キーをトリガーにすることも、コモンイベントに記載した任意のイベントを実行することもできます。
サンプルプロジェクト
本プロジェクトの配布はGGG製品利用規約に従って行っております
利用規約 - RPG Maker Official | Gotcha Gotcha Games
プロジェクトおよびプロジェクト内の素材ファイルのご利用はRPGMaker(ツクール)MZの正規ユーザーに限られます
1 コモンイベントにジャンプを仕込む
(1)会話中であるかの判定をします(後述)
これを入れないと、会話中、イベント中でもジャンプできてしまいます
(2)主人公(プレイヤー)の現在地をサーチします
マップX、マップYの座標を任意の変数に代入
(3)主人公(プレイヤー)の向きによって、分岐を行います
A 下を向いているとき
マップY座標を代入した変数に1を加え、主人公が向いている一つ下のマスの
リージョン情報を取得します
これが2、つまり壁であったならその場ジャンプの処理の分岐を作ります
※壁つまり越えられない障害物の設定は後述
その場ジャンプは+0、+0
(それ以外のとき)
壁でない場合、さらに、マップY座標を代入した変数に1を加え、
主人公が向いている二つ下のマスのリージョン情報を取得します
これが壁であったなら、1マス分のジャンプ、
壁ではない場合、2マス分のジャンプを行います
すり抜けON、ジャンプ+0, +2、すり抜けOFF とすることで、
障害物を越えられるジャンプ(下方向)することができます
B 左を向いているとき
マップX座標を代入した変数から1を引き、主人公が向いている一つ左のマスの
リージョン情報を取得します
Aと同様に、壁の判定をし、壁であったらその場のジャンプ処理と
それ以外で分岐
さらにマップ座標Xを代入した変数から1を引き、
主人公が向いている二つ左のマスのリージョン情報を取得
壁の場合、1マス分のジャンプ
それ以外、障害物を越えられるジャンプ(左方向)
C 右を向いているとき
マップX座標を代入した変数に1を加え 以下、同様の処理……(略)
D 上を向いているとき
マップY座標を代入した変数から1を引き 以下、同様の処理……(略)
~~ 画像は省略 ~~
最後に、会話中である場合のジャンプしない処理のラベルジャンプ先を設定します
2 マップに並列実行するイベントを配置
トリガーは並列実行
シフトキーが押されているとき、当該コモンイベントを実行します
イベントを配置する場所はどこでもかまいません
3 壁の設定
壁、越えられない障害物をリージョン2として管理します
このリージョン番号は何番でも構いません
1のジャンプの処理の壁判定の=2、
を該当するリージョン番号へ変更することで可能です
赤丸の部分のように1マスだけのところがあると、まれに、壁抜けするので
注意が必要です
解説文と画像が離れているので
「んまぁ、そう、よくわかんなかったです」
「んにゃぴ……やっぱり、自分……の方が一番いいですよね」
ということで、冒頭のサンプルプロジェクトを用意いたしました。