Download

How to make the VR hands' collision as complex shape which seperate each finger BUT not a shpere?

how to make the VR hands’ collision as complex shape which seperate each finger BUT not a shpere?
thanks!

One way is to add a physics asset to the hand skeletal mesh.

Note that using physics assets on mirrored meshes is broken in 4.26, so you would have to remake one of the hand meshes if you use the default UE4 mannequin hands.

thanks!
so VR hands’ collision as complex shape which seperate each fingure;
meanwhile despite the presice Collision, I still want it be able to Grab ragdoll by Physics Handle and StaticMesh by AttachComponentToComponent, in order to do this, I NOW use SpereTrace which is just like a bounding sphere of the hand.
Is it good to keep these 2 shape working together?
OR is there other better way to do this? eg. don’t use Trace BUT use OnOverlap?
thanks!

I did this for a client a few months ago and ran into the same physics asset issue Rectus mentioned. In fact, for whatever reason, the physics assets just wouldnt work right and shapes were snapping in the wrong orientation - it was a nightmare.

What ended up working is a kind of brute-force collision method; I disabled collision on the skeletal mesh, attached small sphere collisions to the skeletal mesh as a child, set their parent bone, and adjusted transforms from there to position each sphere at the fingertips and knuckles. 8 sphere collisions per hand isnt the most optimal solution, but it worked for the client so I thought Id share.

thanks. and maybe IK is another solution?

wasn’t it should be 10 or 15 or more sphere collisions :joy:

so when you did this wonderful job, your charactor can “touch” object by each finger, right?

and I wonder that how to do other things besides collision, eg. grab. many demos do Grab using grips and maybe along with some Trace method whether lineTrace or SphereTrace. so if used SphereTrace, it will be very tricky to set the position and size of the Sphere, in order to do more things like Grab other than collision.
Or, is this Grab able to be realized by do things in OnOverlap…or some function responding events? maybe it’s much better than using Trace method.
thanks!

lol good catch XD

Yeah, the hands could physically interact with the world, the job was making effects like brushing your hand over the end of a broom, or using your hand to draw a curtain - physics-based things like that.

For checks like that, you can use ‘Get Overlapping Components’ and ‘Get Overlapping Actors’ works for seeing if the hand is touching something. For, like, picking up objects with the hand or performing an action only while the hand is touching something, id make an event and check for the overlapping actor you want.

do you used VR Expansion Plugin
it seems very popular. just found it, donot know if it already support this functionality

Nah, I develop from the ground up in most cases, but Ive used VR Expansion and its certainly a good starting point. Im not sure if it does hand/world collision, though. Been a while lol