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

Additional constraints #3

Open
jsantell opened this issue Apr 23, 2018 · 5 comments
Open

Additional constraints #3

jsantell opened this issue Apr 23, 2018 · 5 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@jsantell
Copy link
Owner

Currently, only IKBallConstraint is implemented, limiting the joint in by X degrees from its origin state. The FABRIK paper describes ways to implement more complex constraints with irregular cone areas and hinge constraints, but a bit stumped on how to implement that.

@jsantell jsantell added enhancement New feature or request help wanted Extra attention is needed labels Apr 23, 2018
@bradley-newman
Copy link

Pole Vector constraints are pretty common for constraining the rotation plane of elbows and knees, etc. https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/CSCo-Pole-Vector-constraints-htm.html

@jsantell
Copy link
Owner Author

Pole vectors would be great. Would that be a constraint type, or be its own solver? In other words, could it work with either CCD or FABRIK handling the solving, with the pole vector influencing the result? It's been awhile since I've used pole vector constraints in Maya, but this should work beyond a 3-joint shoulder-elbow-hand configuration, yeah?

@bradley-newman
Copy link

I've only used them as constraints. Don't honestly know enough about the details of the rest of the things you mentioned.

@zalo
Copy link

zalo commented Apr 30, 2018

The naive way to implement "pole constraints"/attractors in FABRIK is to simply pull the joints toward the attractor a little bit before doing an IK solve. The joints preserve their "pulled" state even after the IK solve is run. The same thing can be done for a facsimile of gravity (where each joint is just offset downward a little bit every frame, in between solves).

CCDIK might do it by rotating all of the joints to face toward the attractor (well, in the direction of the base joint to the attractor) before doing a solve. The "pulled" state will still get preserved somewhat in CCDIK, but perhaps not as cleanly as it is in FABRIK.

@sneha-belkhale
Copy link
Contributor

hey -- so I am using this library to procedurally animate a quadruped, and since the BallConstraint isn't really suitable for limb joints, I started to add a HingeConstraint.

Seems like it's working so far, I can post more details later in a PR, but just wanted to let you know~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants