【サイトについて】
* RPGツクールMVを使った、ゲームを一層楽しくするためのアイディアや、豆知識、プラグインなどを紹介していきます。あくまで個人の考えに基づく記事ですので、参考程度にお読みいただければ幸いです。
<< 私はサイドビューが好き。 | main | 魔法をかける時に杖を振る >>
スポンサーサイト
0

    一定期間更新がないため広告を表示しています

    | - | |- |
    反撃時にアニメーションを表示させるプラグイン
    0
      反撃する敵を作った時、その反撃行動があまりにも無口なので、
      アニメーション表示を追加するプラグインを作ってみました。



      プラグインをダウンロードする
      (「CounterAnimation.js」というタイトルです。各プロジェクトフォルダのjs/plugin内に入れ、
      プラグイン管理よりCounterAnimationをONにし、AnimationIDパラメータに表示させたい
      アニメーションIDを入力してください)

      ただ、このプラグインちょっと納得いってなくて、反撃行動だと分かる程度の短いアニメーションや、テンポのいい戦闘の場合は問題無いとは思うのですが、まったりとした戦闘の場合は非常に使いづらいプラグインです。
      その理由は、
      アニメーションと反撃行動(ダメージ)が同時に出てしまう
      という点です。

      プラグインの中をひけらかしますと、
       
          BattleManager.invokeCounterAttack = function(subject, target) {
              var action = new Game_Action(target);
              if (AnimationID !== 0) {
                  target.startAnimation(AnimationID, false, 0);
                  action.setAttack();
                  action.apply(subject);
                  this._logWindow.displayCounter(target);
                  this._logWindow.displayActionResults(subject, subject);
              }
          };

      invokeCounterAttack(カウンター行動詳細)の中に、
      単にtarget.startAnimationを入れただけの単純構造のスクリプトですが、
      この関数、アニメーションにウェイトをつけてくれないのです。

      つまりアニメーション再生中に次のaction.setAttack();以降が実行されてしまう。
      「えっ、この青い行の最後の0って、秒数なんじゃないの?」
      と思って最初これに数値入れてみたら全然違って、アニメーション発動までの遅延でした。

      JavascriptはPHPと違ってsleepによるウェイトを挟めなくて、前の処理が終わるのを待たずに実行されるんですよね。
      他の構文いじってワンテンポ遅らせてみたりとか色々やってはみたんですけど、反撃行動自体が発動されなくなっちゃったりして、とりあえず後はよろしくーって感じで詳しい方に丸投げする事にしました。

      これだけならYanflyさんのBattleCore系プラグインでも出来るみたいですが、アニメーション発動即反撃行動は同一みたいでした。
      こういう所が私の素人たる所以なんですね;
      | RPGツクールMVプラグイン | 18:12 |- |
      スポンサーサイト
      0
        | - | 18:12 |- |
        PR