While this might be by design (and if so, then could you offer an explanation / solution?), I believe I have confirmed a bug where, given a similar basic structure, Pawns with a scene component will never collide with anything. They must instead have a collision component as the root component.
[Assuming you have some basic movement implemented within the current player controller]
Create a new Pawn. Attach an explicit SceneComponent as the root. Attach child BoxCollision, StaticMeshComponent, and FloatingPawnMovement components (all on an equal level).
Create a new Pawn. Attach a BoxCollision component as the root. Attach child StaticMeshComponent, and FloatingPawnMovement components (both on an equal level).
Set both of the collision components to be âPawnâ and both of the StaticMeshComponents to be âNoCollisionâ.
The 1st pawn will pass right on through any obstacles you have, including âBlockAllâ walls while the 2nd pawn will collide properly.
by âcreate a new pawnâ did you mean create new bluprint based on pawn or just put already exist character blueprint on level?
note that character blueprint isnât pawn based, itâs âcharacterâ class based blueprint, in this case you may see that character have âcapsule componentâ that have collision instead of mesh itself, because character mesh too complex and simple capsule wonât waste so much resources as mesh
No, I mean the literal âPawnâ class. I created 2 new Blueprint Classes, each derived from the Pawn class (not DefaultPawn). I set the root of one to be a scene component and the root of the other to be a collision component. Even if you attach a collision component to the SceneComponent-rooted Pawn, only the Pawn with the collision component as its actual root will end up having hard-collisions (triggering âhitâ events) with other blocking objects.
I already have both Generate Overlap Events and Generate Hit Events checked. Both events for both components (mesh and collision) are all hooked up to print string functions. Nothing prints at all when the scene component is the root. Everything works properly when the collision component is the root.
I created the pawns as similar as I was able to based on the information that you provided. After placing these two blueprints within my project, I realize that one is not able to be walked through by a Pawn while the other is. So are you stating that these individual pawn blueprints used as character pawns will walk through objects, but not when placed around the scene?
I wanted to let you know that I reached out to our Developers and the behavior from these blueprints are expected. By default, the root component is selected to be moved (itâs the UpdatedComponent of the MovementComponent), which can have another component selected if desired. However, we only support collision for the component that is selected (attached components are teleported).
We plan to update the comment on MovementComponent, FloatingPawnMovement and RotatingMovementComponent in 4.9.
Normally the root component of the owning actor is moved, however another component may be selected (see SetUpdatedComponent()).
During swept (non-teleporting) movement, only collision of UpdatedComponent is considered, child components will be teleported to the end location.
Also, by selecting something other than the root component, youâd move that component and its children, not the root component (and therefore not the entire actor). It would be a relative change in location of the selected component.
I hope this information is useful to you and if you have any further questions, please let us know! Have a great day!
Just wanted to say thank you from the future for this stellar answer! âSet Update Componentâ was exactly what I needed, as soon as you set the collision sub-component with that, it works just as expected. Thanks again!
Hey from the future! Iâm having the same issue so thanks for having looked into this. I have 3 scene components in a pawn followed by a mesh in that hierarchical order. Itâs this mesh I want to have collisions happening on but do my moves with the top/root scene component.
Iâve tried to attach the âset component updateâ to my mesh but it will not recognize it as itâs not of the right type.
Can you explain a bit further how you set this up please? Iâm using blueprint only. I also canât access this without having a movement component in my pawn⌠so for ânormalâ movements this wonât work?