「アフィリエイト広告を利用しています」
RPGツクール MVでバトルイベントでHPのポップアップを表示する方法【スクリプト編】
ツクールMVではコモンイベントでポップアップが表示されない?
今制作中のゲームですが、ツクールMVだとデフォルトの戦闘はプラグインを使えば、アクターのHPの増減や敵キャラのHPの増減などをポップアップできます。
ただ、戦闘のイベント内で、HPの増減を行う場合、該当するプラグインが見つからず困りました。
戦闘はクイズバトルにしているため、HPのポップアップは欲しい機能でしたが、何とかプラグインなしでできないかと検索してみたら…
ありました!
どちらも敵キャラとアクターの攻撃力と防御力によって、HPの増減ができ、かつポップアップもするようになりました。
ということで、今回は備忘録の意味もかねて、スクリプトでアクターや敵キャラのHP増減をポップアップできるスクリプトをご紹介します。
まずは、敵キャラのHP増減のポップアップから
まず、これが敵キャラのHPを140P減らして、それがポップアップできた画面です。
最初は、アクターの攻撃力をそのまま反映させていましたが、敵キャラの防御力も考えると、これだと敵キャラに応じて個別にやらないといけなくなり…
せっかくのデータベースが活かせない!ということで、変数に入れてアクターの攻撃力から敵キャラの防御力を引くとこんな感じのイベントになりました。
まず、変数21番にアクター2の攻撃力を代入します。
やり方としては、こんな感じです。
同じようにして、モンスターの防御力を変数25番に入れました。
後は、与えるダメージとして、変数26番に、こちらの計算式を入れました。
$gameVariables.value(21) - $gameVariables.value(25)
単純にアクターの攻撃力からモンスターの防御力を引いただけです。
ここから、今度はモンスターのHP増減イベントから、先ほどの与えるダメージが入った変数26番を引きます。
次に、与えたダメージをポップアップさせるには、こちらのスクリプトを使わせていただきました。
this.iterateEnemyIndex(-1, function(enemy) {
enemy.startDamagePopup();
}.bind(this));
これだけで、敵キャラに与えたダメージをポップアップできます。
敵キャラが複数体いる場合は、もう少し厄介ですが、私のゲームでは1体ごとにクイズバトルなので、ここで完了です。
スクリプトには詳しくないのであれですが、もし疑問が出てきたら、こちらで聞いてみると答えが返ってくるかもしれません。
次にアクターのHPの増減ポップアップ
こちらも検索して見つけたものですが、ちょっとコードは長くなりますが、ちゃんとバトルイベントでもアクターのHPが減り、緑の文字でポップアップしています。
それでは、イベント内容を見てみますね。
先ほどのモンスターの時と同じように、まず変数22番にモンスターの攻撃力を入れます。
次に、アクターの防御力を変数23番に入れます。
ここでも上記と同じように、被ダメージを変数24番に計算式を代入します。
※この数式逆でした!(2022/3/3 更新)
$gameVariables.value(22) - $gameVariables.value(23)
正しくは、こちらにして、HPを減らすイベントを組んでください。
$gameVariables.value(23) - $gameVariables.value(22)
なので、先ほどのモンスターに与えるダメージと同じようにして、HPを減算し、戦闘不能も許可しておきましょう。
加えて、もしアクターの防御力がモンスターの攻撃力を上回ると、攻撃を受けているのにHPが増加してしまうので、こちらのように条件分岐を入れるといいみたいです。
アクターの防御力がモンスターの攻撃力を上回ったら、0と表示させる感じです。
まだ探せば粗が見つかりそうではありますが、修正点を入れておきますね。
こちらのポップアップスクリプトは、ちょっと長いですが、私のゲームではこちらの方法でしか動きませんでした。
var battler = new Game_Battler();
battler.gainHp(- $gameVariables.value(24));
battler.startDamagePopup();
var damage = new Sprite_Damage();
damage.x = 400; damage.y = 300;
damage.update = function(){
Sprite_Damage.prototype.update.call(this);
if (!this.isPlaying()) this.parent.removeChild(this);
};
damage.setup(battler);
SceneManager._scene._spriteset.addChild(damage);/* Your code... */
gainHpの後のかっこの中には、定数を入れる方法が載っていたのですが、頑張って、無理やり被ダメージの変数24番を入れてみました。
私はプラグインやスクリプトがわからないので、もしかしたら誤った方法かもしれませんので、わからないときにはこちらで質問してみてください。
最後にまだテスト段階ではありますが、今回のHPの増減がポップアップする様子を動画に撮ってみたので、参考にしてみてください。
それでは、RPGツクールMVでアクターと敵キャラのHPをポップアップさせるスクリプトのご紹介でした。
記事が参考になりましたら、嬉しいです!^^
初めまして。
突然のご連絡失礼いたします。
探求の授業でSDGsのクイズゲームをRPGツクールMVで作成しているのですが、バトルの際にクイズを入れる方法が分かりません。そこで、主様の記事を拝見させていただき、私が作りたいゲームに似ていることを知りました。
もしよろしければ、バトル中のクイズの入れ方を教えてもらうことは可能でしょうか。
私が作りたいのは、クイズに正解したら敵に攻撃を加えるというものです。
ご検討くださいますよう、重ねてお願い申し上げます。
坂根様
コメントありがとうございます。
クイズゲームですが、こちらは当方のプラグイン担当の方が作ってくれたプラグインとなるので、オリジナルのプラグインとなります。
もし使い方など一切のサポートがいらないようでしたら、無料でお譲りしますので、コメント欄ではなく、お問合せから直接ご連絡いただけますでしょうか?
その際に、DL先をご紹介させていただきます。
また、こちらのプラグインはテスト版ですので、一部機能していない部分もあります。
プラグインの新規作成が難しいため、一部機能なしのプラグインとなります。
プラグインの簡単な使い方が知りたいという場合は、申し訳ありませんが、有料となります。
どちらにしても、こちらでコメントできない内容ですので、直接メールにてお問合せ願います。
どうぞよろしくお願いいたします。