[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
分身と言ってもダークネスイリュージョンの様な
意図した分身では無く、分身しちゃったバグについてです
分身が何故起こるのかについては
当然色々な場合がありますが
その中でも特に多いと思われる物を書いてみます
基本的に、分身はヘルパーの使用によって起こります
ヘルパーとして呼び出したキャラが本体に変身してしまう、という事です
ヘルパー、ストライカーとして呼び出す場合もあれば、飛び道具として呼び出す場合もありますが
ここでうっかり、ヘルパーは独立した物だと考えてしまいます
当然、ヘルパーと言えど、本体のアニメーションやステートを参照する訳ですから
ステートを変更されてしまうと、本体のステートに移動して、本体のアニメが表示されます
ヘルパーを出したら着地した時に本体に変身した、とか
ヘルパーがダメージを食らったら本体に変身した、とか
ヘルパーが当身を取られて本体に変身した、とか
ヘルパーの攻撃が相手の攻撃とかち合って本体に変身した、とかとか
これらが特に良くある事例でしょうか
飛び道具が相手の飛び道具にぶつかって…なんてのもありますか
着地で例を挙げると
statedef 3000 というヘルパーを、空中から呼び出すようにしていたとします
このヘルパーは、changestateをpos Y >= 0 で指定しています
これなら、地面に接した時、次のステートに移ってくれるはず…なのに、変身した上に
行動不能の木偶になってしまう…
これは、statetype = Sになっているとpos Yに接地→コモンステートのステート52(着地ステート)に強制移動
となる為、分身が発生する訳です
さて回避方法はそれぞれですが、
打撃を食らった時~、ならば、hitoverrideでステートを移動させられますし、当身を無効化出来ます
前述した着地などの場合はpos Y <= 0 のトリガーでchangestateすれば、変身しませんし自然です
また、この時statetypeがNで無いと、着地して変身してしまいますので注意です
ひとつ回避出来ない物として、reversdefがあります、攻撃がかち合った時に
changestate出来る代物ですが、hitoverrideよりも強力な為、これを持った攻撃が
ヘルパーなどに当たると分身してしまいます
さて、分身の話からは少し離れますが
空中から発生させたヘルパーを地面で着地させたいのに、地面に埋まっちゃう
ちゃんとpos Y = 0にしてるのに…というのがありますね
速度が速い場合、振り切っちゃう事があります、ので、pos Y <= 0 としておくと
大分良くなりますが、これでも少し地面に埋まっちゃう事があるので
pos Y <= -10くらいにして、次のステートで
type = posset
trigger1 = time = 0
pos Y = 0
というステートを入れてやれば、きれいに行きます