スクリプトでバトラー(エネミーのみでOK)を逆さまにしたい

maker-b
記事: 112
登録日時: 2016年3月27日(日) 22:03
連絡を取る:

スクリプトでバトラー(エネミーのみでOK)を逆さまにしたい

投稿記事by maker-b » 2019年6月11日(火) 00:14

皆様

大変お世話になっております。
質問をさせてください。
タイトルの通り、サイドビューのバトル時に、エネミースプライトを逆さまに表示したいと思っております。
できれば、コモンイベントでやりたいので、

1 var sprite = ターゲットのスプライト
2 sprite.rotation = 180*(Math.PI / 180); //逆さまにする

のようなスクリプトで実現したいのですが、なかなかうまくいきません。

プラグイン等は使わず、あくまでスクリプト(コモンイベント内)で解決できればと思っております・・・

奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: スクリプトでバトラー(エネミーのみでOK)を逆さまにしたい

投稿記事by 奏ねこま » 2019年6月11日(火) 09:02

「ターゲットのスプライト」は

SceneManager._scene._spriteset._enemySprites[n]

で取得できます。nは何番目の敵かを示すインデックスです。
もし何らかのプラグインによって_enemySpritesに想定外のスプライトを入れられている場合は
もう一手間加える必要があります。
maker-b
記事: 112
登録日時: 2016年3月27日(日) 22:03
連絡を取る:

Re: スクリプトでバトラー(エネミーのみでOK)を逆さまにしたい

投稿記事by maker-b » 2019年6月11日(火) 13:37

奏ねこま 様

早速のご回答ありがとうございます!

コード: 全て選択

var sprite = SceneManager._scene._spriteset._enemySprites[1];
console.log(sprite);


ご指定いただきたコードでうまく行かなかったので、コンソールログを見てみると・・・

.rotation 部分が薄いいろになっており、カーソルをちかづけると
invoke property getter と表示されてしまいました。

どうやら、ご指摘の通り、プラグインでrotation部分がカスタマイズされているようです。

どこがROTATIONなのか調べてみます!

ありがとうございます!
取り急ぎお礼まで
添付ファイル
cap1.png
cap1.png (15.31 KiB) 閲覧数: 3062 回
奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: スクリプトでバトラー(エネミーのみでOK)を逆さまにしたい

投稿記事by 奏ねこま » 2019年6月11日(火) 14:11

rotationがカスタマイズされているというか、
_enemySpritesにウインドウが突っ込まれてますね…。
↓のスクリプトでどうでしょうか?

SceneManager._scene._spriteset._enemySprites.filter(s => s._enemy === $gameTroop._enemies[n])[0]

nが敵の番号、末尾の[0]はそのまま[0]としてください。
1.6.0以降用のスクリプトなので1.5.2以前では使えません。
maker-b
記事: 112
登録日時: 2016年3月27日(日) 22:03
連絡を取る:

Re: スクリプトでバトラー(エネミーのみでOK)を逆さまにしたい

投稿記事by maker-b » 2019年6月12日(水) 13:55

奏ねこま 様

回答ありがとうございます!
残念ながらご教示頂いたものは再現しませんでした・・・
調べてみましたら、当方コアのバージョンがver1.5.2でした・・・

改めて、targetをconsoleでじっくり見てみました。
cap4.png
cap3.png
cap2.png


このどこかに、rotationできそうな項目があると思っているのですが、
実は、プラグインを大量に入れていて、スプライトがどう加工されてるのかイマイチわかっていません・・・

影響が大きそうなプラグインだと
yep core
yep battle engine core
yep target core
yep actseq 1-3
yep buffstatescore
yep X_visualstatefx
mog battle motion

ぐらいでしょうか。
なかなか難しいですね・・・・
奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: スクリプトでバトラー(エネミーのみでOK)を逆さまにしたい

投稿記事by 奏ねこま » 2019年6月12日(水) 19:07

SceneManager._scene._spriteset._enemySprites.filter(function(s){ return s._enemy === $gameTroop._enemies[n]; })[0]

1.5.2用
maker-b
記事: 112
登録日時: 2016年3月27日(日) 22:03
連絡を取る:

解決 Re: スクリプトでバトラー(エネミーのみでOK)を逆さまにしたい

投稿記事by maker-b » 2019年6月14日(金) 00:33

奏ねこま 様

お世話になっております。
ご指示頂いた方法では解決に至りませんでしたが、頂いた情報が有益過ぎて助かりました!

具体的に
rotaionの指定位置は
スプライト._enemy._bmotion.idle.rotation
という位置だと思われます。

moghunter様のプラグインで、バトルモーションが大幅にカスタムされており、当初のrotationは使えなく
なっている感じでした。

上記を指定して、180度を指定すると、とりあえずエネミーがひっくり返りました。
親身に対応いただき感謝いたします!

同じ場所でひっくり返った後は、座標もひっくり返るのか、エネミーの位置が大幅にずれてしまうという
新たな課題が発生してしまいましたが、それはこのスレとは違う課題になるので、じっくり考えてみます。

ありがとうございました!

“MV:質問” へ戻る