YanflyさんのBattle Engine Coreについて

jaja
記事: 148
登録日時: 2015年12月30日(水) 17:47

YanflyさんのBattle Engine Coreについて

投稿記事 by jaja »

YanflyさんのBattle Engine Coreプラグインを使っているのですが、
使用すると、味方が敵に攻撃する時、わずかなタイムラグが発生します。
このプラグインを使わない通常の場合、
攻撃はすぐに行われるものですが
プラグインを導入すると一秒ぐらいおいて、
攻撃アニメーションと共に攻撃がくりだされるようにになります。
私はこのプラグインが使いたかったのですが
こういう機能は求めていなかったので困ってしまいました。
これを通常のタイムラグのない状態にもどすにはどうすればいいのでしょか?
プラグインにくわしい方よろしくお願いします。
アバター
Trb
記事: 151
登録日時: 2015年11月15日(日) 19:26
連絡する:

Re: YanflyさんのBattle Engine Coreについて

投稿記事 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 という数字が攻撃時に発生するウェイトの値なので、小さい数字に書き換えればいいです。
jaja
記事: 148
登録日時: 2015年12月30日(水) 17:47

Re: YanflyさんのBattle Engine Coreについて

投稿記事 by jaja »

Trbさん、ありがとうございます!おかげで遅延がなくなりました。遅延というか仕様だったのですね。
プラグインはわからないので助かりました。
jaja
記事: 148
登録日時: 2015年12月30日(水) 17:47

Re: YanflyさんのBattle Engine Coreについて

投稿記事 by jaja »

Trbさんにタイムラグの解消法を教えてもらいwait countを減らし
色々と試したんですが、たとえ値を1や0にしても何か遅いなと思い、このプラグインをOFFにしてテストプレイをしたら
スムーズスピーディーに戦闘が展開され、やはりまだ攻撃が一瞬遅れていることに気づきました。
なにがおかしいんでしょうか?
アバター
Trb
記事: 151
登録日時: 2015年11月15日(日) 19:26
連絡する:

Re: YanflyさんのBattle Engine Coreについて

投稿記事 by Trb »

うーん、パラメータの『Animation Base Delay』はいくつにしてますか?
これがアニメーションの基本ディレイ値なので、大きい数字にしてるとアニメーションが出るのが遅くなります。

これを0にしててもまだ遅いということだとちょっと分かりません・・・
他のプラグインも入れてるならそっちの影響かもしれませんね。
jaja
記事: 148
登録日時: 2015年12月30日(水) 17:47

Re: YanflyさんのBattle Engine Coreについて

投稿記事 by jaja »

Trbさん、いつも返信有り難うございます。

私も色々やってみたんですが結局のところ、わかりませんでした。
一応新しいプロジェクトを作ってこのプラグインのみ導入し
wait countを減らし、animation base delayも0にしたり減らしたりしてみましたが、改善できませんでした。
一つだけ言うと何のプラグインもなしの初期状態のツクール戦闘だと左上のテキストログの表示と
同時(あるいはほぼ同時)でアニメーションが発動し攻撃していることに気づきました。
しかしこのプラグインの場合、wait countをいくら減らしても
テキストログの表示後にアニメーションがでるという形でした。
「ハロルドの攻撃!」と明確に表示されたあとにびしっと攻撃アニメーションがでるような形で。
助力していただきありがとうございます、やっぱりわからないですね。
アバター
リアン
記事: 36
登録日時: 2016年4月16日(土) 12:40

Re: YanflyさんのBattle Engine Coreについて

投稿記事 by リアン »

はじめまして
jsフォルダ内にあるrpg_sprites.jsをメモ帳で開き840行目あたりに、

Sprite_Actor.prototype.motionSpeed = function() {
return 12;
};

という記述があるので、return 12 の部分を変更してみてはどうでしょうか?
数字が低いほどスピードが早くなり、他のmotionも同様に早くなるので注意が必要ですが
メモ帳を使っての書き換えで大丈夫です。
念のため 「プロジェクトの保存」 を行ってから戦闘テストしてみながら調整してみて下さい
jaja
記事: 148
登録日時: 2015年12月30日(水) 17:47

Re: YanflyさんのBattle Engine Coreについて

投稿記事 by jaja »

はじめましてリアンさん、教えていただきありがとうございます。

教えていただいたreturn 12;の
12から数字を1や0にしてみるんですがやっぱり、変わりがないですね。
テキストがパッとでてから、そのあとに攻撃をしまして。
デフォルトのツクールのバトルでは打撃や斬撃などがテキストログと共にスッと出るんですけどね。
アバター
リアン
記事: 36
登録日時: 2016年4月16日(土) 12:40

Re: YanflyさんのBattle Engine Coreについて

投稿記事 by リアン »

そうですか...
ちなみにログ表示をシンプルにするSimpleMagSideViewは導入されてますか?
アバター
Trb
記事: 151
登録日時: 2015年11月15日(日) 19:26
連絡する:

Re: YanflyさんのBattle Engine Coreについて

投稿記事 by Trb »

あぁー、なるほど、メッセージが出てから動き始めるまでの間が遅いんですね。
たしかにその部分を注意して見ると遅かったです。

原因を調べてみたところ、デフォルトでは
キャラの移動、攻撃モーションのセット、アニメーションのセット、メッセージとメッセージウェイトのセット
という流れになっているのですが、そのプラグインでは
メッセージとメッセージウェイトのセット、キャラの移動、攻撃モーションのセット、アニメーションのセット
という流れになっているみたいです。
通常はアニメーションをセットした後にメッセージのウェイトが来るために、アニメーションを再生してる間にウェイトが消費されるのですが
そのプラグインでは最初にメッセージのウェイトがセットされるために次の処理も遅れてしまうということです。

根本的に解決するのは結構大幅に改変しないといけなくて大変そうなので、大雑把な解決法としては、プラグインの適当なメソッドとメソッドの間に

コード: 全て選択

Window_BattleLog.prototype.messageSpeed = function() {
    return 0;
};
と追加すればいいです。
こうすると複数行に渡るメッセージを表示する時に全行が纏めて表示されてしまいますが、試してみたところそれほど違和感はないと思います。
(全行まとめて表示されるのは嫌だ!という場合は return 0;の部分を4や5など妥協できる範囲で小さめの値にして下さい)
返信する

“MV:質問”に戻る