【サイトについて】
* RPGツクールMVを使った、ゲームを一層楽しくするためのアイディアや、豆知識、プラグインなどを紹介していきます。あくまで個人の考えに基づく記事ですので、参考程度にお読みいただければ幸いです。
<< 反撃時にアニメーションを表示させるプラグイン | main | 自作ゲーム専用プラグインを用意しよう! >>
スポンサーサイト
0

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

    | - | |- |
    魔法をかける時に杖を振る
    0
      ハリーポッターの様に魔法をかけるのに魔法の杖を必要とする場合、
      対象に杖を向けて「エクスペクトォォパトロォナァァム!」って感じで詠唱する…
      というスタイルが殆どだと思います。

      RPGツクールMVのデフォルトでは魔法詠唱時に
      両手を広げて詠唱して、杖がどこかへ消えてしまうんですよね



      これじゃ杖買う必要まったく無いじゃないか!!
      というご意見も中には…、
      いや全然なかったんですけど、昨日自分自身でそう思ってしまって、

      ↓こうした方が「らしい」じゃないですか。



      というわけで何とか出来ないかと思って作ってみましたよ。

      必要となるもの
      杖の武器画像
      Javascriptの書き換え(プラグインの作成)
      これだけです。

      「杖の武器画像はデフォルトにあるじゃん」と突っ込みが入るかも知れないのですが、デフォルトの杖はドラゴンボールの亀仙人が持ってる様な杖なので、スタイリッシュじゃ無いというか、若々しさに欠けるというか…。

      というわけで素人ながら作ってみたのです。
      各プロジェクトのimg/systemフォルダにあるWeapon1.pngの、ヤリ(使わないので)画像を改変し、ポッターが振る様な感じの杖を作りました。





      これもっと上手に作れる方、ぜひ作っていただけると嬉しいのですが…(汗)

      また、「ラハと魔法の園」では「ポカル」という名前の、通常攻撃と同じモーションの攻撃方法がありますので、システムタブ[SV]攻撃モーションの「杖」モーションを「突き」にし、画像を新しく作成した杖に変更します。
      これでポカル使用時に杖でボカッと殴る様な仕草ではなく、杖を相手に向けて見えない衝撃波が加えられている様な効果が得られました。

      さて、あとはJavascriptの書き換えです。
      魔法を詠唱する時のモーションはツクール本体側では変更できず、js/rpg_object.jsを書き換える必要があります。

      js/rpg_object.jsの3992行目です。
       
      Game_Actor.prototype.performAction = function(action) {
          Game_Battler.prototype.performAction.call(this, action);
          if (action.isAttack()) {
              this.performAttack();
          } else if (action.isGuard()) {
              this.requestMotion('guard');
          } else if (action.isMagicSkill()) {
              this.requestMotion('spell');
          } else if (action.isSkill()) {
              this.requestMotion('skill');
          } else if (action.isItem()) {
              this.requestMotion('item');
          }
      };

      この赤字の部分ですね。
      「魔法使用時はモーション spell を使え」
      「スキル使用時はモーション skill を使え」
      という命令をしています。

      杖を向けるというモーションに変えたいので、
      ここの処理ではデフォルトでは武器画像を表示する様に作られてないので、
      そのための処理を別途加えてやる必要があります。

      こう書き換えます。
       
          Game_Actor.prototype.performAction = function(action) {
              Game_Battler.prototype.performAction.call(this, action);
              // 武器画像を表示するための準備
              var weapons = this.weapons();
              var wtypeId = weapons[0] ? weapons[0].wtypeId : 0;
              var attackMotion = $dataSystem.attackMotions[wtypeId];

              if (action.isAttack()) {
                  this.performAttack();
              } else if (action.isGuard()) {
                  this.requestMotion('guard');
              } else if (action.isMagicSkill()) {
                  // モーションを突きに変更
                  this.requestMotion('thrust');
                  // 杖画像を表示
                  this.startWeaponAnimation(attackMotion.weaponImageId);

              } else if (action.isSkill()) {
                  // モーションを突きに変更
                  this.requestMotion('thrust');
                  // 杖画像を表示
                  this.startWeaponAnimation(attackMotion.weaponImageId);

              } else if (action.isItem()) {
                  this.requestMotion('item');
              }
          };

      これで魔法を使う時に杖(装備している武器)を使い、
      モーション「突き(thrust)」を実行する様に変更ができました。
      (何で「突き」モーションかと言うと、対象に向けてまっすぐ杖を差し出すからです)

      というわけでこの状態で戦闘テスト。



      どうでしょうか。
      っぽく」なりました?

       
      | 戦闘 | 12:19 |- |
      スポンサーサイト
      0
        | - | 12:19 |- |
        PR