ページ 1 / 2
YanflyさんのBattle Engine Coreについて
Posted: 2016年4月20日(水) 18:02
by jaja
YanflyさんのBattle Engine Coreプラグインを使っているのですが、
使用すると、味方が敵に攻撃する時、わずかなタイムラグが発生します。
このプラグインを使わない通常の場合、
攻撃はすぐに行われるものですが
プラグインを導入すると一秒ぐらいおいて、
攻撃アニメーションと共に攻撃がくりだされるようにになります。
私はこのプラグインが使いたかったのですが
こういう機能は求めていなかったので困ってしまいました。
これを通常のタイムラグのない状態にもどすにはどうすればいいのでしょか?
プラグインにくわしい方よろしくお願いします。
Re: YanflyさんのBattle Engine Coreについて
Posted: 2016年4月21日(木) 23:33
by Trb
プラグイン単体での再配布は禁止されているので改変すべき箇所だけ書きます。
プラグインを開いて大体真ん中辺りに
コード: 全て選択
BattleManager.actionPerformAction = function() {
this._logWindow.performAction(this._subject, this._action);
if (this._subject.isActor() && this._subject.isSpriteVisible) {
this._logWindow._waitCount += 20;
return false;
}
return true;
};
こういう部分があります。
(ver1.34のものです。もし他のバージョンを使ってる場合は違う書き方をされてるかもしれません)
ここの_waitCount += 20 という数字が攻撃時に発生するウェイトの値なので、小さい数字に書き換えればいいです。
Re: YanflyさんのBattle Engine Coreについて
Posted: 2016年4月21日(木) 23:51
by jaja
Trbさん、ありがとうございます!おかげで遅延がなくなりました。遅延というか仕様だったのですね。
プラグインはわからないので助かりました。
Re: YanflyさんのBattle Engine Coreについて
Posted: 2016年4月27日(水) 05:20
by jaja
Trbさんにタイムラグの解消法を教えてもらいwait countを減らし
色々と試したんですが、たとえ値を1や0にしても何か遅いなと思い、このプラグインをOFFにしてテストプレイをしたら
スムーズスピーディーに戦闘が展開され、やはりまだ攻撃が一瞬遅れていることに気づきました。
なにがおかしいんでしょうか?
Re: YanflyさんのBattle Engine Coreについて
Posted: 2016年4月27日(水) 21:05
by Trb
うーん、パラメータの『Animation Base Delay』はいくつにしてますか?
これがアニメーションの基本ディレイ値なので、大きい数字にしてるとアニメーションが出るのが遅くなります。
これを0にしててもまだ遅いということだとちょっと分かりません・・・
他のプラグインも入れてるならそっちの影響かもしれませんね。
Re: YanflyさんのBattle Engine Coreについて
Posted: 2016年4月27日(水) 21:41
by jaja
Trbさん、いつも返信有り難うございます。
私も色々やってみたんですが結局のところ、わかりませんでした。
一応新しいプロジェクトを作ってこのプラグインのみ導入し
wait countを減らし、animation base delayも0にしたり減らしたりしてみましたが、改善できませんでした。
一つだけ言うと何のプラグインもなしの初期状態のツクール戦闘だと左上のテキストログの表示と
同時(あるいはほぼ同時)でアニメーションが発動し攻撃していることに気づきました。
しかしこのプラグインの場合、wait countをいくら減らしても
テキストログの表示後にアニメーションがでるという形でした。
「ハロルドの攻撃!」と明確に表示されたあとにびしっと攻撃アニメーションがでるような形で。
助力していただきありがとうございます、やっぱりわからないですね。
Re: YanflyさんのBattle Engine Coreについて
Posted: 2016年4月27日(水) 22:42
by リアン
はじめまして
jsフォルダ内にあるrpg_sprites.jsをメモ帳で開き840行目あたりに、
Sprite_Actor.prototype.motionSpeed = function() {
return 12;
};
という記述があるので、return 12 の部分を変更してみてはどうでしょうか?
数字が低いほどスピードが早くなり、他のmotionも同様に早くなるので注意が必要ですが
メモ帳を使っての書き換えで大丈夫です。
念のため 「プロジェクトの保存」 を行ってから戦闘テストしてみながら調整してみて下さい
Re: YanflyさんのBattle Engine Coreについて
Posted: 2016年4月28日(木) 00:01
by jaja
はじめましてリアンさん、教えていただきありがとうございます。
教えていただいたreturn 12;の
12から数字を1や0にしてみるんですがやっぱり、変わりがないですね。
テキストがパッとでてから、そのあとに攻撃をしまして。
デフォルトのツクールのバトルでは打撃や斬撃などがテキストログと共にスッと出るんですけどね。
Re: YanflyさんのBattle Engine Coreについて
Posted: 2016年4月28日(木) 00:08
by リアン
そうですか...
ちなみにログ表示をシンプルにするSimpleMagSideViewは導入されてますか?
Re: YanflyさんのBattle Engine Coreについて
Posted: 2016年4月28日(木) 00:16
by Trb
あぁー、なるほど、メッセージが出てから動き始めるまでの間が遅いんですね。
たしかにその部分を注意して見ると遅かったです。
原因を調べてみたところ、デフォルトでは
キャラの移動、攻撃モーションのセット、アニメーションのセット、メッセージとメッセージウェイトのセット
という流れになっているのですが、そのプラグインでは
メッセージとメッセージウェイトのセット、キャラの移動、攻撃モーションのセット、アニメーションのセット
という流れになっているみたいです。
通常はアニメーションをセットした後にメッセージのウェイトが来るために、アニメーションを再生してる間にウェイトが消費されるのですが
そのプラグインでは最初にメッセージのウェイトがセットされるために次の処理も遅れてしまうということです。
根本的に解決するのは結構大幅に改変しないといけなくて大変そうなので、大雑把な解決法としては、プラグインの適当なメソッドとメソッドの間に
コード: 全て選択
Window_BattleLog.prototype.messageSpeed = function() {
return 0;
};
と追加すればいいです。
こうすると複数行に渡るメッセージを表示する時に全行が纏めて表示されてしまいますが、試してみたところそれほど違和感はないと思います。
(全行まとめて表示されるのは嫌だ!という場合は return 0;の部分を4や5など妥協できる範囲で小さめの値にして下さい)