Motion Controller Collision Problem

Problem:
Can’t generate hit or overlap events on/from tracked motion controllers.

More information:
Anyone had any luck adding collision detection to hand tracked meshes? I’ve ticked generate hit events on, made sure all the collision boxes are set to block, made sure it has a collision bound, even turned overlap on. My tracked hands just phase through everything and I can’t trigger a single collision/overlap event .

Edit: Overlap events will trigger but only if all events are set to overlap. Once set to block, overlap no longer will trigger (block won’t trigger in any configuration).

I have gotten this to work but don’t have the project in front of me. If you don’t have an answer by Monday I’ll take a look and respond with details. One thing I do know I had to be careful of was that if my hand meshes were set to “Block” they could inadvertently get stuck below my floor if I didn’t make sure they were placed in my pawn in a location that would avoid this. Doesn’t sound like that’s an issue you’re having, though.

The motion controllers/hands work fine, only collision and overlap won’t trigger. I have full tracked movement. Replacing the hands with a box with hit events on don’t generate events either.

Eirinn, I was able to get this working in a very simple project. I think what you’re wanting is to be able to interact with objects in a physics-based realistic way, correct? Here were the important pieces to making that work…

  • Objects that you want to be able to interact with should be set to “Moveable”, have Physics > Simulate Physics ticked on, and have Collision set to the “PhysicsActor” preset.
  • In your character/pawn, the motion control components should have their collision set to the “BlockAllDynamic” preset.
  • The meshes representing the players hands should be nested within the motion control components and should have their collision set to the “BlockAllDynamic” preset.

With this set up I was able to knock items around with my virtual hands. If you run into problems with this approach let me know.

Thank you for the reply! Getting that far would be great. Right now I’m just looking at generating hit events honestly. Skeletal mesh is nested within motion controller and has block all dynamic to true along with generate hit and overlap events. The only thing I can generate is overlap. If I switch to block, overlap events stop triggering. Ideally I’d like them both. Block all dynamic is in the object that needs the hit/overlap event. I even tried switching block dynamic and generate hit/overlap on everything with no change in outcome. It’s really frustrating.

I did a bit more work. I am able to get the behavior I think you want by doing the following…

  • Objects in the world that I want to interact with are set to “BlockAll” and have their “Generate Overlap Events” tick box turned on. (Although you really don’t need any collision enabled for the motion controller components themselves)
  • In my pawn, the motion controller components and hand meshes both have their collision set to the “Trigger” preset and have “Generate Overlap Events” ticked on.

With this setup I’m able to use the “OnBeginOverlap” event node in my pawn blueprint (referencing the appropriate hand mesh) to intercept this events and print out a simple string to the screen.

Hi,

Your problem occurred a looooong time ago, but I faced the exact same problem this week… And eventually found the solution ! This is not because of the motion controllers themselves, but because we MUST use any Collision components, even if some component have a Collision attribute in its Details panel.

My motion controllers could interact with an actor thanks to the following setup :

  • A Motion Controller Component owning a Skeletal Mesh (for its graphical representation) and a Sphere Collision
    Sphere Collision's Details panel :
    • Tick "Simulation Generate Hit Events"
    • Collision Presets : BlockAllDynamic
  • An Actor with a Static Mesh Component
    Static Mesh Component's Details panel :
    • Tick "Simulate Physics"
    • Collision Presets : BlockAllDynamic
    • Add a Component Hit or Event Hit, both should work now

Have fun

1 Like