ページ 11

敵が複数の時に使用してくるスキルの設定

Posted: 2024年11月15日(金) 23:56
by muraichi
お世話になっております。
敵が使用するスキルの発動条件について質問させてください。

敵が2体以上の時にはスキルを使用してくる一方、敵が倒されて1体になるとそのスキルを使用してこなくなるというような設定、あるいはそれを可能にするプラグインはありますでしょうか。

もし何か方法がありましたらご教授いただけますと幸いです。

(例)
敵A、敵Bが存在→特殊スキルを使用してくる。
(敵Bが倒されて)敵Aのみ存在→特殊スキルを使用してこない
(敵Aが倒されて)敵Bのみ存在→特殊スキルを使用してこない

Re: 敵が複数の時に使用してくるスキルの設定

Posted: 2024年11月16日(土) 17:20
by ecf5DTTzl6h6lJj02
こんにちは。
muraichi さんが書きました:お世話になっております。
敵が使用するスキルの発動条件について質問させてください。

敵が2体以上の時にはスキルを使用してくる一方、敵が倒されて1体になるとそのスキルを使用してこなくなるというような設定、あるいはそれを可能にするプラグインはありますでしょうか。

もし何か方法がありましたらご教授いただけますと幸いです。

(例)
敵A、敵Bが存在→特殊スキルを使用してくる。
(敵Bが倒されて)敵Aのみ存在→特殊スキルを使用してこない
(敵Aが倒されて)敵Bのみ存在→特殊スキルを使用してこない
砂川赳 様のサイトNew Rpg Project にて、
敵の行動を自在に制御する
https://newrpg.seesaa.net/article/477489136.html (①導入編 へのリンクです)
という記事があります。
これを参考にすれば、希望の動作がさせられるかもしれません。

確認してみてください。

Re: 敵が複数の時に使用してくるスキルの設定

Posted: 2024年11月17日(日) 20:06
by muraichi
ご教示いただきありがとうございます。

提示していただいた記事を読んでみましたが、私の知識不足故か中々難しいですね…。

スイッチを利用すると、自分が求める設定と似たようなことが出来ます。

(例)敵A、敵Bが両方存在している場合、スキル(コモンイベント呼び出し)を使用してくる。
敵Aのスキル発動条件を「敵Bスイッチ」がONとし、敵Bのスキル発動条件を「敵Aスイッチ」がONとします。
敵A、敵Bが所属する敵グループを作成し、バトルイベント(条件:毎ターン、スパン:ターン)を以下のように設定します。
ーーーーーーーーーー
◆敵Aスイッチ:OFF
◆敵Bスイッチ:OFF
◆条件分岐:敵Aが出現している
 ◆敵Aスイッチ:ON
 ◆
 :分岐終了
◆条件分岐:敵Bが出現している
 ◆敵Bスイッチ:ON
 :分岐終了
 ◆
ーーーーーーーーーー
上記のようにバトルイベントを設定すると、敵A、敵Bが両方存在する時にスキルを発動するようになります。

ただし、あるターンで敵Aあるいは敵Bの内一人が倒される場合、そのターンは(一人であるに関わらず)スキルを使用してきます。

つまるところ、上記のバトルイベントを「敵が行動する直前に」発動できるようにしたいです。

もし何か良い方法がありましたらご教授いただけますと幸いです。
何卒よろしくお願いいたします。

Re: 敵が複数の時に使用してくるスキルの設定

Posted: 2024年11月17日(日) 22:48
by ecf5DTTzl6h6lJj02
こんにちは。
muraichi さんが書きました:ご教示いただきありがとうございます。

提示していただいた記事を読んでみましたが、私の知識不足故か中々難しいですね…。

スイッチを利用すると、自分が求める設定と似たようなことが出来ます。

