Re: 現在制作中の戦闘システムについて
Posted: 2024年12月23日(月) 16:31
これ、今、消費MPやTPを無視して発動されているのでしょうか。
スキル発動条件をチェックし、MPやTPなども消費されます。
ステートでスキルやスキルタイプが封印されていた場合も発動しません。
通常の戦闘コマンドで、スキルを選択した時と同じ動作です。
あとスキルを強制や追加発動させるタイプは、
1.通常攻撃で最後の敵を倒す
2.敵は全滅で、戦闘勝利状態になった
3.しかし追加スキルを発動させようとする
4.敵はいないのでエラーになる
※味方が全滅のパターンも場合もあり
というたまたま発生する条件があります。
だからこういう系統のプラグインは難しく、テストプレイも確率論的になってきます。
通常攻撃やスキル使用時にもTPは上昇するので、
1.通常攻撃発動前
2.通常攻撃後、TP上昇
3.派生スキル1準備
4.派生スキル1発動
5.派生スキル1発動後、TP上昇
6.派生スキル2準備
7.派生スキル2発動 TP消費
8.派生スキル2発動後、TP上昇
2回行動のアクター
9.2回目の行動 通常攻撃発動前
10.通常攻撃後、TP上昇
11.派生スキル1準備
12.派生スキル1発動
13.派生スキル1発動後、TP上昇
14.派生スキル2準備
15.派生スキル2発動 中止
みたいな流れになります。
さらに敵が生存しているか、戦闘不能ならスキル中止。別の対象を探す。という仕組みもあります。
5.派生スキル1発動後、TP上昇
の時にTPが100になりフィニッシュの条件を満たした。
となれば、
2.通常攻撃後、TP上昇
のタイミングでは、TP100未満で派生対象外。
そうすると、1か2のタイミングで、フィニッシュのスキル発動準備はするけど、5のタイミングでTPチェックしてスキルを除外するみたいな処理になります。
現在は、
1.通常攻撃発動前
のタイミングで、
3.派生スキル1準備
6.派生スキル2準備
を行い
※MPやTP、封印などの発動満たす&MPやTPの消費した上で
4.派生スキル1発動
5.派生スキル1発動後、TP上昇
※MPやTP、封印などの発動満たす&MPやTPの消費した上で
6.派生スキル2発動 TP消費
7.派生スキル2発動後、TP上昇
6.2回目の行動 通常攻撃発動前
のタイミングで、
11.派生スキル1準備
12.派生スキル2準備
を行う
流れにしています。
こうしないと、回数もカウントして条件に組み込む必要があります。
まず、こういう処理の流れで考えられるようになって、さらにコアスクリプトの戦闘の処理を知り、それからプラグインの動作がわかり、ようやく変更出来るようになります。
今回は、これ全部、戦闘の処理の流れを理解する必要があります。
rmmz_managers.js
rmmz_objects.js
rmmz_scenes.js
rmmz_windows.js
新たにメモを読み取ったり、条件を追加したりするならば、
5.派生スキル1発動後、TP上昇
の後処理の段階で、
6.派生スキル2発動
を発動させないようにしなければなりません。
新たにプラグインを作り直すくらいの規模になります。
仮にプラグインを編集して、スクリプトを書ける事が出来たとしても、
5.派生スキル1発動後、TP上昇
でTP100になりフィニッシュが発動するか。を最低限必要な組み合わせで試す、
というテストプレイまで含まれ、条件や想定範囲がシビアです。
TP100以外の条件も追加したいとか、TP消費する装備が2つで、派生スキルが2つあった場合も対応が必要です。
そこにスクリプトやプラグインを編集したとして、JavaScriptのコードが間違えているのか、
TP判定のタイミングが間違っているのか、それすらも大変です。
他のプラグインとの競合や予期せぬ動作もあります。
まずこれをテストプレイ出来るだけの条件を、考えたり書き出したりするだけで大変なので。
新たに条件判定が出来るようプラグインを作り直して、
そこに条件を編集して書く感じになります。
その条件も、当初のコモンイベントのスクリプトのように、複雑になると思います。
TPの条件をつけることと、TPを消費させる処理は別です。
スキル発動条件をチェックし、MPやTPなども消費されます。
ステートでスキルやスキルタイプが封印されていた場合も発動しません。
通常の戦闘コマンドで、スキルを選択した時と同じ動作です。
あとスキルを強制や追加発動させるタイプは、
1.通常攻撃で最後の敵を倒す
2.敵は全滅で、戦闘勝利状態になった
3.しかし追加スキルを発動させようとする
4.敵はいないのでエラーになる
※味方が全滅のパターンも場合もあり
というたまたま発生する条件があります。
だからこういう系統のプラグインは難しく、テストプレイも確率論的になってきます。
通常攻撃やスキル使用時にもTPは上昇するので、
1.通常攻撃発動前
2.通常攻撃後、TP上昇
3.派生スキル1準備
4.派生スキル1発動
5.派生スキル1発動後、TP上昇
6.派生スキル2準備
7.派生スキル2発動 TP消費
8.派生スキル2発動後、TP上昇
2回行動のアクター
9.2回目の行動 通常攻撃発動前
10.通常攻撃後、TP上昇
11.派生スキル1準備
12.派生スキル1発動
13.派生スキル1発動後、TP上昇
14.派生スキル2準備
15.派生スキル2発動 中止
みたいな流れになります。
さらに敵が生存しているか、戦闘不能ならスキル中止。別の対象を探す。という仕組みもあります。
5.派生スキル1発動後、TP上昇
の時にTPが100になりフィニッシュの条件を満たした。
となれば、
2.通常攻撃後、TP上昇
のタイミングでは、TP100未満で派生対象外。
そうすると、1か2のタイミングで、フィニッシュのスキル発動準備はするけど、5のタイミングでTPチェックしてスキルを除外するみたいな処理になります。
現在は、
1.通常攻撃発動前
のタイミングで、
3.派生スキル1準備
6.派生スキル2準備
を行い
※MPやTP、封印などの発動満たす&MPやTPの消費した上で
4.派生スキル1発動
5.派生スキル1発動後、TP上昇
※MPやTP、封印などの発動満たす&MPやTPの消費した上で
6.派生スキル2発動 TP消費
7.派生スキル2発動後、TP上昇
6.2回目の行動 通常攻撃発動前
のタイミングで、
11.派生スキル1準備
12.派生スキル2準備
を行う
流れにしています。
こうしないと、回数もカウントして条件に組み込む必要があります。
まず、こういう処理の流れで考えられるようになって、さらにコアスクリプトの戦闘の処理を知り、それからプラグインの動作がわかり、ようやく変更出来るようになります。
今回は、これ全部、戦闘の処理の流れを理解する必要があります。
rmmz_managers.js
rmmz_objects.js
rmmz_scenes.js
rmmz_windows.js
新たにメモを読み取ったり、条件を追加したりするならば、
5.派生スキル1発動後、TP上昇
の後処理の段階で、
6.派生スキル2発動
を発動させないようにしなければなりません。
新たにプラグインを作り直すくらいの規模になります。
仮にプラグインを編集して、スクリプトを書ける事が出来たとしても、
5.派生スキル1発動後、TP上昇
でTP100になりフィニッシュが発動するか。を最低限必要な組み合わせで試す、
というテストプレイまで含まれ、条件や想定範囲がシビアです。
TP100以外の条件も追加したいとか、TP消費する装備が2つで、派生スキルが2つあった場合も対応が必要です。
そこにスクリプトやプラグインを編集したとして、JavaScriptのコードが間違えているのか、
TP判定のタイミングが間違っているのか、それすらも大変です。
他のプラグインとの競合や予期せぬ動作もあります。
まずこれをテストプレイ出来るだけの条件を、考えたり書き出したりするだけで大変なので。
新たに条件判定が出来るようプラグインを作り直して、
そこに条件を編集して書く感じになります。
その条件も、当初のコモンイベントのスクリプトのように、複雑になると思います。
TPの条件をつけることと、TPを消費させる処理は別です。