sv戦闘シーンのバトルイベントでアクターのsvモーションを呼び出すことは出来ますか?

じよん

ユーザー
下記のrmmz_sprites.js内に記述されているモーションを
戦闘に参加、表示されているアクターを指定、モーションの名前や番号を指定し
バトルイベントで実行させる方法はありますか?

JavaScript:
Sprite_Actor.prototype = Object.create(Sprite_Battler.prototype);
Sprite_Actor.prototype.constructor = Sprite_Actor;


Sprite_Actor.MOTIONS = {
    walk: { index: 0, loop: true },
    wait: { index: 1, loop: true },
    chant: { index: 2, loop: true },
    guard: { index: 3, loop: true },
    damage: { index: 4, loop: false },
    evade: { index: 5, loop: false },
    thrust: { index: 6, loop: false },
    swing: { index: 7, loop: false },
    missile: { index: 8, loop: false },
    skill: { index: 9, loop: false },
    spell: { index: 10, loop: false },
    item: { index: 11, loop: false },
    escape: { index: 12, loop: true },
    victory: { index: 13, loop: true },
    dying: { index: 14, loop: true },
    abnormal: { index: 15, loop: true },
    sleep: { index: 16, loop: true },
    dead: { index: 17, loop: false }
};
 
最後に編集:
「スクリプト」を使えば、モーションの指定は可能です。
例えば、1番のアクターのモーションをdeadにしたい場合、
バトルイベントに以下のように書きます。
JavaScript:
$gameActors.actor(1).requestMotion("dead");
ただし、他のモーションに切り替わるタイミングが早いため、
実際に試してみると、場合によってはほんの一瞬だけそのアクションを取り、
すぐに元のモーションに戻ってしまうことが多かったです。

もし、「こんなシチュエーションでこんなモーション変更を行いたい」というのが
具体的になれば、もう少しお力に慣れるかもしれません。
 
最後に編集:

じよん

ユーザー
情報ありがとうございます
戦闘のシーンでは次の命令まで指定したモーションを実行する、ではなく
現在実行させるモーションを常に監視している、という感じなのでしょうか
指定した値でその監視をウェイトさせる、実行したモーションを優先して更新を待たせる
もしくは監視を停止、再開する事ができれば演出として使えそうだなと感じました

具体的な用途については、そういった事が可能だと判明すれば
それを元に出来る範囲で演出を考える、という風に思っています
 
それでは、上記の、requestMotion が呼び出されているところを、
コアスクリプトrmmz_object.jsから検索すれば、大体の事は分かると思います。

システム上は、モーションを常に管理しているのではなく、
requestMotionを行うことによって、そのアクターのモーションを変更しているからです。

なので、「これをやっている間は、モーションを変更したくない」といった場合は、
その関数に、その条件を追加してやる、などすればよいですし、
いろんな方法があると思います。

以上、お役に立てば。
 
トップ