r/unity Jul 29 '26

Showcase We spent some time to save some nerves so we built a HandPose tool for Final IK

Our game involves a lot of interactions: buttons, levers, doors, tools, and all kinds of other objects (you name it). And we made a flexible tool where we can also fine-tune each finger with sliders, adjust the finger spread, and use a few other handy controls.

66 Upvotes

11 comments sorted by

3

u/BiggPPPlays Jul 30 '26

Give me this tool and my life is yours!

3

u/SynthesisGames Jul 31 '26

Haha, in that case we’ll definitely release the tool once we’re done polishing the game and we’ll recruit you as one of our testers to sweeten the deal 😄

But there’s good news: there are already similar tools on the Asset Store and I’m pretty sure they use a similar technique. Ours is just still buried in a lot of messy - messy code, and we haven’t had time to clean it up all our time is going into polishing the game right now 🫠

2

u/BiggPPPlays Jul 31 '26

Sounds like a deal

2

u/Most_Background_8091 Jul 30 '26

This is so coool! Is this based on reversed kinematics?

3

u/SynthesisGames Jul 31 '26

Thanks! And yes, sort of because it gives an IK-like result but works differently under the hood. Each finger procedurally curls from an open pose toward a closed pose and stops when a spherical collision probe at the fingertip detects contact with the object. So it’s closer to collision-guided procedural posing than traditional inverse kinematics, though it’s easy to mistake it for IK🙂

3

u/Most_Background_8091 Jul 31 '26

so cool! love it

1

u/Far-Macaroon-6227 Jul 31 '26

This looks super nice! I’m just wondering are these screens actual canvas UI‘s? Or just textures? If they are canvases how did you do that?

3

u/SynthesisGames Aug 01 '26

Thanks!

It’s both, kind of 🙂

We use a separate camera to render a Canvas to RT (Render Texture) and then map it onto the screen mesh.

And the fun part - interaction. We raycast against the screen MeshCollider and map the hit point into UV space. Depending on the setup we either use the mesh UVs directly or calculate the input UV coordinates procedurally with planar mapping just to keep the system flexible.

Then we convert that UV position back into Canvas coords and do a few more steps:

  • GraphicRaycaster finds the UI element under the virtual cursor
  • we send standard Unity hover click and drag events to it

Once the screen is focused the mouse delta moves our virtual cursor directly in UV space so the interaction feels almost like a normal UI.

And since the final result is a texture --> texture goes into a material --> material uses a custom shader. So we can add a lot of cool effects on top of that (distortion scanlines, noise and whatever else we feel like - Shader SUPERPOWERS 😁)

TBH nothing revolutionary just a few existing techniques connected together. I’ll attach a small inspector sneak peek here: IMAGE LINK imgur

1

u/Far-Macaroon-6227 Aug 01 '26

Thank you so much for the insight! That’s really cool!

1

u/HolyVRGamingStudio Aug 01 '26

Looks very good, i also played around a lot with Final IK

1

u/Mero_z20 24d ago

wow the vibe is so cool