バトル周りを調べてみたPrev.Nextバトル周りを調べてみたわりと、ややこしいですはじめにRPGツクールMVを購入以来、延々マップ関連の部分を調べて修正してきたわけですが、ついに戦闘シーンに突入です。戦闘はRPGの華ですね。今回は戦闘シーンの流れを把握したいと思います。いう記事がなかなか詳しく説明してあって、参考になります。例によって、一通り調べた後に参考資料に気づくパティーン。呼んでるという仕組みです。とこれまでの経験でわかっております。ウィンドウや敵味方の画像を持ってる。戦闘の流れをみる地味にコードを追って戦闘の流れを確認してみます。)という現在の行動状態を記録している変数を持っていて、処理の分岐などしています。この状態を軸に見ていくと理解しやすそうです。nullフェーズまず、戦闘シーンではない状態から戦闘シーンへの移行から。呼ばれる('start'フェーズへ)'init'フェーズ初期化のフェーズで、画面切り替えの頭で行われます。戦闘に入ったらもうこのフェーズは通過しません。呼ばれる'start'フェーズ戦闘ターン開始の処理。フェーズの後に実行されます。呼ばれるタイプのフェーズですが、戦闘に入ったらもう通過しません。変わってたらパーティかアクターのコマンド選択を開始します。毎フレーム呼ばれるようになるこの入力周りはもっとややこしいことやってるんですが、戦闘の仕組みとは直接関係ないので割愛。呼ばれ、全アクターの行動入力が完了した場合、あるいは前述の[不意打ち]の場合で、'turn'フェーズになります。呼ぶ('turnEnd'フェーズへ)'action'フェーズ戦闘のアクションを処理するフェーズです。このフェーズと'turn'フェーズを行動可能なバトラーの分だけ繰り返していきます。内容と処理については、結構なボリュームがあるので、今回は割愛。戦闘シーンで一番大事な部分を飛ばしてしまうのもナンですが。'turnEnd'フェーズターンを終了して'input'フェーズに戻す処理です。戦闘終了の処理が行われます。変更とまぁ、こんな感じで戦闘の処理が行われています。進行状況が制御されることが分かれば、どうにか追っていけます。メソッド呼び出しになっているのは他のシーンと同じなので、特に戦闘シーンに特有の動きではない、ということを理解すれば。送るようになってます。アクティブなコマンドウィンドウがあって何か入力する時は、戦闘の進行を停止するということですね。アクティブタイムバトルを実装したい場合は、この辺を変更する必要がありそうです。コマンドウィンドウについては、Windowオブジェクト側でアクティブな状態をチェックして、操作の実行してます。プロパティはSpriteset_Battleを除くと、以下の表の通り、ウィンドウで構成されています。形でScene_Battleが持っています。呼び出されて、戦闘のあれこれを管理します。Manager関連は全部そうですが、大域変数的に戦闘全体に関わる変数を保持していると考えると良いと思います。その変数に関わる処理も一緒に持ってる、という感じですね。まとめちょっと長くなったので、今回はここまでにしておきます。2020-01-14。