Weight Painting.

   842   9   1
User Avatar
Member
9 posts
Joined: Aug. 2021
Offline
Hey everyone.
So I'm working on a character and I've finished setting up the skeleton, I plan on using APEX to do the rigging and animation.

However I've been stumped on dealing with the weight painting. I don't want to do it manually (mostly because joint capture layer crashes randomly), so I decided to separate the character mesh into different pieces with a group workflow.

I noticed that joint biharmonic capture refused to weight paint eyebrows_middle or any other joint with that kind of middle, end name instead it opts to just weight one and ignore the rest, so I found that Joint proximity capture works much better.

So basically I'm facing two problems.

1). How do I combine the bone capture from the separated pieces back into the original single mesh (I tried to use the attribute composite from the kinefx tips and tricks video but I couldn't get the node to work at all)?

2). When I weight a piece I saw most people used a smooth node to smooth the bone capture, but when I try it, it just increases the weight pass it's initial point and one joint deforms almost the entire mesh no matter how low I set it.
How do I smooth the capture procedurally?.


Any help would be appreciated guys
User Avatar
Member
529 posts
Joined: Aug. 2019
Offline
Escanut
1). How do I combine the bone capture from the separated pieces back into the original single mesh (I tried to use the attribute composite from the kinefx tips and tricks video but I couldn't get the node to work at all)?

Enumerate SOP to generate an id attribute before you separate mesh into pieces, then Attribute Copy from captured pieces to uncaptured original mesh.

Escanut
2). When I weight a piece I saw most people used a smooth node to smooth the bone capture, but when I try it, it just increases the weight pass it's initial point and one joint deforms almost the entire mesh no matter how low I set it.
How do I smooth the capture procedurally?.

Smooth SOP should work for boneCapture. Report a bug if it doesn't.

But honestly Houdini is probably the worst app to do weight painting ever. Just use something else. As you observed, Joint Capture Layer/Joint Capture Paint crash a lot and SideFX never bothered fixing them. It's the evidence that practically no studio uses them in production.
Edited by raincole - Aug. 4, 2024 20:59:54
User Avatar
Member
9 posts
Joined: Aug. 2021
Offline
raincole
Escanut
1). How do I combine the bone capture from the separated pieces back into the original single mesh (I tried to use the attribute composite from the kinefx tips and tricks video but I couldn't get the node to work at all)?

Enumerate SOP to generate an id attribute before you separate mesh into pieces, then Attribute Copy from captured pieces to uncaptured original mesh.

Escanut
2). When I weight a piece I saw most people used a smooth node to smooth the bone capture, but when I try it, it just increases the weight pass it's initial point and one joint deforms almost the entire mesh no matter how low I set it.
How do I smooth the capture procedurally?.

Smooth SOP should work for boneCapture. Report a bug if it doesn't.

But honestly Houdini is probably the worst app to do weight painting ever. Just use something else. As you observed, Joint Capture Layer/Joint Capture Paint crash a lot and SideFX never bothered fixing them. It's the evidence that practically no studio uses them in production.

That's unfortunate, what app would you recommend?
I only use blender and Maya.
User Avatar
Member
529 posts
Joined: Aug. 2019
Offline
I'd say just stay with Maya. Switching from Maya to Houdini for weight painting is a straight up downgrade.

