Curve Solver offset? (KineFX)

   4038   9   1
User Avatar
Member
40 posts
Joined: March 2018
Offline
Has anyone figured out how to add an offset to the curve solver?
For example, let's say you have a joint chain that's shorter than the curve itself. Is there are way to make it travel along the curve?
Edited by shareware - Jan. 16, 2021 12:11:27
User Avatar
Member
54 posts
Joined: Sept. 2013
Offline
Have you checked kinefx_tools on git hub:
https://github.com/kamilhepner/kinefx_tools [github.com]


I was showing something that you're looking for there is a handy HDA for that.

Cheers
User Avatar
Member
40 posts
Joined: March 2018
Offline
Hey Hektor, this looks great! Will have an explore.
Cheers
User Avatar
Member
40 posts
Joined: March 2018
Offline
After having a play, I don't think that HDA actually does what I'm after. I need the joints to continue to fit the curve as it is offset. Maybe I'm missing something with it.

Does anyone know of any alternatives? I'm basically rewriting a naive curve solver to do this which probably isn't ideal, but at least I understand what's happening under the hood that way.
User Avatar
Member
54 posts
Joined: Sept. 2013
Offline
There is an issue in the video where I connect it in the wrong way I believe

This is how it should be connected:



0 Input: Your solved spine
1 Input: Stashed original spine
2 Input: Stashed solved spine


Also, you can take a look inside of it. Applying offset is a very simple matrix operation.
Edited by hektor - Jan. 18, 2021 22:04:00

Attachments:
apply_offset_correct_01.PNG (88.2 KB)

User Avatar
Member
40 posts
Joined: March 2018
Offline
Hey Hektor, thanks for your help.
I've attached the setup you've described. Maybe I'm being dense but it doesn't seem to output correctly.
What I'd be after is a simple "U" slider on that HDA that would slide the solved joints along the curve.

I don't see how taking the pose difference between between the unsolved stash and the solved one helps with that. Doesn't that just apply a simple transform to every point?

Attachments:
curveSolverOffsetAttempt.hiplc (211.6 KB)

User Avatar
Member
54 posts
Joined: Sept. 2013
Offline
So sorry Danveen I completely misunderstood it. I've missed that part that you want to slide joints along the curve.
User Avatar
Member
40 posts
Joined: March 2018
Offline
No worries - I've pretty much solved it with some help from odforce. Though it might be quite slow. I save the joint lengths as an attribute , then use them with primuv() to fit each point using an iterative method. You can plug in an offset in the midst of that.

Wondering now whether I need to convert these fitted points to local-rotations down the chain. Need to test if it's required over simply translating the joints.
Edited by shareware - Jan. 20, 2021 06:07:54
User Avatar
Member
54 posts
Joined: Sept. 2013
Offline
Interesting, I think that your solution with VEX is more elegant than my one I took a stab at it and that's what I've got:

Attachments:
curveSolverOffsetAttempt_test.hiplc (219.7 KB)

User Avatar
Member
40 posts
Joined: March 2018
Offline
Using carve is a pretty cool trick, that way you can still use the vops curve solver. Cheers!
  • Quick Links