# アクターがコリジョンに引っかからないようにしたい

**URL:** <https://forums.unrealengine.com/t/topic/477128>\
**Category:** World Creation\
**Tags:** friction, unreal-engine, Physics, Collision, question\
**Created:** [January 12, 2021, 8:18am UTC](https://forums.unrealengine.com/t/topic/477128 "2021-01-12T08:18:33Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![turbotanaka](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@turbotanaka](https://forums.unrealengine.com/u/turbotanaka)\
**Post date:** [January 12, 2021, 8:18am UTC](https://forums.unrealengine.com/t/topic/477128/1 "2021-01-12T08:18:33Z")

</div>

フライトゲームを作っているのですが、機体と壁や床のコリジョンがぶつかった際にどうしても引っかかってしまいます。特に側面から擦るようにぶつかったり、機体を回転させた場合はコリジョンが壁にめりこんでしまい動かせなくなってしまいます。そのためコリジョンにヒットした際に反発して外側に押し返すようにしたり、回転させた場合もめりこまないようにヒットした部分を支点に回転できるようにしたいです。これらはどのようにすれば改善するでしょうか？

---

<div class="post-metadata">

**Author:** ![Toiro](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Toiro](https://forums.unrealengine.com/u/Toiro)\
**Post date:** [January 12, 2021, 3:43pm UTC](https://forums.unrealengine.com/t/topic/477128/2 "2021-01-12T15:43:10Z")

</div>

On Component Hit イベントのHitから、Breakノードをつなげるとぶつかった部分のロケーションや法線ベクトル(Normal)が取得できると思います。  
(詳細は公式ページをご参照ください。[ブループリントで OnHit Event を使用する | Unreal Engine ドキュメント](https://docs.unrealengine.com/ja/InteractiveExperiences/HowTo/UseOnHit/Blueprints/index.html))

あとはこれをプレイヤーの座標に加えてやったりすればいいと思います。これが解決になっているといいのですが…。

あとこれは根本解決になっていませんが、確かTickでAddActorWorldOffsetノードで移動させるとめり込まなかった気がします。

 ![327023-コメント-2021-01-13-003206.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/8/e/c/8ec51d1535eff7f96914885b0d8c5d15336bffee.png)

---

<div class="post-metadata">

**Author:** ![turbotanaka](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@turbotanaka](https://forums.unrealengine.com/u/turbotanaka)\
**Post date:** [January 15, 2021, 7:10am UTC](https://forums.unrealengine.com/t/topic/477128/3 "2021-01-15T07:10:33Z")

</div>

回答ありがとうございます。移動にはAddActorWorldOffsetを使用しているのですが、やっぱり引っかかってしまいますね。どうやらsweepがキャラクターの回転に対応いないらしく、コリジョンに当たった状態で僅かに回転しただけでめり込んでしまうのだと思われます。他の方法を探してみます。

---

<div class="post-metadata">

**Author:** ![Toiro](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Toiro](https://forums.unrealengine.com/u/Toiro)\
**Post date:** [January 16, 2021, 4:42pm UTC](https://forums.unrealengine.com/t/topic/477128/4 "2021-01-16T16:42:40Z")

</div>

上記のOn Component Hitイベントからヒット時にNormal方向のベクトルを何杯かにしてプレイヤーに加えてやれば、プレイヤーが物体から逃げるように動くブループリントが作れます。試しに少し作ってみました。

 ![327352-コメント-2021-01-17-013906.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/e/6/4/e64227c56466bd27b0711b00a98d11c62c279d66.png)

---

<div class="post-metadata">

**Author:** ![turbotanaka](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@turbotanaka](https://forums.unrealengine.com/u/turbotanaka)\
**Post date:** [January 18, 2021, 5:08am UTC](https://forums.unrealengine.com/t/topic/477128/5 "2021-01-18T05:08:18Z")

</div>

上手くいきました。ありがとうございます。
