{"id":49,"date":"2021-11-06T09:54:48","date_gmt":"2021-11-06T09:54:48","guid":{"rendered":"https:\/\/stefan-zaruba.at\/?p=49"},"modified":"2021-11-13T17:10:02","modified_gmt":"2021-11-13T17:10:02","slug":"collisions-overlaps-and-traces","status":"publish","type":"post","link":"https:\/\/stefan-zaruba.at\/index.php\/2021\/11\/06\/collisions-overlaps-and-traces\/","title":{"rendered":"Collisions, Overlaps, and Traces"},"content":{"rendered":"\n<p>In this article, we explain everything to do with collisions, overlaps, and traces.<\/p>\n\n\n\n<h4>Related Material<\/h4>\n\n\n\n<ul><li><a href=\"https:\/\/www.unrealengine.com\/en-US\/blog\/collision-filtering\">https:\/\/www.unrealengine.com\/en-US\/blog\/collision-filtering<\/a><\/li><\/ul>\n\n\n\n<h4>Special Behavior<\/h4>\n\n\n\n<p>There is some unexpected (at least for me) behavior that might be confusing at first:<\/p>\n\n\n\n<ul><li>Collision detection (blocking) while sweeping an Actor seems to work only for translation and not for rotation. (UE 2.26) That is, <code data-enlighter-language=\"cpp\" class=\"EnlighterJSRAW\">bSweep=true<\/code> in <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.unrealengine.com\/4.27\/en-US\/API\/Runtime\/Engine\/GameFramework\/AActor\/AddActorLocalRotation\/2\/\" target=\"_blank\"><code data-enlighter-language=\"cpp\" class=\"EnlighterJSRAW\">AActor::AddActorLocalRotation<\/code><\/a> does not trigger collision detection, while for <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/GameFramework\/AActor\/AddActorLocalOffset\/\" target=\"_blank\"><code data-enlighter-language=\"cpp\" class=\"EnlighterJSRAW\">AActor::AddActorLocalOffset<\/code><\/a> it works fine. In the documentation of <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.unrealengine.com\/4.27\/en-US\/API\/Runtime\/Engine\/GameFramework\/AActor\/AddActorWorldRotation\/1\/\" target=\"_blank\"><code data-enlighter-language=\"cpp\" class=\"EnlighterJSRAW\">AActor::AddActorWorldRotation<\/code><\/a> it even says that it is &#8220;not currently supported for rotation.&#8221;<\/li><li>When sweeping an <code>AActor<\/code> with <code>AActor::AddActorLocalOffset<\/code> or <code data-enlighter-language=\"cpp\" class=\"EnlighterJSRAW\">AActor::AddActorWorldOffset<\/code>, collision will only be calculated for its root component. All other components will not trigger collision events. For example, if we have a UCapsuleComponent as the RootComponent and a UStaticMeshComponent attached to it, the UCapsuleComponent will block movement on collision with other actors, while the MeshComponent will clip through other actors.<\/li><li>When scaling a Component in one or two dimensions, the collision volume seems to stay on the unscaled version.<\/li><\/ul>\n\n\n\n<h4>General Overview<\/h4>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we explain everything to do with collisions, overlaps, and traces. Related Material https:\/\/www.unrealengine.com\/en-US\/blog\/collision-filtering Special Behavior There is some unexpected (at least for me) behavior that might be confusing at first: Collision detection (blocking) while sweeping an Actor seems to work only for translation and not for rotation. (UE 2.26) That is, bSweep=true &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/stefan-zaruba.at\/index.php\/2021\/11\/06\/collisions-overlaps-and-traces\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Collisions, Overlaps, and Traces&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/stefan-zaruba.at\/index.php\/wp-json\/wp\/v2\/posts\/49"}],"collection":[{"href":"https:\/\/stefan-zaruba.at\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stefan-zaruba.at\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stefan-zaruba.at\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stefan-zaruba.at\/index.php\/wp-json\/wp\/v2\/comments?post=49"}],"version-history":[{"count":13,"href":"https:\/\/stefan-zaruba.at\/index.php\/wp-json\/wp\/v2\/posts\/49\/revisions"}],"predecessor-version":[{"id":81,"href":"https:\/\/stefan-zaruba.at\/index.php\/wp-json\/wp\/v2\/posts\/49\/revisions\/81"}],"wp:attachment":[{"href":"https:\/\/stefan-zaruba.at\/index.php\/wp-json\/wp\/v2\/media?parent=49"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stefan-zaruba.at\/index.php\/wp-json\/wp\/v2\/categories?post=49"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stefan-zaruba.at\/index.php\/wp-json\/wp\/v2\/tags?post=49"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}