(例)敵A、敵Bが両方存在している場合、スキル(コモンイベント呼び出し)を使用してくる。
敵Aのスキル発動条件を「敵Bスイッチ」がONとし、敵Bのスキル発動条件を「敵Aスイッチ」がONとします。
敵A、敵Bが所属する敵グループを作成し、バトルイベント(条件:毎ターン、スパン:ターン)を以下のように設定します。
ーーーーーーーーーー
◆敵Aスイッチ:OFF
◆敵Bスイッチ:OFF
◆条件分岐:敵Aが出現している
 ◆敵Aスイッチ:ON
 ◆
 :分岐終了
◆条件分岐:敵Bが出現している
 ◆敵Bスイッチ:ON
 :分岐終了
 ◆
ーーーーーーーーーー
上記のようにバトルイベントを設定すると、敵A、敵Bが両方存在する時にスキルを発動するようになります。

ただし、あるターンで敵Aあるいは敵Bの内一人が倒される場合、そのターンは(一人であるに関わらず)スキルを使用してきます。

つまるところ、上記のバトルイベントを「敵が行動する直前に」発動できるようにしたいです。

もし何か良い方法がありましたらご教授いただけますと幸いです。
何卒よろしくお願いいたします。
敵の行動は、行動の直前ではなく、アクターの行動入力前に決定されています。
行動時に、使用スキルの再設定は行われないので、
行動の直前にイベントで、スイッチを変更しても、敵の行動が変更されることはありません。
これを変更するとしたら、
敵の行動時に、コモンイベントを発動させ、
そのイベント内で戦闘行動の強制等で行動を変えることが必要になるかと思います。

提示したサイトの内容は、おおよそ、これについての解説です。
②実践編 の内容を理解できれば、希望されている挙動を作れるのではないかと思っていたのですが、
難しかったでしょうか。

ちょっと長くなりますが、こちらで方法を提示してみます。
(あまり向こうの内容と変わらないので、わかりずらいかもしれませんが、ご容赦ください。)
  1. 敵がスキルを使う直前に、コモンイベントが発動するようにしたいので、
    Yana様の発動前コモン(BeforeCommon.js)
    というプラグインをダウンロードして導入してください
    https://plugin-mz.fungamemake.com/archives/1442 (リンクはツクプラMZの紹介記事)
  2. 敵の行動をスキルを使って、決定するように変更します。

    行動決定用のスキルを作成してください。
    スキルタイプや、範囲、ダメージのタイプは なし に、
    使用可能時は バトル画面 にしておいてください。
    また、スキルのメモ欄に、
    <発動前コモン: 発動させたいコモンイベントの番号>
    を記述しておいてください。

    敵の行動にこのスキルだけを設定しておいてください。
  3. コモンイベントで敵の行動の決定プロセスを作成する。

    先程作成したスキルのメモ欄で、記入したコモンイベントの番号のイベントを作成します。

    提示したサイトの内容では、
    どのエネミーでも一つのコモンイベントで、行動決定できるように、
    エネミーID で処理を分岐するようなことが書かれていますが、
    今回は割愛します。

    敵の生き残り人数が 1 より大きいかで分岐したいので、
    そのための条件分岐を作成します。

    スクリプトで

    コード: 全て選択

    $gameTroop.aliveMembers().length
    と書くと、敵の生き残りの数を取得できます。
    なので、条件分岐にスクリプトで、

    コード: 全て選択

    $gameTroop.aliveMembers().length > 1
    と書けば、敵の生きのりの数が 1 より大きいかどうかで分岐させることができます。

    条件を満たすとき、それ以外の時で、
    それぞれどのスキルを行動強制で使用させるのか、決定してください。
    どのスキルを使用するのかは、乱数などを利用して、決定すればいいかなと思います。
これで、
希望の挙動ができるのではないかと、思っています。

ご確認ください。

Re: 敵が複数の時に使用してくるスキルの設定

Posted: 2024年11月18日(月) 21:48
by muraichi
お世話になっております。
詳しい解説、誠にありがとうございます。

ご助言に従い設定をしてみたところ、標題のような設定を組むことが出来ました!
大変感謝いたします。
もっと勉強する必要がありそうです…。

この度はご教授いただき誠にありがとうございました…!