On Component End OverLapを利用して
エリア外から出ると死亡する様なギミックを作っています。
現状の攻撃の設定では、キャラクターに剣を持たせています。
ゲーム開始時は剣のヒットコリジョンが無い状態ですが
攻撃をすることで、ヒットコリジョンが発生し
剣を振り終わると消滅する様になっています。
そのため剣を振り終わると、On Component End OverLapに設定しているコリジョンから
「コリジョンが消えた=出ていった」と判定されてしまうためか
キャラクターへダメージが入りエリア内でも死んでしまいます。
何故剣のコリジョンが表示された事により、本体のキャラにダメージが入るのかも
イマイチ理解できていないですが・・・。
各On Component End OverLapのコリジョンは剣を無視する様に修正するか、
各キャラクターのCapsuleComponentだけを見るように設定したいです。
上手くお伝え出来ているか不安ですが
よろしくお願い致します。
剣、またはエリア用のCollision Presetを別途用意するのが良いでしょう。
剣がエリアに対してOverlapしないように設定すれば、問題は解決するはずです。
以下、参考資料です
http://unrealengine.hatenablog.com/entry/2014/07/10/231035
状況がよくわかりませんが、攻撃したActorがTest_Characterという認識で良いでしょうか?
上記の様に仮定すると、1つ目の事象は正しいということになります。
OtherActorには、そのCollisionに干渉したCollisionComponentを所有しているActorの参照が入ります。
どのCollisionか判定する、というのであればOtherCompを取る必要がありますが、特定の部位にダメージを与えるなどの用途でない場合はOtherActorで事足りるでしょう
2つ目に関しては、Collisionのプリセット状況がわからないため回答できません
3つ目の質問については、設計次第ですが、ダメージを与える要因となるモノから判定をするほうが楽でしょう。
この場合、Sword側になります。
攻撃を受けた側から処理をすることは可能ですが、攻撃方法などが複雑化するにしたがってダメージ判定も複雑化することになるので、あまりおすすめはしません。
お返事ありがとうございます。
解決出来てからお返事しようかと色々やってる間に1日過ぎてしまいました・・・。
現在コリジョンのHit判定で四苦八苦しております。
解決の報告までしばらくかかりそうです・・・。
無事・・・かどうかは分かりませんが、
下画像のようにPawnかWorldDynamicかを識別して判定を与えるようにしました。
武器のオブジェクトタイプを無理やりWorldDynamicにしているのが気がかりですが
コリジョンの識別が可能になりました!
できればProjectSettigsで武器用のObjectTypeを追加して区別するようにすると、あとから対象を追加したり調整したりするのが楽になります。
検討してみてください
Collisionのプリセット追加出来たんですね。
これで今後の設定が多発した時、かなり楽になりそうです!
何から何までありがとうございました・・・!