Weight map systems available?

   Views 10414   Replies 12   Subscribers 2
User Avatar
Member
7046 posts
Joined: 7月 2005
Offline
Hello,
Has anyone done any work on using texture maps to control weighting of points to bones? If not, I'll build my own, but if someone has done some work, and are willing to share, that'd be helpful )
Basically, a texture map that modifies the attributes (Pcapt) that control point to bone weighting. Non-trivial because of the variable number of attributes that may be present. I was thinking of the deep rasters in COPs so the map could be live in COPs, or a CHOPs solution that would more dynamically adapt to changing attribute counts. Of course, I'll have to figure out a way to store strings in CHOPs, perhaps an encode/decode HDK thingy. Or something )
I'm having XSI and Maya envy )

Cheer,s

Peter B
Cheers,

Peter Bowmar
____________
Houdini 20.5.262 Win 10 Py 3.11
User Avatar
Member
212 posts
Joined: 7月 2005
Offline
you will have to make one yourself.
you might want to read the following.

http://odforce.net/forum/index.php?showtopic=2634&st=12 [odforce.net]
and
http://odforce.net/forum/index.php?showtopic=1883 [odforce.net]

that might help
you should be able to do a mantra -u on the geometry and use an attribute mapper to transfer the attribute to a normalized (if you are using) color and push out a map. it depends on the UV space you are using for the geometry and if it works for the bone. Does that make sense?

then you would have to use a pic()expression to read the map onto the points and do some attribute smooshing to get it in the right spot.

curious, do you not find the layer paint for capturing, (single bone) helpful, or are you trying to bring in a Maya/XSI weight into Houdini?

It should be doable to achieve your goal. with some work though
-k
User Avatar
Member
7046 posts
Joined: 7月 2005
Offline
Cool, thanks for pointing that out, it's what I was afraid of )

On a related note, is there no way of accessing the string part of the pCapt attribute? points() does not work (no way to tell it which component) and of course point() only works on the float parts.

I want to be able to click a point, and see what bone(s) are affecting that point. I do not want to use the spreadsheet, way too slow to find the info.

Cheers,

Peter B
Cheers,

Peter Bowmar
____________
Houdini 20.5.262 Win 10 Py 3.11
User Avatar
Member
7046 posts
Joined: 7月 2005
Offline
It appears that the Attrib Composite will do pretty much what I want! Of course, no docs on the subject makes it harder to find these things ) Also, it looks like Attrib Composite has very special-case handling of pCapt information. Also not in the help card, but at least you get a yellow flag telling you that you need to also use the Detail attrib when doing pCapt stuff.

There is a light at the end of the tunnel, or is it a train?

Cheers,

Peter B
Cheers,

Peter Bowmar
____________
Houdini 20.5.262 Win 10 Py 3.11
User Avatar
Member
212 posts
Joined: 7月 2005
Offline
think of it as dim light for the moment.

just close your eyes for a while and open them up again. this way it will look brighter. 8)

but really, when i read what you are talking about doing/searching for…. the layer paint and attribComposite should be able to do it all right for you. just keep adding layer for bone(s) and you should be able to control the composite. i found it a bit confusing as well at first without docs. like the majority of houdini things (SOPs, OPs, COPs, CHOPs.. etc) there is an ‘intended’ workflow where they work the best. you can always bash away and get it to work but it always helps to know what they were thinking of in the first place. intuitive isn't the word.

I'm not the best one to give you that intended workflow (yet) for the layer paint. I would feel better if i used it more… but i'm on holiday now and my geekIEness is showing by surfing the forums… I have to draw the line somewhere

Perhaps ed or joe could help? Calin? Jeff? Rob?
-k
User Avatar
Member
7046 posts
Joined: 7月 2005
Offline
I guess thing I was originally hoping for was the ability to paint the weights in Gimp or Photoshop. I find painting directly on the geometry very clumsy and hard to control (likely my own incompetence) so I wanted to use actual images. Maya and XSI give you intuitive and well-documented ways to do this.

The Attrib Composite will allow that, it seems. However, due to pCapt being a non-standard attribute, it's still a nightmare if I want to switch one point's influence to another bone etc. Now, if the pCapt used a single attribute per point for each bone and it was a standard float, I'd be laughing. Or even if pCapt used an integer lookup into a hash table for the bone/region name, that would make things a lot easier. I'm not saying I know the best way to approach it, mind you )

What I'm finding is the animation side of Character in Houdini is really quite solid, but the rigging side still has a long way to go. Unfortunately, unlike in other areas in Houdini, you can't just “roll your own” because of the fundamental problem of the pCapt attributes being essentially uncontrollable. IMHO, this needs to be resolved before Houdini becomes a happy place to rig. That means throwing it out and starting with a new, better way to capture, which I fully acknowledge is a big job.

I guess I liken it to DOPs. DOPs had a huge amount of time spent designing it, and it paid off bigtime with a very well-thought-out system. It's missing a lot of utility stuff (like $NUMHIT etc) but you can at least get what you want out of it because the basics are solid.

The Character stuff is saddled with legacy issues (primarily pCapt) that no matter what neat stuff goes on top, ultimately it's very hard/impossible to make your own controls. Edward has already acknowledged his frustration (bitterness, I believe, was his term) on Odforce. He and his team have done amazing stuff with a bad system they inherited, but unless that bad system is thrown away and re-written, it's always going to be an impedance to the character tools.

