【解決済】①2~5回連続攻撃を作りたい ②各段階で威力が異なる連続攻撃を作りたい

弱点保険マラカッチ
記事: 4
登録日時: 2021年9月01日(水) 13:56

【解決済】①2~5回連続攻撃を作りたい ②各段階で威力が異なる連続攻撃を作りたい

投稿記事by 弱点保険マラカッチ » 2021年9月01日(水) 15:13

はじめまして。 RPGツクールMZでスキルを制作している最中、どうしてもわからないことが2つあり、今回質問をさせていただきました。

私はポケモンに出てくるような タネマシンガン や みだれひっかき のような2~5回連続で攻撃するスキルが作りたいです。
しかし、1回目と2回目は確定で攻撃しつつそれ以降の回数はランダムで2~5回のいずれか、というような連続回数自体を範囲内でランダムにし、 なおかつ5回までいかずに途中で攻撃が終わった場合には それ以降の攻撃を行わずそこまでで終了する、  というようなものにする方法が分かりません。  
どう設定すればいいのか、あるいはこういう事を可能にするプラグインをご存知の方がいらっしゃったら教えていただきたいです。

もう一つお伺いしたいことは、ポケモンに出てくる トリプルキック や トリプルアクセル のような一回ごとに命中判定が行われる連続攻撃で、回数が当たるごとに威力が増していくスキルを作る方法についてです。 
命中判定が一回ずつ行われた上で スキルの一回目が外れたら二回目三回目とは続かないような(=攻撃が外れた時点でその連続攻撃が終了する)ものと、  一回目より二回目、二回目より三回目のが威力が高い(=連続攻撃のそれぞれの段階で威力が異なる)ようなもの、を作りたいです。
こちらについてもどうすればいいのかご存知の方がいらっしゃいましたらご教授頂けると幸いです。長文失礼しました。
最後に編集したユーザー 弱点保険マラカッチ on 2021年9月06日(月) 00:30 [ 編集 1 回目 ]

アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: ①2~5回連続攻撃を作りたい ②各段階で威力が異なる連続攻撃を作りたい

投稿記事by ムノクラ » 2021年9月02日(木) 12:15

弱点保険マラカッチ さんが書きました:はじめまして。 RPGツクールMZでスキルを制作している最中、どうしてもわからないことが2つあり、今回質問をさせていただきました。

私はポケモンに出てくるような タネマシンガン や みだれひっかき のような2~5回連続で攻撃するスキルが作りたいです。
しかし、1回目と2回目は確定で攻撃しつつそれ以降の回数はランダムで2~5回のいずれか、というような連続回数自体を範囲内でランダムにし、 なおかつ5回までいかずに途中で攻撃が終わった場合には それ以降の攻撃を行わずそこまでで終了する、  というようなものにする方法が分かりません。  
どう設定すればいいのか、あるいはこういう事を可能にするプラグインをご存知の方がいらっしゃったら教えていただきたいです。

もう一つお伺いしたいことは、ポケモンに出てくる トリプルキック や トリプルアクセル のような一回ごとに命中判定が行われる連続攻撃で、回数が当たるごとに威力が増していくスキルを作る方法についてです。 
命中判定が一回ずつ行われた上で スキルの一回目が外れたら二回目三回目とは続かないような(=攻撃が外れた時点でその連続攻撃が終了する)ものと、  一回目より二回目、二回目より三回目のが威力が高い(=連続攻撃のそれぞれの段階で威力が異なる)ようなもの、を作りたいです。
こちらについてもどうすればいいのかご存知の方がいらっしゃいましたらご教授頂けると幸いです。長文失礼しました。


結構複雑なので、まとめを書きました。
https://fungamemake.com/archives/13905


追伸
1トピックには1質問にするほうが、返信がつきやすいです。
片方だけ解決した場合、残っている課題が放置される可能性が高くなるからです。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
弱点保険マラカッチ
記事: 4
登録日時: 2021年9月01日(水) 13:56

Re: ①2~5回連続攻撃を作りたい ②各段階で威力が異なる連続攻撃を作りたい

投稿記事by 弱点保険マラカッチ » 2021年9月03日(金) 05:40

ご返信ありがとうございました。ムノクラ様のサイト、大変参考になりました。 そして質問方法についてもアドバイスありがとうございます。 次からは十分気を付けさせていただきます。

ご紹介していただいた「連続するスキルの発動が失敗した時、発動を中止する(Utsuda様作) - UTSU_StopMultipleSkillWhenFailure.js」 と「FTKR Skill Expansion(フトコロ様作) - FTKR_SkillExpansion.js」により、連続回数の途中でミスが発生するとそこで攻撃が止まり、連連続攻撃のダメージ変化させる、という動作ができるようになりました。 この二つを組み合わせることで トリプルアクセル の方は希望するような動作確認ができました、本当にありがとうございます。 

ただ、「日本語版 SRD Repeat Upgrade」の方がうまくいかず、紹介して頂いたプラグインを導入し<Repeat: Math.randomInt(4) + 2> をスキルのメモに書き込んでも反映されず、定数の連続攻撃にしかなりませんでした。
一応 <Repeat>
   var temp = Math.random(3);
    temp = temp + 10;
   result = temp;
   </Repeat> 
の方でもやってみたのですがうまくいかず、原作者様の解説も見てみたのですが(動画は非公開になってる模様)、やはり希望するような2~5回の間でランダムになる連続攻撃 の動作が行えませんでした。 
重ね重ねご迷惑をおかけしますが、 「日本語版 SRD Repeat Upgrade」の動作をうまくいかせて2~5回の間でランダムになる連続攻撃 にするにはどうしたらよいかお教えいただいてもよろしいでしょうか。
アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: ①2~5回連続攻撃を作りたい ②各段階で威力が異なる連続攻撃を作りたい

投稿記事by ムノクラ » 2021年9月03日(金) 09:58

弱点保険マラカッチ さんが書きました:ご返信ありがとうございました。ムノクラ様のサイト、大変参考になりました。 そして質問方法についてもアドバイスありがとうございます。 次からは十分気を付けさせていただきます。

ご紹介していただいた「連続するスキルの発動が失敗した時、発動を中止する(Utsuda様作) - UTSU_StopMultipleSkillWhenFailure.js」 と「FTKR Skill Expansion(フトコロ様作) - FTKR_SkillExpansion.js」により、連続回数の途中でミスが発生するとそこで攻撃が止まり、連連続攻撃のダメージ変化させる、という動作ができるようになりました。 この二つを組み合わせることで トリプルアクセル の方は希望するような動作確認ができました、本当にありがとうございます。 

ただ、「日本語版 SRD Repeat Upgrade」の方がうまくいかず、紹介して頂いたプラグインを導入し<Repeat: Math.randomInt(4) + 2> をスキルのメモに書き込んでも反映されず、定数の連続攻撃にしかなりませんでした。
一応 <Repeat>
   var temp = Math.random(3);
    temp = temp + 10;
   result = temp;
   </Repeat> 
の方でもやってみたのですがうまくいかず、原作者様の解説も見てみたのですが(動画は非公開になってる模様)、やはり希望するような2~5回の間でランダムになる連続攻撃 の動作が行えませんでした。 
重ね重ねご迷惑をおかけしますが、 「日本語版 SRD Repeat Upgrade」の動作をうまくいかせて2~5回の間でランダムになる連続攻撃 にするにはどうしたらよいかお教えいただいてもよろしいでしょうか。


記事にも書きましたが、FTKR_SkillExpansionは大きなプラグインなので、SRD Repeat Upgradeと同時に入れても競合して動かないと思います。
また、MV版なので、検証しきれていません。

SRD Repeat Upgradeだけで実験してみましたか?
記事の通りFTKR_SkillExpansionを入れない場合は動作しました。

あとは、プラグイン管理リストの順でSRD Repeat Upgradeを下にしたら、もしかしたら動くかも知れませんが、詳しい検証はしていません。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
弱点保険マラカッチ
記事: 4
登録日時: 2021年9月01日(水) 13:56

Re: ①2~5回連続攻撃を作りたい ②各段階で威力が異なる連続攻撃を作りたい

投稿記事by 弱点保険マラカッチ » 2021年9月03日(金) 10:36

ご返信ありがとうございます。 競合などの確認不足申し訳ありませんでした。
ムノクラさんのおっしゃったようにプラグイン管理リストの順でSRD Repeat Upgradeを下にしたら希望の動作をすることができました!
自分では解決できなかった悩みを解決していただき本当にありがとうございました!

