SRPGギアを用いてゲームを作っておりますが、戦闘中HPが0になって戦闘不能になったキャラクターは消滅させないで、「戦意をうしな」って味方は右、敵は左へとすり抜けOnで逃走するようにしたいです。
アイテムまたは復活スキルで復活したときは復活させた人の隣に出現でOKです。
こういう演出を見たことがないのですが可能でしょうか?
HP0になったら逃げる演出
- fubukinomori
- 記事: 19
- 登録日時: 2022年5月20日(金) 19:57
- 連絡する:
Re: HP0になったら逃げる演出
システムを直接変更するにはプラグインをいじる必要があるでしょう。
なんとなく、そういう感じの演出を追加する、なら、イベントコマンドめっちゃ頑張ったら
できるような気がしなくもないです。
本当にできるか試してないけど、案だけおいときますね。
行動終了時のイベントに
キャラが戦闘不能になったら、キャラ画像表示用のイベントを瞬間移動させてきて
消滅してないかのように演出する。
好きな方向に歩かせて非表示にして邪魔にならない所に飛ばすイベントを作る。
配置されているすべてのキャラに対してイベントを作る必要があるため
ランダムな増援システムとは相性が悪いかもしれない。
戦闘不能になったイベントの位置情報が取得可能じゃないと無理かもしれない。
ツクールフォーラムの方に、公式の情報交流スレッドがあるので
そっちで相談すると、何かいい案を出してもらえるかもしれない。
まだ観覧してないなら、過去記事もあさってみるといいかも。
https://forum.tkool.jp/index.php?threads/7214/
なんとなく、そういう感じの演出を追加する、なら、イベントコマンドめっちゃ頑張ったら
できるような気がしなくもないです。
本当にできるか試してないけど、案だけおいときますね。
行動終了時のイベントに
キャラが戦闘不能になったら、キャラ画像表示用のイベントを瞬間移動させてきて
消滅してないかのように演出する。
好きな方向に歩かせて非表示にして邪魔にならない所に飛ばすイベントを作る。
配置されているすべてのキャラに対してイベントを作る必要があるため
ランダムな増援システムとは相性が悪いかもしれない。
戦闘不能になったイベントの位置情報が取得可能じゃないと無理かもしれない。
ツクールフォーラムの方に、公式の情報交流スレッドがあるので
そっちで相談すると、何かいい案を出してもらえるかもしれない。
まだ観覧してないなら、過去記事もあさってみるといいかも。
https://forum.tkool.jp/index.php?threads/7214/
- fubukinomori
- 記事: 19
- 登録日時: 2022年5月20日(金) 19:57
- 連絡する:
Re: HP0になったら逃げる演出
行動終了後のイベントに対象になったイベントの座標を取得できれば可能だと思っておりましたがSRPGギアのサンプルゲームでは蘇生スキルを使うと術者の近くに蘇生してしまいます。死亡判定は行動終了時のイベントが起動する前に終わってしまうらしく、行動終了時にスキルの対象になってHP0になったキャラクターの座標を取得するのはプラグインを変えない限り不可能なようです。
あ、全員不死身ステートを付与すればいいのか(死なない戦闘だし)。
たった今思いついたのでまだ試しておりません。
あ、全員不死身ステートを付与すればいいのか(死なない戦闘だし)。
たった今思いついたのでまだ試しておりません。
- fubukinomori
- 記事: 19
- 登録日時: 2022年5月20日(金) 19:57
- 連絡する:
Re: HP0になったら逃げる演出
スキルの対象になった者の座標はsrpg_core_MZ導入時に設定する変数から取得することができました(行動したもイベントのID及び対象になったイベントのID)。なのでスキルのコモンイベントから取得した座標を使った演出ができるようになりました。これとは別に、愛想をつかした仲間がパーティーを出ていくときのセリフを用意していたのですがテストプレイ中に仲間が死亡するとなぜか発動して繰り返し脱退メッセージが表示され先に進まなくなりました。HPが0になったら逃げる姿を見せる演出はいまだ実現していません。(不死身ステートはつけられてない)
脱退メッセージを表示するコモンイベントは一時的に消してます。
たぶん仲間に入れてなくてイベントにIDを書いて出したアクターが戦闘中死ぬとSRPGパーティーから脱退するのだと思います。今はイベントとキャラクターの性能を見るテストの途中なのでそれが一段落したら死亡時の演出に行きたいと思います。進行が遅くてすみません。
脱退メッセージを表示するコモンイベントは一時的に消してます。
たぶん仲間に入れてなくてイベントにIDを書いて出したアクターが戦闘中死ぬとSRPGパーティーから脱退するのだと思います。今はイベントとキャラクターの性能を見るテストの途中なのでそれが一段落したら死亡時の演出に行きたいと思います。進行が遅くてすみません。
Re: HP0になったら逃げる演出
口出しをするかちょっと悩んだんだけど、まあ参考までに聞き流してくれたらと思います。
>パーティーを出ていくときのセリフを用意していたのですがテストプレイ中に仲間が死亡するとなぜか発動して繰り返し~中略~仲間に入れてなくてイベントにIDを書いて出したアクターが戦闘中死ぬとSRPGパーティーから脱退す
条件分岐が間違ってるだけと思います。
どこが間違っているかはわかりませんが、おそらくどこかに間違いがあります。
>逃げる演出の実装
少し時間があったので、前に提案した方法を試してみたところ
敵や味方の数が多いとたくさんの処理を書かないといけなくなって大変
という以外は、実装できそうかなと思いました。
とりあえず、味方一人と敵1体分の例を置いておきますね。
逃げる歩行グラ表示「演出用」のイベントを一つ作ります。
すり抜けはON、グラフィックがなしで。歩行速度は最速がいいかな。
味方ユニットのイベントIDが指定でない場合は
「戦闘開始時の処理」イベントで、アクターのイベントIDを取得しておきます。
8人出撃したら、8つ変数を使用するわけですね。
◆プラグインコマンド:SRPG_core_MZ, アクターのイベントIDを取得
: :格納変数 = 18
: :アクターID = 1
で、「ユニット行動後の処理」で、ユニットのステートを確認して
戦闘不能だったら逃げるイベントを実行します。
◆注釈:====================
: :プレイヤー側 逃走の処理
: :====================
◆条件分岐:死んだがOFF
◆条件分岐:シドニーが戦闘不能になっている
//アクターID 1のシドニーのイベントIDを格納している変数は18番なので
//変数の操作で、イベントの座標を取得する命令を、スクリプトで書くことで、IDを変数で指定できます。
//スキルのコモンイベントで、座標を取得できているそうなので
//ここでの座標の取得は割愛してもいいかもしれません。
◆スクリプト:$gameVariables.setValue(19,this.character($gameVariables.value(18)).x)
◆スクリプト:$gameVariables.setValue(20,this.character($gameVariables.value(18)).y)
//歩かせるイベントを戦闘不能で消えたキャラの位置に移動させる
◆イベントの位置設定:演出用, ({X},{Y}) (向き: 下)
◆移動ルートの設定:演出用
: :◇画像:Actor3(4)
: :◇透明化OFF
◆文章:なし, なし, ウィンドウ, 下
: :たいさん!
◆移動ルートの設定:演出用 (飛ばす, ウェイト)
: :◇透明化OFF
: :◇すり抜けON
: :◇右に移動 必要なだけ追加
: :◇透明化ON
◆イベントの位置設定:演出用, (0,1) (向き: 下)
◆スイッチの操作:#0020 死んだ = ON
◆
:分岐終了
◆
:分岐終了
◆注釈:====================
: :エネミー側 逃走の処理
: :====================
◆条件分岐:イベントID 15死んだがOFF
//イベントID 15が戦闘不能なら、スイッチ19番「イベントID 15死んだ」をONにする
◆プラグインコマンド:SRPG_core_MZ, ユニットのステートを取得
: :格納スイッチ = 19
: :イベントID = 15
: :ステート = 1
◆条件分岐:イベントID 15死んだがON
◆変数の操作:#0019 X = イベントID 15のマップX
◆変数の操作:#0020 Y = イベントID 15のマップY
◆イベントの位置設定:演出用, ({X},{Y}) (向き: 下)
◆移動ルートの設定:演出用
: :◇画像:Monster(2)
: :◇透明化OFF
◆文章:なし, なし, ウィンドウ, 下
: :たいさん!
◆移動ルートの設定:演出用 (飛ばす, ウェイト)
: :◇透明化OFF
: :◇すり抜けON
: :◇左に移動 必要なだけ追加
: :◇透明化ON
◆イベントの位置設定:演出用, (0,1) (向き: 下)
◆
:分岐終了
◆
:分岐終了
以上です。
こちらのやり方を押し付けるつもりはないですが、参考までに。
これを人数分用意するので大変ですが、とりあえず、一人分でテストしてから
ゲストアクターだったらどうするかとか色々なパターンを一人分の間に試して
概ね問題ないなーと思ったら、人数分作る。
エネミー用と条件分岐の仕方が違うことに気づいたでしょうか?
アクターもイベントIDが固定なら(仲間に入れてなくてイベントにIDを書いて出したアクターとか)
エネミー用の条件分岐の仕方の方がお勧めです。
イベントコマンドをスクリプトで実行すると、変数の値を使えたりしてイベントを短くできるので便利です。
参考:RPGツクールVXAce & MV & MZスクリプトwikiとプラグインさま
https://www.rpgmaker-script-wiki.xyz/index.php
>パーティーを出ていくときのセリフを用意していたのですがテストプレイ中に仲間が死亡するとなぜか発動して繰り返し~中略~仲間に入れてなくてイベントにIDを書いて出したアクターが戦闘中死ぬとSRPGパーティーから脱退す
条件分岐が間違ってるだけと思います。
どこが間違っているかはわかりませんが、おそらくどこかに間違いがあります。
>逃げる演出の実装
少し時間があったので、前に提案した方法を試してみたところ
敵や味方の数が多いとたくさんの処理を書かないといけなくなって大変
という以外は、実装できそうかなと思いました。
とりあえず、味方一人と敵1体分の例を置いておきますね。
逃げる歩行グラ表示「演出用」のイベントを一つ作ります。
すり抜けはON、グラフィックがなしで。歩行速度は最速がいいかな。
味方ユニットのイベントIDが指定でない場合は
「戦闘開始時の処理」イベントで、アクターのイベントIDを取得しておきます。
8人出撃したら、8つ変数を使用するわけですね。
◆プラグインコマンド:SRPG_core_MZ, アクターのイベントIDを取得
: :格納変数 = 18
: :アクターID = 1
で、「ユニット行動後の処理」で、ユニットのステートを確認して
戦闘不能だったら逃げるイベントを実行します。
◆注釈:====================
: :プレイヤー側 逃走の処理
: :====================
◆条件分岐:死んだがOFF
◆条件分岐:シドニーが戦闘不能になっている
//アクターID 1のシドニーのイベントIDを格納している変数は18番なので
//変数の操作で、イベントの座標を取得する命令を、スクリプトで書くことで、IDを変数で指定できます。
//スキルのコモンイベントで、座標を取得できているそうなので
//ここでの座標の取得は割愛してもいいかもしれません。
◆スクリプト:$gameVariables.setValue(19,this.character($gameVariables.value(18)).x)
◆スクリプト:$gameVariables.setValue(20,this.character($gameVariables.value(18)).y)
//歩かせるイベントを戦闘不能で消えたキャラの位置に移動させる
◆イベントの位置設定:演出用, ({X},{Y}) (向き: 下)
◆移動ルートの設定:演出用
: :◇画像:Actor3(4)
: :◇透明化OFF
◆文章:なし, なし, ウィンドウ, 下
: :たいさん!
◆移動ルートの設定:演出用 (飛ばす, ウェイト)
: :◇透明化OFF
: :◇すり抜けON
: :◇右に移動 必要なだけ追加
: :◇透明化ON
◆イベントの位置設定:演出用, (0,1) (向き: 下)
◆スイッチの操作:#0020 死んだ = ON
◆
:分岐終了
◆
:分岐終了
◆注釈:====================
: :エネミー側 逃走の処理
: :====================
◆条件分岐:イベントID 15死んだがOFF
//イベントID 15が戦闘不能なら、スイッチ19番「イベントID 15死んだ」をONにする
◆プラグインコマンド:SRPG_core_MZ, ユニットのステートを取得
: :格納スイッチ = 19
: :イベントID = 15
: :ステート = 1
◆条件分岐:イベントID 15死んだがON
◆変数の操作:#0019 X = イベントID 15のマップX
◆変数の操作:#0020 Y = イベントID 15のマップY
◆イベントの位置設定:演出用, ({X},{Y}) (向き: 下)
◆移動ルートの設定:演出用
: :◇画像:Monster(2)
: :◇透明化OFF
◆文章:なし, なし, ウィンドウ, 下
: :たいさん!
◆移動ルートの設定:演出用 (飛ばす, ウェイト)
: :◇透明化OFF
: :◇すり抜けON
: :◇左に移動 必要なだけ追加
: :◇透明化ON
◆イベントの位置設定:演出用, (0,1) (向き: 下)
◆
:分岐終了
◆
:分岐終了
以上です。
こちらのやり方を押し付けるつもりはないですが、参考までに。
これを人数分用意するので大変ですが、とりあえず、一人分でテストしてから
ゲストアクターだったらどうするかとか色々なパターンを一人分の間に試して
概ね問題ないなーと思ったら、人数分作る。
エネミー用と条件分岐の仕方が違うことに気づいたでしょうか?
アクターもイベントIDが固定なら(仲間に入れてなくてイベントにIDを書いて出したアクターとか)
エネミー用の条件分岐の仕方の方がお勧めです。
イベントコマンドをスクリプトで実行すると、変数の値を使えたりしてイベントを短くできるので便利です。
参考:RPGツクールVXAce & MV & MZスクリプトwikiとプラグインさま
https://www.rpgmaker-script-wiki.xyz/index.php