In my opinion )

Cheers,

Peter B
Cheers,

Peter Bowmar
____________
Houdini 20.5.262 Win 10 Py 3.11
User Avatar
Member
114 posts
Joined: 7月 2005
Offline
IMHO painting point weights in another package is not a good idea. Why, because you will want to see the deformation on the fly, that is the whole point of painting weights. If you still want to do that you will need a grayscale map for each bone or a rgb map for bone triplets, very nasty job to keep track of values for each point/bone if you ask me (you could have them as layers but still…). As far as I remember Maya (up to version4.5) uses maps to save the point weights to disk and bring them back just in case you want to modify the topology, maya will assign the new weights based on the maps. I tried it once with a light character and a relative small number of bones and it worked but when I dropped 100k on 150 bones it crashed every time I try it. That was my experience with Maya and point weight maps. I don't know about XSI. We save point weights in the geo file which allows us to split the painting process in 2-3 or as many people as we need to get the job done. Next we bring the geos in use attribcomposite and paint the blend map, very elegant and simple, you can't do that in Maya or XSI.
User Avatar
Member
7046 posts
Joined: 7月 2005
Offline
Hi Calin,
In fact, I was trying to do just that, save out maps so I could paint them externally. Using UV unwrap, I could get basic positions using the Paint SOP then paint properly outside (painting weights precisely I find almost impossible even on a relatively light piece of geometry) then bring it back in.
You're absolutely right, having a map for each bone or whatever is pretty much unworkable, due to the pCapt legacy. I was going to use deep rasters in COPs but of course I can't paint in COPs (
I think it's nice that you have have multiple people working on the weights, that's super, but I'm a single person so that helps me not )

Cheers,

Peter B
Cheers,

Peter Bowmar
____________
Houdini 20.5.262 Win 10 Py 3.11
User Avatar
Member
7909 posts
Joined: 7月 2005
Online
Hi Peter,

The “pCapt legacy” you refer to in the other odforce thread [odforce.net] is simply the internal structure of the pCapt attributes and has nothing to do with actual character workflow. That other thread talks about the mechanism to procedurally generate capture weights in Houdini being harder than it should be. An ability that I'm not sure you can do in other packages in the first place.

I'm not sure that you understood what calin_casian was saying. According to him, painting on a map per bone is exactly what you would get in Maya, an “unworkable” system as you noted. The capture weighting workflow (in the general sense, not specific to Houdini) crucially depends on seeing your deformations as you're modifying them. Without the 3D deformation feedback, one is running blind. Painting weights on deep rasters in another paint package won't help with this.

To address your specific concerns, have you tried using a Visibility SOP to limit the amount of geometry that gets drawn in the viewport for painting? From experience, this has given great speed improvements.

Cheers!
User Avatar
Member
7046 posts
Joined: 7月 2005
Offline
Hi Edward,
I know that pCapt doesn't directly affect the workflow, but what it affects is my ability to modify and customize the workflow, like I would be able to do for FX work elsewhere in Houdini.
I'm not saying it's an easy problem to solve, I'm just lamenting that unlike elsewhere in Houdini, I'm constantly running into walls directly as a result of pCapt.
I'm sure part of the problem is that I'm just not cut out for character work ) It's not fun, ever, and I keep trying to make my own tools to make it easier and I keep failing, hence the frustration )
I disagree about your point that you need to see the 3D deforms “live”. Naturally, I'd be reloading the images constantly (likely with an “atjob”) but it would be far far easier to paint on a 2D image with proper paint tools.
The Visibility is an option which I definately use a lot, but on a folded-over elbow it makes little difference.
Now, one thing that would make thing easier if if I could paint on my character in Capture pose but see him in Deform. I know I can set this up, but having it be a “feature” would be nice.

Cheers,

Peter B
Cheers,

Peter Bowmar
____________
Houdini 20.5.262 Win 10 Py 3.11
User Avatar
Member
7909 posts
Joined: 7月 2005
Online
pbowmar
The Visibility is an option which I definately use a lot, but on a folded-over elbow it makes little difference. Now, one thing that would make thing easier if if I could paint on my character in Capture pose but see him in Deform. I know I can set this up, but having it be a “feature” would be nice.

You mean like just painting at the SOP level with a preview window opened on the Deform SOP? I'm not sure how more “push button” you would want for that.
User Avatar
Member
7909 posts
Joined: 7月 2005
Online
Just realized another way to do it. In the SOP Viewer's pane menu, choose Operator > Show Current. Leave the display flag on the Deform SOP. Click on the Capture Layer Paint SOP. Hit enter with your mouse in the viewport. Now you can paint on the captured geometry while observing the deform geometry at the same time.
User Avatar
Member
7046 posts
Joined: 7月 2005
Offline
Hi Edward,
Yes, excellent points, I sit corrected ) There is no question that I am not thinking about this correctly. I think I know why, too ) For me, it's because I'm thinking “new school” meaning work in the Object viewport. This is all my Character experience (Softimage primarily). However, “new school” only actually covers some basics, and in Houdini I still need to go “old school” meaning Sops and tricky setups. That's cool, I don't mind doing that, but it's a big disconnect.
In fact, now that you've pointed these (obvious, in retrospect) workflow things out, things are looking brighter.

Thanks Edward!
Cheers,

Peter Bowmar
____________
Houdini 20.5.262 Win 10 Py 3.11
  • Quick Links