Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Elbow flap for VR arm placement?

Discussion in 'VR' started by kritoa, May 29, 2019.

  1. kritoa

    kritoa

    Joined:
    Apr 21, 2017
    Posts:
    60
    Hey, I’m trying to get like a quick, not perfect but 90% acceptable placement for the player’s virtual elbow (with just head and hand trackers).


    My linear algebra and math is pretty decent - I have 90% good enough shoulder placement and I’ve rolled my own quick IK system to join up the shoulder and wrist with an upper arm->elbow->lower arm chain and it’s all working alright.


    My issue is with trying to decide on a decent flap direction for the elbow. Is there a simple, decent 90% good enough algorithm/method for placing that?


    The best I’ve found so far is the simplest, just taking the vertical line through the wrist (if extending hand for a handshake, the up-down axis) and aligning the elbow to that down axis, and that works really well and is also really stable, but the one thing it misses badly on is, uh... if you cover your eyes by putting your palm and fingers across your face, in real life your elbow goes pretty high and out, but if you align the IK elbow with the down axis of the wrist, the virtual elbow ends up very low, next to your ribs. You can force the virtual elbow high by rotating your hand into a salute pose, but in real life, the elbow position doesn’t change much between a salute and a “cover your eyes” pose.


    I’ve tried a bunch of modifications and approaches and sometimes I can get that “cover the eyes/shield block” pose with the elbow up while still having the elbow downwards when in handshake pose, but those more complicated approaches always have some undesired instability somewhere where the elbow will flip badly if you put your wrist in a weird position, etc.


    Anybody have any pointers to quick and good enough methods for this?