Curve Solver offset? (KineFX)

   382   9   1
User Avatar
Member
31 posts
Joined: 3月 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 danvenn - 2021年1月16日 12:11:27
User Avatar
Member
51 posts
Joined: 9月 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
31 posts
Joined: 3月 2018
Offline
Hey Hektor, this looks great! Will have an explore.
Cheers
User Avatar
Member
31 posts
Joined: 3月 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
51 posts
Joined: 9月 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 - 2021年1月18日 22:04:00

Attachments:
apply_offset_correct_01.PNG (88.2 KB)

User Avatar
Member
31 posts
Joined: 3月 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
51 posts
Joined: 9月 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
31 posts
Joined: 3月 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 danvenn - 2021年1月20日 06:07:54
User Avatar
Member
51 posts
Joined: 9月 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
31 posts
Joined: 3月 2018
Offline
Using carve is a pretty cool trick, that way you can still use the vops curve solver. Cheers!
  • Quick Links