【UE4】Paper2Dで攻撃コリジョンと被ダメコリジョンを同時に扱うには
Paper2DのSpriteって複数のコリジョンをつけても個別に判定ができない。だから、これは被ダメ(身体用)とか、これは攻撃(武器)とかの判定ができない。
でどうするかを考えていたんだけど、
被ダメ用と攻撃用でSpriteを分けて、重ねて表示する
のがよさそうだった。
↓のような感じで、被ダメ用のコリジョン(左)と、攻撃用のコリジョン(右)の2つのSpriteを用意して重ねて表示する。Spriteは絵がなくても(Textureの指定なし)でもエラーは起きなかったので、攻撃コリジョン側はコリジョンだけのSpriteにできる。
とはいえ絵がないとコリジョンはつけづらいので、元のSpriteを複製してコリジョンをつけてからTextureをクリアすればOK。またコリジョンをつけなおしたいときはTextureをいったん復活させれば元に戻る。
Spriteを二つに分けると↓のようにそれぞれ別で判別できるようになる。
Sprite(Sprite0)→被ダメ用
AttackCol→攻撃コリジョン用
Overlapもそれぞれで判別できるようになる。
FlipBookでアニメーションさせている場合は、本体のアニメーションに合わせて攻撃コリジョン側のFlipbookもフレームを合わせる必要があるし、再生タイミングもきっちり揃えないとタイミングがずれちゃうかも。
↓本体のアニメーションと同じタイミングで攻撃コリジョンを切り替える必要がある。