ちなみになのですが、どうしてプラグインの順番を並べ替えることでうまく動作したりしなかったりするんでしょうか?
アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: ①2~5回連続攻撃を作りたい ②各段階で威力が異なる連続攻撃を作りたい

投稿記事by ムノクラ » 2021年9月03日(金) 12:56

弱点保険マラカッチ さんが書きました:ご返信ありがとうございます。 競合などの確認不足申し訳ありませんでした。
ムノクラさんのおっしゃったようにプラグイン管理リストの順でSRD Repeat Upgradeを下にしたら希望の動作をすることができました!
自分では解決できなかった悩みを解決していただき本当にありがとうございました!

ちなみになのですが、どうしてプラグインの順番を並べ替えることでうまく動作したりしなかったりするんでしょうか?

先に質問への解答を出します。

プラグイン管理リストの並び順で動作が変化するのを理解するにはプラグイン自体の仕組みを理解する必要があります。
下記記事で、プラグインの根本的な仕組みに触れています。

プラグインの作り方入門その1:コアスクリプトを書き換えるならプラグインにしてしまおう
https://fungamemake.com/archives/12254

今回の件を調べたところ
Game_Action.prototype.numRepeats
という関数を
FTKR_SkillExpansion
SRD_RepeatUpgrade
の両方でコアを上書きして動作を変えていました。
(他の関数も関係しているでしょうけれども…簡単に)

このように同じ関数を書き換えるプラグインが競合します。
ゲーム起動時に管理リストの上から順にプラグインがコアスクリプトに上書きをしていきます。
ですので、下にある方が更に上書きし、SRD_RepeatUpgradeが動作するようになったのだと思います。

また、このように関数を全部調べていくと、MVとMZで元の関数や周辺処理が同じかどうかで、そのままで動くかが分かります。


▼つっこみ1(たまたま競合しないだけなら、必要ないプラグインは減らしたほうが事故が減ります)
連続の途中でミスをしたら止まるのは全部のスキル?
だとしたら、UTSU_StopMultipleSkillWhenFailure は必要ありません。
FTKR_SkillExpansionのプラグインパラメーター
Enabled Repeat Failure
で、1を指定すれば、そのようになります。

もし、特定のスキルを指定する場合、UTSU_StopMultipleSkillWhenFailureが必要です。
この場合FTKR_SkillExpansionのEnabled Repeat Failureは0にしましょう。
また、競合対策としてUTSU_StopMultipleSkillWhenFailureもFTKR_SkillExpansionの下にしましょう。

▼つっこみ2(メモタグも競合します)
メモタグを読む処理が異なるため、SRD_RepeatUpgradeで上書きしないとこのタグは動かないのかと予想します。
今回は相当しませんが、メモタグのスペルが同じプラグイン同士も競合します。


おまけ
リライトしました。
https://fungamemake.com/archives/13905
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
弱点保険マラカッチ
記事: 4
登録日時: 2021年9月01日(水) 13:56

Re: ①2~5回連続攻撃を作りたい ②各段階で威力が異なる連続攻撃を作りたい

投稿記事by 弱点保険マラカッチ » 2021年9月04日(土) 10:07

ご返信ありがとうございます。 初心者の私でも理解できるようなとてもわかりやすいご説明ありがとうございました! またサイトもご紹介していただき、大変参考になりました。私もプラグインの基礎的な部分くらいは学んでみたいと思います。

今回SRD_RepeatUpgradeを下にしたら、FTKR_SkillExpansionの機能もSRD_RepeatUpgradeの機能もどちらも要求する動作の確認はできましたが、 
もしかしたらSRD_RepeatUpgradeを下に配置し上書きすることで 逆にFTKR_SkillExpansionの一部の機能が使えなくなってしまっている、という事態も起こりえたわけだったんですね...

UTSU_StopMultipleSkillWhenFailure のプラグインで 連続の途中でミスをしたら止まるのは連続攻撃のスキルだけみたいでしたので、今回はこのUTSU_StopMultipleSkillWhenFailure の方を利用し下に配置し、FTKR_SkillExpansionのEnabled Repeat Failureは0にして競合が起きないようにさせていただきます。

自分では気づけなかったことばかりで、本当にお教えしてもらえて助かりました!

“MZ:質問” へ戻る