ぱいギル 2020/10/06 00:17

RPGツクールMZテクニック講座第6回

戦闘でのダメージで立ち絵が変わる表示テクニック

今日は初心者向けに戦闘画面での立ち絵表示と
さらにHP残量に応じて衣服が破けるなどのグラフィック変更の紹介です。
今回の表示の仕方は通常グラフィックとHPが半分以下になった中破の絵、
HPが1/4以下になったとき表示される大破の絵の3種類を表示させます。




RPGツクールMVやVXAceなどで他のツクールでも応用出来るので覚えておこう。
基本的な処理は戦闘開始時とHPが変更されたときの処理の二つです。

戦闘開始時に立ち絵を表示する


まず敵グループのバトルイベントを設定します。
イベントの発生条件はターン0、スパンはバトルです。

条件を0にして戦闘の最初に一度だけ実行されるイベントを作ります。

ちなみにスパンは各内容はバトルがバトル中1 回だけ実行。
ターンが1ターンに 1回だけ実行。次のターンまで実行されない。
モーメントが条件を満たしている間は実行されるです。


では開始時に表示するイベント内容を見てみよう。
説明しやすいように命令の左側に色をつけてあります。
まずは黄色の部分の説明から。

最初に戦闘行動フラグをOFFにしていますが、これの意味は後ほど説明します。
この黄色の部分はキャラクターの現在のHPと判定するためのHP値を取得しています。
条件分岐からは直接キャラクターのHP情報を受け取れないので、いったん変数に格納します。
変数のHP判定値に最大HP÷2を入れることでキャラクターの50%のHP数値を取得。
※70%の数値などが欲しければ10で割ってから7をかけるなどする。
小数点を使えばもっと簡単な式に出来るがRPGツクールは解りやすさと
速度を上げるために小数点は使えなくなっています。

緑の部分がHP50%以上かどうかの判定。
50%以上ならば通常の立ち絵を表示する。
表示には不透明度0にし、画面外からキャラクターが移動表示されるようにしている。
この辺は好みの設定で。
そしてスキップ変数に0を入れる。
このスキップ変数は前と同じ画像ならば処理をしない時のための判定用変数です。

青の部分でHP判定値を2で割ってHPが25%以上50%未満かのチェック
合っているなら中破の立ち絵を表示し、スキップ変数に1を入れる。

赤の部分はHP25%未満の処理
大破の立ち絵を表示してスキップ変数に2を入れる。

戦闘中HP残量に応じて立ち絵を変更


今までのツクールならばスパンをターンごとのチェックでも違和感は少ないですが
RPGツクールMZはタイムプログレス戦闘システムが採用されているので
俊敏性が遅くなったりすると自分のターンが全然こずにダメージを受けても
立ち絵が変更されない状態が長く続いて違和感が出ます。
なのでバトルイベントのスパンをモーメントにして常にHPの状態を
監視するようにします。
バトルイベントの発生条件にキャラクターのHPが何%以下なら実行とかを
指定できる項目がありますが一回だけの実行ならまだしも
HPが常に回復変化するイベントには不向きです。
ではどうするかというとHPが変化したときだけスイッチフラグを立てて
イベントを実行させます。


これでフラグが立ったときだけ実行される条件になりました。


ではHPが変化するのはどういうときか?
それは攻撃や回復スキルを受けたときです。
各スキルにコモンイベントを設定しスイッチフラグを立てます。
使用効果の項目は上から順に実行されるので、
使用効果にHPが変化するようなものを指定しているなら
戦闘行動フラグONのコモンイベントはそれより後ろ、
もしくは最後に設定しておく。


コモンイベントの内容はフラグを立てるだけ。

この戦闘行動フラグのコモンイベントはダメージや回復スキルだけに設定しても
いいですが、設定忘れなども考えて全スキルにコピペ設定しておいてもOKです。
HPの変化が無ければ何も処理しないだけですし、立ち絵以外の他のイベントに
応用したいときにもフラグは利用できます。


では戦闘中表示のイベント内容です。
基本的には開始時の立ち絵表示と同じ。
黄色の部分でHP判定値と現在のHPを取得。

緑の部分がHPが50%以上だった時の処理。
戦闘開始時と違う部分はスキップ変数のチェックを行い
立ち絵が同じなら処理をしない
違うならグラフィック表示をしてスキップ変数に0を入れる。
あとピクチャ表示はすでにキャラクターは登場しているので、
画面外からの表示では無く同じ位置からの表示になっています。

青の部分がHPが25%以上50%未満の処理
処理は上と同じで、HP判定とスキップ変数のチェック。

赤の部分が25%未満の処理
スキップ変数をチェックしてグラフィック表示とスキップ変数に2を設定。

最後に忘れてはいけないのが橙色の部分。
かならず戦闘行動フラグをOFFにします。
そうしないとスパンをモーメントにしているので実行され続けて
無限ループになってしまいます。

これで立ち絵変更のプラグラムは完成ですが忘れずにやっておくことがあります。



先ほど作ったバトルイベントは必ずコモンイベントにしておきましょう。
理由は後から変更する可能性があり、もしもコモンイベントにしなかった場合
全ての敵グループのイベント条件を一つずつ修正する必要があるからです。
ですがコモンイベントにしておけば、コモンイベントを修正するだけで
全ての敵のバトルイベント修正も同時に終わります。

戦闘終了後処理

これは作成中のゲームに合わせて作るも作らないもご自由に。
通常の移動画面と戦闘画面は別々になっているので
戦闘画面で表示されたものは移動画面に戻ると消えます。
たとえば移動画面にピクチャー番号20で立ち絵を表示していたとして
戦闘画面でピクチャー番号20で別の絵を表示しても
戦闘画面が終われば前に移動画面で表示していた立ち絵が表示されます。

今回は1キャラクターのみにしてますが複数にしたいなら
条件判定して各キャラクターごとに処理を作るだけです。
もしも多数のキャラクターを表示させたくて汎用性の高いプラグラムにしたいなら
変数にファイル名番号を扱うなどすればプラグラムも短くて済むけど
管理も大変なので初心者の方は慣れるまでは、まずシンプルなプログラムで
経験を積みましょう😊

ではよいRPGツクールライフを😘

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

記事のタグから探す

月別アーカイブ

記事を検索