戦闘中にアクターではなくアクターのホームポジションにアニメーションを表示する方法
Posted: 2016年12月05日(月) 18:25
こんばんは
さっそく表題の件なのですが
戦闘中に召喚のような形でパーティーにアクターを加える際に
後ろから歩いて登場するのがちょっと違うなと思い
戦闘中アクター登場時の位置を指定するプラグインを作ってみました。
その際に戦闘アニメーションを再生できればなおかっこいいなと思いつきやってみました。
ですがアクターにアニメーションが追従する形で動くのが嫌だなーと思いまして。
なのでパラメータで指定した登場位置、それとアクターのホームポジション
それぞれでアニメーションを表示させる方法があれば教えていただきたいです。
よろしくお願いします。
プラグインを添付しておきます。
さっそく表題の件なのですが
戦闘中に召喚のような形でパーティーにアクターを加える際に
後ろから歩いて登場するのがちょっと違うなと思い
戦闘中アクター登場時の位置を指定するプラグインを作ってみました。
その際に戦闘アニメーションを再生できればなおかっこいいなと思いつきやってみました。
ですがアクターにアニメーションが追従する形で動くのが嫌だなーと思いまして。
なのでパラメータで指定した登場位置、それとアクターのホームポジション
それぞれでアニメーションを表示させる方法があれば教えていただきたいです。
よろしくお願いします。
コード: 全て選択
var parameters = PluginManager.parameters('BB_EntryPositionChanger');
var EP1x = Number(parameters['EntryPosition1x']);
var EP1y = Number(parameters['EntryPosition1y']);
var ET1 = Number(parameters['EntryTime1']);
var EA1 = Number(parameters['EntryAnimation1']);
var EP2x = Number(parameters['EntryPosition2x']);
var EP2y = Number(parameters['EntryPosition2y']);
var ET2 = Number(parameters['EntryTime2']);
var EA2 = Number(parameters['EntryAnimation2']);
var EP3x = Number(parameters['EntryPosition3x']);
var EP3y = Number(parameters['EntryPosition3y']);
var ET3 = Number(parameters['EntryTime3']);
var EA3 = Number(parameters['EntryAnimation3']);
//-----------------------------------------------------------------------------
// rpg_sprites.js 874行目
// エントリーポジション
//-----------------------------------------------------------------------------
var _Sprite_Actor_prototype_startEntryMotion = Sprite_Actor.prototype.startEntryMotion;
Sprite_Actor.prototype.startEntryMotion = function() {
if (this._actor && this._actor.canMove()) {
if ($dataActors[this._actor._actorId].note.match(/<EntryPosition1>/i)) {
this.startMove(EP1x, EP1y, 0);
if (EA1 != 0) {
this._actor.startAnimation(EA1, true, 0);
}
this.startMotion('walk');
this.startMove(0, 0, ET1);
} else if ($dataActors[this._actor._actorId].note.match(/<EntryPosition2>/i)) {
this.startMove(EP2x, EP2y, 0);
if (EA2 != 0) {
this._actor.startAnimation(EA2, true, 0);
}
this.startMotion('walk');
this.startMove(0, 0, ET2);
} else if ($dataActors[this._actor._actorId].note.match(/<EntryPosition3>/i)) {
this.startMove(EP3x, EP3y, 0);
if (EA3 != 0) {
this._actor.startAnimation(EA3, true, 0);
}
this.startMotion('walk');
this.startMove(0, 0, ET3);
} else {
this.startMotion('walk');
this.startMove(0, 0, 30);
}
} else if (!this.isMoving()) {
this.refreshMotion();
this.startMove(0, 0, 0);
}
};