(Unless you're 100% sure you want do it purely procedurally and never ever hand-paint any weight, ofc)
Edited by raincole - Aug. 5, 2024 05:33:47
User Avatar
Staff
3459 posts
Joined: July 2005
Offline
if JointCaptureBiharmonic is giving youtroubles I would just do it maualy

place down a TetConform and feed your mesh into it
place down a Bone Capture Lines and feed you joints into it

place down a Bone Capture Biharmonic
feed the original mesh into the first input
the result of the tetconform into the second input

I have ALWAYS found this to be a better result than any other capture method I used

there is a (kinda old) tutorial here:
https://www.youtube.com/watch?v=vinCWv20Ib4 [www.youtube.com]
you can skip down to 01:44:30
Michael Goldfarb | www.odforce.net
Training Lead
SideFX
www.sidefx.com
User Avatar
Member
529 posts
Joined: Aug. 2019
Offline
goldfarb
if JointCaptureBiharmonic is giving youtroubles I would just do it maualy

place down a TetConform and feed your mesh into it
place down a Bone Capture Lines and feed you joints into it

place down a Bone Capture Biharmonic
feed the original mesh into the first input
the result of the tetconform into the second input

I have ALWAYS found this to be a better result than any other capture method I used

there is a (kinda old) tutorial here:
https://www.youtube.com/watch?v=vinCWv20Ib4 [www.youtube.com]
you can skip down to 01:44:30

But... this is just exactly what JointCaptureBiharmonic does, isn't it? Why would it be better?
User Avatar
Member
163 posts
Joined: May 2021
Offline
raincole
But... this is just exactly what JointCaptureBiharmonic does, isn't it? Why would it be better?


With skinning weights the weights are references to something internal. The bone calculates weights (line) based on a line and the other uses the joint position (point). That means when the weight blends it calculates from the point in a Joint Capture. The Bone Capture calculates from the line points. I think this gives a more accurate distribution of the weights.

So the JointCapture is making it "move based on an internal point" and the BoneCapture is making it "not move based on an internal line".
Edited by PHENOMDESIGN - Aug. 8, 2024 16:40:40
Brave, Big-hearted Rebel
------
Design the Future, Now.
PHENOM DESIGN
------
Processing smarter, not harder on a M3 MAX 36GB
User Avatar
Member
529 posts
Joined: Aug. 2019
Offline
PHENOMDESIGN
raincole
But... this is just exactly what JointCaptureBiharmonic does, isn't it? Why would it be better?


With skinning weights the weights are references to something internal. The bone calculates weights (line) based on a line and the other uses the joint position (point). That means when the weight blends it calculates from the point in a Joint Capture. The Bone Capture calculates from the line points. I think this gives a more accurate distribution of the weights.

So the JointCapture is making it "move based on an internal point" and the BoneCapture is making it "not move based on an internal line".

I highly doubt it as JointCaptureBiharmonic is just a thin wrapper around BoneCaptureBiharmonic. So it doesn't make sense to claim one gets a better result than the other unless you specify how you do it differently.

@goldfarb didn't specify it: he just described how JointCaptureBiharmonic works internally: BoneCaptureLine + TetConform + BoneCaptureBiharmonic. It is informative but it'll sure get the same result as JointCaptureBiharmonic. Does he supply a different set of parameters to TetConform than JointCatpureBiharmonic's default? To BoneCaptureLine? No way to know, as this critical piece of information is mentioned nowhere.
Edited by raincole - Aug. 9, 2024 01:06:31
User Avatar
Member
163 posts
Joined: May 2021
Offline
@goldfarb's video link and I believe answers the question:



Attachments:
turn_joints_off.png (2.5 MB)

Brave, Big-hearted Rebel
------
Design the Future, Now.
PHENOM DESIGN
------
Processing smarter, not harder on a M3 MAX 36GB
User Avatar
Staff
3459 posts
Joined: July 2005
Offline
yes, I go through it in the tutorial

but the main difference is that jointcapturebiharmonic:
does a bunch of stuff that you don't know about and don't have much control over (and I'd argue don't need)
hides everything from you - so you don't know what is going on, and can't figure out how to fix something if it doesn't give the results you expect.

the biharmonic capture in Houdini is the best that I've ever used, and with some planning, breaking up your mesh into logical pieces, using different resolution tet meshes (see the tutorial) etc will give you the best results
Michael Goldfarb | www.odforce.net
Training Lead
SideFX
www.sidefx.com
  • Quick Links