CaptureLayerPaint-SOP breaks when post-rename joints

   535   4   0
User Avatar
Member
10 posts
Joined: March 2015
Offline
Hi,
I'm still trying to adapt my Maya-TD-workflow to Houdini by learning Apex and KineFX which in general works great. Although there are still some hick ups where I'm not sure if I did something wrong, or it's a bug, or it's just the wrong way of thinking. Anyway ... I was weight painting a simple tube with just 3 joints using the CaptureLayerPaint-SOP. Life was good until renaming the joints of my skeleton -> all the weights are broken. This surprises me to be honest cos I thought to do something simple like a renaming (which happens quite some time when prototyping) especially with all the proceduralism in mind. But again ... I'm pretty sure I DID something wrong.
Thank you so much again!

Best wishes
Frank
Edited by Fraenk - Jan. 29, 2024 06:17:19
User Avatar
Member
219 posts
Joined: March 2023
Offline
if you try to rename your joint post-painting, the skinning information that is stored per point has no way to know that you changed the name of the joint, as the skinning information is associated by name. (the geometry and the skeleton are to fully independant data that relate to each other only by the attribute matching)

if you want to rename your joint and have the skinning follow up, you need to edit the skinning data and rename the joint name there as well, you can use the capture attrib unpack/pack to decompose the skinning information into an array of id and an array of float (weight)
you'll also have a list of bone as a detail attribute, simply rename the bone in that detail array, and then repack it.

attached a little scene we an exemple.
Edited by Jacquesf - Jan. 29, 2024 06:59:30

Attachments:
skinning_rename.hiplc (198.8 KB)

Head of Pipeline @ LightVFX
User Avatar
Member
10 posts
Joined: March 2015
Offline
Solved it by simply renaming the joints after the weight-paint and done. But thank you so much for this example. I'll check this out right away. It also makes completely sense since in Houdini joints are "just" points right? And not specific transform-type/objects like in Maya.
This forum is so excellent cos all of you wizards are lightning-fast with response and extremely supportive anyway how noob-like the questions are. Thank you!
Edited by Fraenk - Jan. 29, 2024 07:05:17
User Avatar
Member
8599 posts
Joined: July 2007
Offline
you can also use Attribute String Edit SOP to edit boneCapture attribute directly without the need to unpack capture weights

you'd need to specify it as boneCapture* instead of just boneCapture for it to work
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
447 posts
Joined: Aug. 2019
Offline
tamte
you can also use Attribute String Edit SOP to edit boneCapture attribute directly without the need to unpack capture weights

you'd need to specify it as boneCapture* instead of just boneCapture for it to work

Whaaaaaaaaaaat

TIL

The captureWeight attribute really works in a mysterious way.
  • Quick Links