KineFX, parenting geometry to bones.
8707 15 2- ventralstreams
- Member
- 34 posts
- Joined: 6月 2006
- Offline
Hello. I am playing around with KineFX and trying to create a rig from scratch. I am stuck at trying to parent non-deforming parts of the geometry (gums and teeth) to their bones. I suppose I have to parent them to the bone's point but I really can't figure out how to do it. I tried to use VOPs but using the KineFX parenting nodes gave me funky results (mainly flipped rotations). If someone could point me to a direction here, I would greatly appreciate it.
Secondary question. The only way I have found to name the bones is to create the skeleton, delete the name attribute and then use a rig doctor node to give them a meaningful prefix. Is there a simpler way to do it that I have missed?
(Also a million more KineFX questions but never mind)
Thank you in advance.
Secondary question. The only way I have found to name the bones is to create the skeleton, delete the name attribute and then use a rig doctor node to give them a meaningful prefix. Is there a simpler way to do it that I have missed?
(Also a million more KineFX questions but never mind)
Thank you in advance.
- mestela
- Member
- 1798 posts
- Joined: 5月 2006
- Offline
- ventralstreams
- Member
- 34 posts
- Joined: 6月 2006
- Offline
- mestela
- Member
- 1798 posts
- Joined: 5月 2006
- Offline
- edward
- Member
- 7871 posts
- Joined: 7月 2005
- Offline
Take a look at the Capture Packed Geometry SOP which is the recommended workflow if you've got both regular skinned geometry and rigid transforms. This allows you to keep all your geometry in the “Skin Geometry” data stream, and all the animated stuff in the “Animated Pose” data stream.
For geometry that's meant to be just rig controllers and such, there's also the Attach Control Geometry SOP which will attach geometry directly to the joint points.
For geometry that's meant to be just rig controllers and such, there's also the Attach Control Geometry SOP which will attach geometry directly to the joint points.
- Ivan L
- Member
- 200 posts
- Joined: 1月 2014
- Offline
Thanks, Can we have an example of a rig based on KineFX, please. it'd help a lot with questions like this.
I'm also not quite sure how to select controls after you attached those with “attachcontrolgeo”, will controls expose after we pack the rig into an hda?
I'm also not quite sure how to select controls after you attached those with “attachcontrolgeo”, will controls expose after we pack the rig into an hda?
Edited by Ivan L - 2020年11月3日 21:39:32
I contribute to the beauty of this world
https://houdininotes.ivanlarinin.com/ [houdininotes.ivanlarinin.com]
https://houdininotes.ivanlarinin.com/ [houdininotes.ivanlarinin.com]
- edward
- Member
- 7871 posts
- Joined: 7月 2005
- Offline
Have you watched any of the HIVE presentations on KineFX? In particular, the Introducing KineFX [vimeo.com] one is a good starter (followed by the KineFX in Games one). Basically, you move the controls with a Rig Pose.
If you want to encapsulate the control geometry into an HDA, this wasn't explained explicitly in the presentation but the steps are basically:
1. Create a new SOP HDA and put a “Compute Rig Pose” node inside
2. On the HDA's Edit Operator Type Properties, put “kinefx__rigpose” as the Default State (Node tab)
3. Save and close the Edit Operator Type Properties dialog
4. Click the “Promote Parameters” button on the “Compute Rig Pose” parameters
5. On the HDA, do Save Node Type and Match Current Definition
6. Move mouse to viewport, hit Esc and then Enter to trigger the new state for the HDA to pose the controls
If you want to encapsulate the control geometry into an HDA, this wasn't explained explicitly in the presentation but the steps are basically:
1. Create a new SOP HDA and put a “Compute Rig Pose” node inside
2. On the HDA's Edit Operator Type Properties, put “kinefx__rigpose” as the Default State (Node tab)
3. Save and close the Edit Operator Type Properties dialog
4. Click the “Promote Parameters” button on the “Compute Rig Pose” parameters
5. On the HDA, do Save Node Type and Match Current Definition
6. Move mouse to viewport, hit Esc and then Enter to trigger the new state for the HDA to pose the controls
Edited by edward - 2020年11月4日 00:38:08
- ventralstreams
- Member
- 34 posts
- Joined: 6月 2006
- Offline
- Ivan L
- Member
- 200 posts
- Joined: 1月 2014
- Offline
Hey, sorry, just tried to replicate the example from the Introducing KineFX [vimeo.com], like on the screenshot. It works, but with some joints, I get the wrong result. I suspect we need to correct orientation, but not sure how.
Should we use the “fullbodyik” node instead maybe?
Should we use the “fullbodyik” node instead maybe?
Edited by Ivan L - 2020年11月4日 18:44:21
I contribute to the beauty of this world
https://houdininotes.ivanlarinin.com/ [houdininotes.ivanlarinin.com]
https://houdininotes.ivanlarinin.com/ [houdininotes.ivanlarinin.com]
- edward
- Member
- 7871 posts
- Joined: 7月 2005
- Offline
I guess whether you want a more traditional rig or animating with the new Full Body IK solver is sort of a preference.
I gave a rough go at playing with this anyways. Changes to the attached file include:
- On the Curve Solver (solvecurve1) VOP
- Fix Look At Axis and Up Axis
- Switching Tip and Root Orientation to Control felt better
- Since the pelvis is being modified by the curve solver, and the legs are children of pelvis, I didn't find an easy way to only tell it to tell it update the upper body but NOT the legs. So I just ended adding second Rig Attribute VOP to add Two Bone IK on the legs.
I gave a rough go at playing with this anyways. Changes to the attached file include:
- On the Curve Solver (solvecurve1) VOP
- Fix Look At Axis and Up Axis
- Switching Tip and Root Orientation to Control felt better
- Since the pelvis is being modified by the curve solver, and the legs are children of pelvis, I didn't find an easy way to only tell it to tell it update the upper body but NOT the legs. So I just ended adding second Rig Attribute VOP to add Two Bone IK on the legs.
- Ivan L
- Member
- 200 posts
- Joined: 1月 2014
- Offline
It's perfect, thank you. I should have tried to adjust axes on the Curve Solver hah.
I contribute to the beauty of this world
https://houdininotes.ivanlarinin.com/ [houdininotes.ivanlarinin.com]
https://houdininotes.ivanlarinin.com/ [houdininotes.ivanlarinin.com]
- Colemapt
- Member
- 4 posts
- Joined: 1月 2020
- Offline
edward
Have you watched any of the HIVE presentations on KineFX? In particular, the Introducing KineFX [vimeo.com] one is a good starter (followed by the KineFX in Games one). Basically, you move the controls with a Rig Pose.
If you want to encapsulate the control geometry into an HDA, this wasn't explained explicitly in the presentation but the steps are basically:
1. Create a new SOP HDA and put a “Compute Rig Pose” node inside
2. On the HDA's Edit Operator Type Properties, put “kinefx__rigpose” as the Default State (Node tab)
3. Save and close the Edit Operator Type Properties dialog
4. Click the “Promote Parameters” button on the “Compute Rig Pose” parameters
5. On the HDA, do Save Node Type and Match Current Definition
6. Move mouse to viewport, hit Esc and then Enter to trigger the new state for the HDA to pose the controls
You are a beautiful soul and this was destroying me, Got everything set up great and then hit this brick wall, Thank you soooo much
- Sunren
- Member
- 3 posts
- Joined: 11月 2011
- Offline
Hello). Someone tried to collect an asset from kinefx nodes and then from the same assets collect another one with the controllers rising to the upper level so that the controllers are displayed. attachment of controllers occurs in nested assets via the attachcontrol node. It is not displayed on my top level. In nested assets, I use default_state with the prescribed state from the kinefx__rigpose documentation. If anyone knows, please help.
LOVE SIDE FX
- edward
- Member
- 7871 posts
- Joined: 7月 2005
- Offline
@sunren Yeah, I'm not sure whether it's a bug or not that only direct child nodes of the HDA are searched for by the kinefx__rigpose state. It might be worthwhile logging an issue asking about this with an example file.
I took a look at
I took a look at
$HFS/packages/kinefx_rig_pose.py
and it looks like you can have a “ViewerStateConfig” HDA section that has a getPoseNodes(node)
python function that returns a list of all the Compute Rig Pose nodes for the state to interact with. You'll also need to take care of promoting all the right parameters up to the outermost HDA level as well or else the handles won't be able to modify parameters that are locked inside the HDA.
Edited by edward - 2020年11月9日 16:44:56
- Sunren
- Member
- 3 posts
- Joined: 11月 2011
- Offline
- strangedays
- Member
- 11 posts
- Joined: 3月 2021
- Online
-
- Quick Links