Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hand tracking support + elbows without controllers #149

Merged
merged 5 commits into from Apr 12, 2022

Conversation

Erimelowo
Copy link
Member

@Erimelowo Erimelowo commented Apr 5, 2022

This extends the HMD skeleton to support arm tracking. We do end up with kinda duplicate bones tho because of elbow tracking skeletons (from the controllers)

Basically: The HMD skeleton handles arm tracking and the Controller skeletons handle elbow tracking (even if the user is using arm tracking). If the skeleton doesn't find a controller, it'll use the SlimeVR hand from the HMD skeleton. It uses the elbow from the shoulders to hand chain.
This makes it so:

  • If user has controllers: elbows go from controllers with tracker on lower arm and possibility for upper arm tracker.

  • If user has no controller (or no feeder app) and enables Elbow SteamVR trackers: elbows go from chest/shoulders, using an upper arm tracker.

  • If user has no controllers and enables Hand SteamVR trackers: SteamVR trackers on the users hand appear using upper arm, forearm and hand trackers. Use chest tracker as well for more precision!

This also adds a lot of body proportions. Very fun.

Main use of this is for mocap and vtubing, not VR.

This extends the HMD skeleton to support arm tracking. We do end up with kinda duplicate bones tho.

If user has controllers: elbows go from controllers with tracker on lower arm and possibility for upper arm tracker.

If user has no controller (or no feeder app) and enables Elbow SteamVR trackers: elbows go from chest.

If user has no controllers and enables Hand SteamVR trackers: SteamVR trackers on the users hand appear using upper arm, forearm and hand trackers. Use chest tracker as well for more precision.

This also adds a lot of body proportions...
@Erimelowo
Copy link
Member Author

Erimelowo commented Apr 5, 2022

Also makes my code a whole lot clearer damn.
Now I can understand it myself!!! :P
@Eirenliel
Copy link
Member

Hand tracking support

@Eirenliel
Copy link
Member

If the elbow tracker uses hand tracker to build its own chain, it's bad. Elbow tracker should use either Conroller -> Elbow chain or if controller doesn't exist, Shoulder -> Elbow.

@Erimelowo
Copy link
Member Author

sure, so just change make the computed tracker use either one depending on if there’s a controller or not right :3

@Eirenliel
Copy link
Member

Eirenliel commented Apr 11, 2022

yes, @Louka3000! that would make elbows more precise when using hand tracking, at least.

Instead of moving the controller chains to the slimevr hand, now just make the computed elbows affected by the elbow from the slimevr hand chain.

Also refactored some stuff to replace "upper arm distance" by "elbow offset". Idek if it's useful but it may be so I'm keeping it.
@Erimelowo
Copy link
Member Author

yes, @Louka3000! that would make elbows more precise when using hand tracking, at least.

I don't think it actually makes it more precise because of the way I was doing it (all the offsets were the same back and forth basically), but it did make my code a whole lot better lol.
Should be good now :p

@Eirenliel Eirenliel merged commit ac0cb9e into SlimeVR:main Apr 12, 2022
@Erimelowo Erimelowo deleted the hand-tracking branch April 12, 2022 18:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants