質問失礼いたします。
やな様のBattleFormationと、ツミオ様のTsumioMenuSystemを使用しております。
プラグインをこの2つだけにした状態でも、
バトル参加可能人数を上回った状態でメニュー画面を開くとエラーとなってしまいます。
普段はフトコロ様のFTKR_MAXBattleMembersも用いて、5名が最大なので、6名以上。
デフォルトであれば4名までがバトル参加可能人数なので、
5名以上のメンバーが居るときにメニューを開くとエラーすることも確認しています。
TsumioMenuSystemがダメならばということでフトコロ様のFTKR_CustomSimpleActorStatus等を用いてみましたが、
メニュー画面にSVアクター表示を行っていると、やはり同様のエラーになるようでした。
(TsumioMenuSystemでもメニュー画面にSVアクターが表示されています)
そのため、BattleFormation側の記述変更でどうにかならないかということで試しましたが、
私では解決出来ませんでした。
レイアウトの問題でFTKR_CustomSimpleActorStatusを扱う際はFTKR_GDM_WindowEditorも
使いたいのですが、そちらが少々他のプラグインと競合を起こすため、最良なのはBattleFormation側、
次点でTsumioMenuSystem側での解決方法を何卒アドバイスを頂けないでしょうか?
【解決済み】BattleFormationとメニュー画面にSVアクターを表示しているプラグインの競合について
トピックの投稿
返信へ【解決済み】BattleFormationとメニュー画面にSVアクターを表示しているプラグインの競合について
最後に編集したユーザー アーヴェル [ 2020年4月06日(月) 20:34 ], 累計 1 回
返信 2 / 2ページ
- Plasma Dark
- 記事: 740
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: BattleFormationとメニュー画面にSVアクターを表示しているプラグインの競合について
このエラーは戦闘可能な最大人数が描画しようとしている人数より多いために起こるものだと思われます。直接的なエラーの原因となるのは、 BattleFormationの715行目
BattleFormation.js で5人以上のアクターを扱おうとする場合、 FTKR_MaxBattleMembers.js による、戦闘可能な最大人数の拡張は必須です。
BattleFormation.js, TsumioMenuSystem.js, FTKR_MaxBattleMembers.js のすべてを有効にした際のエラーメッセージは異なるものだと思われますが、どう表示されていますか。
Re: BattleFormationとメニュー画面にSVアクターを表示しているプラグインの競合について
返信ありがとうございます。
Twitterですが、参考動画を用意させて頂きました。
最後のエラーはメニュー画面を開こうとした瞬間のエラーとなります。
https://twitter.com/LF71_S/status/1246976185357090817
プラグインはご指摘、そして動画の通り、
BattleFormation.js, TsumioMenuSystem.js, FTKR_MaxBattleMembers.js
となっております。
希望する挙動を画像に添付するため、
FTKR_MaxBattleMembers.jsにてバトルメンバー最大数を8名に設定してあります。
TsumioMenuSystemでは、各アクターのステータスにSVアクターが表示されており、
列数を8にすると画像の通り、8名が表示されている状態になっています。
(最終的な希望の状態がの列数8なので8に設定しましたが、
これを変更しても後述するエラーの条件を満たせばこちらの数値に関係なくエラーするようです)
この状態ではBattleFormationの陣形プラグインが正常に動作します。
こちらも画像に添付した状態となっております。
ただし、バトルメンバー最大数を8名とは考えては居ないため、
この最大数は減らしたいのですが、(希望数は5です)
バトルメンバー最大数 < パーティの合計メンバー数
という状態でメニュー画面を開こうとするとエラーが生じます。
これはFTKR_MaxBattleMembersに限らず、
SceneFormation
FTKR_CSS_BattleStatus
等のバトルメンバー最大数を変更できる他のプラグインでも同様のエラーが生じるようです。
或いはこれらのバトルメンバー最大数を変更できるプラグインを全て抜き、デフォルトの状態(4名)でも
TsumioMenuSystem.jsとBattleFormationが共存している状態では、
バトルメンバー最大数 < パーティの合計メンバー数
の場合はメニュー画面を開こうとした瞬間に前述したエラーが生じます。
エラー内容に関してもBattleFormation.jsの715行目であり、
こちらの2020年4月05日(日) 23:17投稿したエラーと完全に同一のものとなります。
Twitterですが、参考動画を用意させて頂きました。
最後のエラーはメニュー画面を開こうとした瞬間のエラーとなります。
https://twitter.com/LF71_S/status/1246976185357090817
プラグインはご指摘、そして動画の通り、
BattleFormation.js, TsumioMenuSystem.js, FTKR_MaxBattleMembers.js
となっております。
希望する挙動を画像に添付するため、
FTKR_MaxBattleMembers.jsにてバトルメンバー最大数を8名に設定してあります。
TsumioMenuSystemでは、各アクターのステータスにSVアクターが表示されており、
列数を8にすると画像の通り、8名が表示されている状態になっています。
(最終的な希望の状態がの列数8なので8に設定しましたが、
これを変更しても後述するエラーの条件を満たせばこちらの数値に関係なくエラーするようです)
この状態ではBattleFormationの陣形プラグインが正常に動作します。
こちらも画像に添付した状態となっております。
ただし、バトルメンバー最大数を8名とは考えては居ないため、
この最大数は減らしたいのですが、(希望数は5です)
バトルメンバー最大数 < パーティの合計メンバー数
という状態でメニュー画面を開こうとするとエラーが生じます。
これはFTKR_MaxBattleMembersに限らず、
SceneFormation
FTKR_CSS_BattleStatus
等のバトルメンバー最大数を変更できる他のプラグインでも同様のエラーが生じるようです。
或いはこれらのバトルメンバー最大数を変更できるプラグインを全て抜き、デフォルトの状態(4名)でも
TsumioMenuSystem.jsとBattleFormationが共存している状態では、
バトルメンバー最大数 < パーティの合計メンバー数
の場合はメニュー画面を開こうとした瞬間に前述したエラーが生じます。
エラー内容に関してもBattleFormation.jsの715行目であり、
こちらの2020年4月05日(日) 23:17投稿したエラーと完全に同一のものとなります。
- Plasma Dark
- 記事: 740
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: BattleFormationとメニュー画面にSVアクターを表示しているプラグインの競合について
なるほど、そういうことでしたか。理解しました。ただし、バトルメンバー最大数を8名とは考えては居ないため、
この最大数は減らしたいのですが、(希望数は5です)
バトルメンバー最大数 < パーティの合計メンバー数
という状態でメニュー画面を開こうとするとエラーが生じます。
BattleFormation.js のバグですね。しかも追加プラグインによる対応が難しい類の面倒なヤツです。
BattleFormation.js の710行目付近 setActorHome 関数に、下記を参考に追記してみてください。
コード: 全て選択
var __SActor_setActorHome = Sprite_Actor.prototype.setActorHome;
Sprite_Actor.prototype.setActorHome = function(index) {
__SActor_setActorHome.call(this, index);
if (!this._actor._bfHome) $gameParty.setBattleFormation(null);
+ if (!this._actor._bfHome) return;
var home = this._actor._bfHome;
this.setHome(home[0], home[1] + 80);
if (this._actor._home) {
this._actor._home = this._actor._bfHome;
}
};
原因について簡単に説明すると、
1. BattleFormation.js は戦闘可能なメンバー分のみ、SVアクターのスプライト生成時にデフォルト座標を計算し、それを参照する
2. TsumioMenuSystem.js はメニューを開いた時に戦闘可能でないメンバーまで含めてSVアクターのスプライトを生成する
3. 以上より、メニューを開くタイミングで BattleFormation.js が、計算していない戦闘可能でないメンバーの座標を参照しようとして落ちる
です。修正コードでは、計算していないメンバーの座標を参照しないようにしていますので、少なくとも同じ原因で落ちることはなくなるかと思います。
Re: BattleFormationとメニュー画面にSVアクターを表示しているプラグインの競合について
返信ありがとうございます。
コードを入れた所、該当箇所でエラー落ちはしなくなりました。ご助言ありがとうございます!
ただその後、挙動の確認作業を行っていたのですが
バトルメンバー最大数 < パーティの合計メンバー数
の状態、先程ちょうどエラー落ちしていた条件になりますが、Plasma Darkさんの改善案によって、
メニューも開くことが出来、陣形選択画面も問題なく、決定を押すことは出来るのですが、
その後メニューに戻ると陣形情報が保存されない。という状態になっております。
https://twitter.com/LF71_S/status/1247099632124981248
こちら、参考動画となっております。
プラグインは先述の3つと、動画では陣形を用意するのが手間だったのに加えて、
メインデータでは解像度変更を行っていてアクター画面外に行ってしまうということでわかりにくいため、
YEP_CoreEngineも入れた状態となっておりますが、それを抜いても同様の状態となりました。
表記だけの問題を疑い、その状態で戦闘を行いましたが、
設定されている座標及び陣形による能力上昇も得られていないということで、
設定の際にエラーが出ないにしろ問題が起きているんだろうなぁと感じております。
これに関しても、パーティメンバーの数・・・というよりメニュー画面で呼び出しているSVアクターの表示数が、
バトルメンバー最大数を上回っているケースでのみ起こることであり、
控えメンバーで表示されているSVアクターを戻さないといけないんだろうなぁ・・・とか。
考えることは出来ますが、根が深い問題・・・というより、
少なくとも自分の知識ではもう完全に手に負えない問題であると感じ、
完全に皆様のご厚意待ちという状況よりは、別の方法を取ることも本格的に考えなければと思い始めた所存です。
動いた時は、散々悩んだ場所が一行で! と感動しました。
ご回答いただいた皆様全員、そして閲覧して考えてくださった方、
私の質問に時間を割いて頂いたこと、このタイミングで感謝申し上げます。
もうしばらくの間、皆様のご厚意に甘えさせていただこうかと思いますが、
解決が難しそうであれば、質問の方は取り下げさせていただこうかと考えております。
コードを入れた所、該当箇所でエラー落ちはしなくなりました。ご助言ありがとうございます!
ただその後、挙動の確認作業を行っていたのですが
バトルメンバー最大数 < パーティの合計メンバー数
の状態、先程ちょうどエラー落ちしていた条件になりますが、Plasma Darkさんの改善案によって、
メニューも開くことが出来、陣形選択画面も問題なく、決定を押すことは出来るのですが、
その後メニューに戻ると陣形情報が保存されない。という状態になっております。
https://twitter.com/LF71_S/status/1247099632124981248
こちら、参考動画となっております。
プラグインは先述の3つと、動画では陣形を用意するのが手間だったのに加えて、
メインデータでは解像度変更を行っていてアクター画面外に行ってしまうということでわかりにくいため、
YEP_CoreEngineも入れた状態となっておりますが、それを抜いても同様の状態となりました。
表記だけの問題を疑い、その状態で戦闘を行いましたが、
設定されている座標及び陣形による能力上昇も得られていないということで、
設定の際にエラーが出ないにしろ問題が起きているんだろうなぁと感じております。
これに関しても、パーティメンバーの数・・・というよりメニュー画面で呼び出しているSVアクターの表示数が、
バトルメンバー最大数を上回っているケースでのみ起こることであり、
控えメンバーで表示されているSVアクターを戻さないといけないんだろうなぁ・・・とか。
考えることは出来ますが、根が深い問題・・・というより、
少なくとも自分の知識ではもう完全に手に負えない問題であると感じ、
完全に皆様のご厚意待ちという状況よりは、別の方法を取ることも本格的に考えなければと思い始めた所存です。
動いた時は、散々悩んだ場所が一行で! と感動しました。
ご回答いただいた皆様全員、そして閲覧して考えてくださった方、
私の質問に時間を割いて頂いたこと、このタイミングで感謝申し上げます。
もうしばらくの間、皆様のご厚意に甘えさせていただこうかと思いますが、
解決が難しそうであれば、質問の方は取り下げさせていただこうかと考えております。
- Plasma Dark
- 記事: 740
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: BattleFormationとメニュー画面にSVアクターを表示しているプラグインの競合について
おお、たしかにそうなってしまいますね。すみません、修正が雑だったせいです。メニューも開くことが出来、陣形選択画面も問題なく、決定を押すことは出来るのですが、
その後メニューに戻ると陣形情報が保存されない。という状態になっております。
以下のようにすれば多分大丈夫……なはず。
コード: 全て選択
var __SActor_setActorHome = Sprite_Actor.prototype.setActorHome;
Sprite_Actor.prototype.setActorHome = function(index) {
__SActor_setActorHome.call(this, index);
+ if (!this._actor.isBattleMember()) return;
if (!this._actor._bfHome) $gameParty.setBattleFormation(null);
var home = this._actor._bfHome;
this.setHome(home[0], home[1] + 80);
if (this._actor._home) {
this._actor._home = this._actor._bfHome;
}
};
SVアクターのスプライト生成時に毎回、nullをセットしてしまうので、メニューを開いたり戦闘開始したりした際に強制的に基本陣形に戻っちゃいますね。
前の修正ではアクターの座標計算をやった上で、座標が存在しないメンバーについてその後の
処理を行わない、としていました。
普通に戦闘メンバー以外に対してやるべき処理ではないので、座標計算前にその判定をして返してあげる、というのが今回の修正です。
Re: BattleFormationとメニュー画面にSVアクターを表示しているプラグインの競合について
返信ありがとうございます!
完璧に動きました!
Plasma Darkさん、何度も修正案をご提示頂きどうもありがとうございました!
正直な所、これは無理そうなのかなぁ・・・と思っていた所を即座に解決と、
感動もそうですが、いやぁ・・・本当に凄いなと驚きと尊敬の念を感じざるを得ません。
スクリプトの解説も兼ねていただいて、勉強にもなりました。
自分にはお返しできることが無いというのが心苦しくありますが、
心よりの感謝を述べさせていただこうと思います。
本当にありがとうございました!
完璧に動きました!
Plasma Darkさん、何度も修正案をご提示頂きどうもありがとうございました!
正直な所、これは無理そうなのかなぁ・・・と思っていた所を即座に解決と、
感動もそうですが、いやぁ・・・本当に凄いなと驚きと尊敬の念を感じざるを得ません。
スクリプトの解説も兼ねていただいて、勉強にもなりました。
自分にはお返しできることが無いというのが心苦しくありますが、
心よりの感謝を述べさせていただこうと思います。
本当にありがとうございました!