Fri, Nov 8, 7:42 AM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2024 Nov 08 7:07 am)



Subject: Poser & Maya Content: Importing Skin Weight Maps fails...


ConSeannery ( ) posted Wed, 31 January 2007 at 1:46 AM · edited Fri, 08 November 2024 at 7:42 AM

Hi guys,

I am currently stuck with a problem concerning skin weights.
I am lazy guy and I desperately try to get around painting skin weights manually.

I purchased the character "Victoria 3" from daz3d.com and a character set for it called "Ioli".

I wanted to get the character out of Poser as complete as possible, but I didn't find a way to get a character exported with skeleton and skin weighting already done.
I tried several software products like BodyStudio, Trinity4Maya etc, but all were limited in one way or the other.
Of course I could export the geometry as obj and the skeleton as bvh and then merge both together inside Maya. However this doesn't get me around manual skin weighting which turned out to be really annoying for the Victoria character when I tried it once.
So yesterday I downloaded DazStudio and bought the FBX Plugin for it (which sucks bad by the way).
After the FBX import of the V3 base character into Maya (which took about 1 hour, YES 1 hour!) I extracted the smooth skin weighting information from the base character into a skin weight map.
As the additional character set "Ioli" is just a morph of Victoria it should have the same number of vertices, faces etc. Unfortunately the number of faces, UVs etc. are indeed the same, but not the Vertices count. Don't know why...
Anyway, after matching all Bones and surface shape names between both characters I tried to apply the extraced weight map to the Morph character.

I got this error message:

"// Importing Victoria_3_SAE_Hips.iff to Victoria_3_SAE for joint Hips
// Error: No object matches name: |Victoria_3_SAE|polySurfaceShape1.og[0] //"

Any idea if there is a way to transfer the weight maps anyway?
I guess there isn't, but maybe I am lucky and one of you guys has a smart trick for this problem ;-)

I know the weighting wouldn't be perfect even if the import would work, but better than to start from scratch with the default Maya smooth skin weights.

Any help highly appreciated :-)

ConSeannery


ConSeannery ( ) posted Wed, 31 January 2007 at 1:55 AM

Ok please ignore the previous post. All of a sudden it worked although I didn't change anything. Strange. However, it looks a MESS! Unusable skin weights.

Actually I have another question, but I better open a new thread...


richardson ( ) posted Wed, 31 January 2007 at 5:01 AM

If you do succeed at this, you may be the first. I would contact the Poser people before you go too far. Poser also has a notorious export problem.


ConSeannery ( ) posted Wed, 31 January 2007 at 6:22 AM

The Poser export options are indeed poor. It should be self-evident for a 3D application to support the FBX format.

Anyway, what do you mean with the first who succeed at this? At transferring skin weights from a base character to another character set?
It actually worked without an error message. Only warning messages that some bones could not be found on the target character. That was because I made my own rig where I deleted the Buttocks bones and made some other changes. But as I said the skin weights produced a total mess. When I rotated for instance the right shoulder half the face was moving with it :-D

Btw, do you or anybody else here also have difficulties in painting manual smooth skin weights onto the V3 character in Maya? I get strange shading discontinuities in a lot of places although I smooth them out like crazy. I might do something wrong, because I am new to weights painting with the artisan interface in maya, but right now I can't recall that I made any major mistakes. I followed all the steps as outlined by A. Alvarez from Gnomon Workshop.
Or maybe the shader translation done by BodyStudio (which I used) made these discontinuities too obvious.
But I read very often about the poor topology of many Daz characters. Maybe this caused the prob...I dunno.
Any advise?


richardson ( ) posted Wed, 31 January 2007 at 8:31 AM

Attached Link: http://www.renderosity.com/mod/gallery/index.php?image_id=1169154&member

No advise really. Only that what you are trying to do has stumped everyone. Rather, once you exit poser, you cannot get back in. At least, with importing correct orders. If you will render in another app like maya, why export poser's funny boning? Almost better to rig it in Maya. But then,,, after that much work, you will be left with a work which will be partially credited to another company... Daz The mesh is fine imo. It's high in polys for some apps but well designed. 67-72k for unimesh's.. I do NOT want to bring you down.. just think you should check as much forum arhives as possible so you do not retrace anothers wrong turn. If you are confident in your abilities, tear it up.. I'd love to see this solved. I'd love to see a Daz figure with weight mapping. Link to a figure from scratch I started with a friend. Still in the works. Built in Lightwave. Sculpted in ZB2 and boned in Maya. A long ways to go still...


Marque ( ) posted Wed, 31 January 2007 at 8:35 AM

Is there a tutorial on pulling Poser figures into Maya? They always come in so tiny.


ConSeannery ( ) posted Wed, 31 January 2007 at 10:29 AM

My workflow might seem a bit strange, but most of it is because I try to avoid things doing from scratch. I am just a beginner in this whole character rigging and animation thing and for now I am making use of presets as much as possible. Another factor is that I am just making an internship in a foreign country and I don't have the time to deal with everything in depth if I want to stay in schedule.
This includes also the boning of Poser. I just deleted a few bones and exported the skeleton as BVH into Maya. In there I readjusted the skeleton to a perfect T-Stance which fitted the T Pose I previously set up for Ioli inside Poser.
Then I imported the character mesh from Poser with BodyStudio 2.6. I was actually hoping that BodyStudio would include the skeleton and skin weight information, but I had to find out it was only the mesh being played back inside Maya. Skeleton and weights information are there, too, but not accessible for the user.
So I had to find another way to get the skin weights into Maya. And the most obvious step was to use Daz Studio with its FBX plugin. I'm still optimistic that I will finally get the Ioli character exported as FBX including all morphs, but I need to do more testing. I read some success stories over at the DAZ board of Maya users getting a good FBX export. However the number of unsuccessful attempts exceeds the successful by far.

You said you would love to see a Daz figure with weighting? Well actually I had one in Motionbuilder, but it was the V3 character with the base skeleton as it is in Poser. The weighting looked quite good. All limb rotations went smooth without strange deformations. But I don't like the generic skeleton, especially because both spine bones are too close to each other. That makes retargeting of our motion capture data less accurate.

I will keep you updated :-)

Btw, do you have experience with MarkDC's Poser FBX Exporter?

Bye


replicand ( ) posted Thu, 01 February 2007 at 6:16 PM · edited Thu, 01 February 2007 at 6:21 PM

I've been dealing with this problem for almost two years, so I can that I can help (although you're not going to like the answer).

Body Studio does not work because V3 for instance has 36 materials. V3 materials consist of (minimum) five nodes each, with texture resoultions into the multiple thousands pixel range. You will notice a substantial performance boost if you shrink textures to 512x512. Unfortunately you cannot animate V3 in Maya without first returning to Poser. This workflow is at a sever disadvantage.

The Daz FBX plugin only works with selected Daz characters, and that's not too cool either if you just happen to need Jesse, as an example. Oh yeah, the conversion process is slower than glacial travel, the mesh / joint scale is all wrong and weights are exploded. The reason why the weight transfer didn't work is that source and destination character part names must match exactly (as of Maya 7). I haven't explored this option lately because it's pretty cantakerous workflow.

If you wanted to scale an imported obj, you might want to start with a value of 20 in all directions. Using centimeters as you scale, that character would be about 7 inches high which introduces its own set of problems when using lights with quadratic falloffs and such.

So I use Trinity4Maya, a plugin that has little current support. It brings in morphs, materials and is customizable but as you know there one MAJOR drawback: painting weights, a dark art that appears to defy logic. Here's what you should try:

  • I would highly recommend using Jesse or James as a prototype character. They have around 30,000 regularly spaced, mostly quad polygons. You can have a fully weighted character with realistic deformations in about 45 minutes. V3 has about 72,000 irregularly spaced quads and "n-gons". More polygons will provide better deformations but are more difficult to control.

  • Flood the hip joint with a value of one. Work up (or out) each successive joint to a value of one using your brush until your entire mesh is roughly weighted. Although it is not endorsed throughout the community, I like to "flood / smooth" from the extremities to the hip; then do the same thing in reverse. This will get you there very quickly.

  • Set you brush's opacity very low ( think 0.2 to 0.02 range) and value to 0.5 and lower and ADD INFLUENCE ONLY. Less is more. Your goal is to maintain volume when the joints rotate and this is easiest to see / comprehend with knees or elbows. The shoulder area is tough but not impossible and the hip area is daunting. 

  • This will sound weird but it's often easier to send influence to the next nearest joint. For example, when working the elbow try selecting the shoulder bone but painting the mesh at the elbow side of the forearm joint. Then later select the forearm joint and paint the mesh on the elbow side of the shoulder. It will only make since when you do it.

  • Almost forgot. once your rough and fine tune paint passes are done, adjust weights using the component editor, under the smooth skin tab. This is useful for removing foot influence from the face as an example.

I did weights on V4 in an hour and she looked great (in a rough tuned way) and I'd expect her to be complete in about four hours. Mil 3 characters take a bit longer; usually eight to ten hours. I guarantee you it 's worth the time.


Marque ( ) posted Thu, 01 February 2007 at 8:30 PM

Where do you find Trinity4Maya?
Thanks,
Marque


replicand ( ) posted Thu, 01 February 2007 at 8:35 PM · edited Thu, 01 February 2007 at 8:47 PM

Attached Link: http://forum.rendermagix.com/viewtopic.php?t=296

Unfortunately, Maya 7 is the most current supported version. The supplied link above is for 6.5 and 7 plugins; 4.5 and later are in the downloads section, which includes the rest of the suite to make the thing work (). You'll probably want to download both.

There's so much that the plug can do but the community just died. The Greenbrier plug does the exact same thing for $125!


Marque ( ) posted Thu, 01 February 2007 at 9:08 PM

but will work with 8?


Marque ( ) posted Thu, 01 February 2007 at 9:31 PM

I need coffee. Thanks for the link, using 8 on my main machine so back to the drawing board.


replicand ( ) posted Thu, 01 February 2007 at 10:05 PM

Does not currently work with 8 since the API is newer. I'm hoping to get source code to re-complie. You can use convert in version 7 and open that file in 8.


Marque ( ) posted Fri, 02 February 2007 at 9:12 AM

Thanks.


Parthius ( ) posted Fri, 02 February 2007 at 7:35 PM

Marque, the reason poser objects come into Maya so tiny is that Maya reads obj files in units of cm (Lightwave uses meters and 3ds max uses inches). I'm not sure what native unit Poser is based on...


fuaho ( ) posted Fri, 02 February 2007 at 9:13 PM

By a series of arcane and nefarious experiments, one PNU appears to be 8.3 inches.

 
<"))###><<  
 


replicand ( ) posted Fri, 02 February 2007 at 11:33 PM

I have had extreme difficulty creating a 1:1 comparison between PNU and " standard" obj units. Any insight would be greatly appreciated.


fuaho ( ) posted Sat, 03 February 2007 at 10:01 AM

Whoops! I was too tired last night when I wrote that and it refers to a set of measurements of boxes and scaling and figures for a project I'm doing.

Apologies to all. 

The actual value of a PNU is 8.6 FEET or 262.128 cm. 

There were no experiments involved in that conclusion. See pg. 24 of the Poser 7 User Manual.

 
<;))%%%><<  
 


replicand ( ) posted Sat, 03 February 2007 at 10:26 AM

I'm still using Poser 6 although although the scale should be the same (it's different in P5, different again in PPP and earlier). I was considering to use Poser and Maya composited together in After Effects. No matter what numbers I put into both or either, I cannot get a simple box to have the same camera distance, focal length and rotation. It's a snap with between Maya and Vue without the use of plugins or synchronization.


stewer ( ) posted Sat, 03 February 2007 at 11:01 AM

That's because 3d software cameras have one thing in common with real world cameras: focal lengths translate only to the same angle of view when the film sizes are identical. You should try to match the angle of view instead.


fuaho ( ) posted Sat, 03 February 2007 at 1:00 PM

Replicand:

Have you used the Greenbrier software? I have called them a few times to discuss it in more detail, but they have never answered the phone.

 
**Revisiting the original question here,** (and don't get me wrong, I know what skin weights are) **what exactly are skin weights mathematically**? **Where are they in the Poser file structure?**   
 
If any given polygon consists of x, y and z coordinates and vectors to describe its spatial orientation, then what are the mathematical definitions that accompany skin weights? Are they embedded in the polygonal definition? Are they additional lines of data that refer back to the polygon? Are they a separate subsection within the definition? Are they references to groups?  
 
If we can clearly understand the answer to that question, then we can begin to understand if it's even possible to carry them over to another program.   
 
Since the geometry can be transported through the obj format, obviously the obj format itself is the culprit here if it cannot also contain whatever the skin weight attributes, (formulas, numeric data, strings, whatever) are.  
 
OK. If that's the case, then perhaps we need another file format that can look at the Poser geometry files and extract the existing skin weight data and provide it in a format that replicates the data structure that Maya understands.   
 
So we will also need to know how Maya uses skin weight data to determine if there are any correlations between the two programs that can be utilized directly or if there need to be major transpositions and translations.  
 
A further problem is that any new format must be available as an export option in one program and an import option in the other. Since the creation of a new standard such as this will probably not occur with any rapidity, we are constrained to using the formats already available.   
 
So the concept would run something like this:  
 
once the location and values of a Poser figure's skin weights are determined, a Python script is created that extracts, converts and saves the information as an obj file, (even though technically the file is nothing more than a data vessel to carry the information across) to be imported into Maya where a mel script re-converts the data into skin weights and "attaches" them to the previously imported figure.   
 
Since I have no idea of the complexity of the data structures involved, I can only provide the "what might be done" not, unfortunately, the "here's how to do it." But maybe this will trigger some further research into this problem which has gone unsolved for far too long.  
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 
<"))###><<  
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


tekmonk ( ) posted Sat, 03 February 2007 at 3:29 PM

Quote - Revisiting the original question here, (and don't get me wrong, I know what skin weights are) what exactly are skin weights mathematically? Where are they in the Poser file structure?

Poser doesn't have something like skin weights. What it does have is an influence system similar to that used by lightwave or character studio. Each bone has an area of influence and the weights applied to each vertex are calculated on the fly using these areas. AFAIK poser never explicitly stores the weights to disk so i'm not sure you can extract them like you want. This is very different from Maya where each vertex has a user specified bone weight. So the transfer isn't anywhere as simple as you may imagine.

Plus even if you do manage to transfer them, you will have done all this work just to get the same crappy deformations you get in poser. So whats the point ? Its far better to just re-skin what you need in Maya or whatever. Not only will you be able to specify nice rigs for everything, you will also be able to get proper muscle deforms, nice joint bending and any other advanced feature you may need.


stewer ( ) posted Sat, 03 February 2007 at 4:10 PM · edited Sat, 03 February 2007 at 4:12 PM

You can access Poser's weights through Python, see the methods JointVertexWeights (Get a list of vertex weights for the specified joint axis on this actor) and TwistVertexWeights (Get a list of vertex weights for the specified twist axis on this actor). Be aware though that Poser uses separate weights for every rotation axis, where most other bone systems use only one weight for all axes. That's why any translation of a Poser rig to many other bone systems will only be a compromise and can't reproduce the behavior of a Poser rig, weight map or not. Ask kuroyume why he wrote his own bone system for InterPoser Pro instead of using Cinema 4D bones.


Marque ( ) posted Mon, 05 February 2007 at 8:17 AM

I was one who downloaded poser 7 so I apparently don't have the same manual. Does anyone know where this would be in the manual you find under help?
Thanks,
Marque


Marque ( ) posted Mon, 05 February 2007 at 8:20 AM

lol well page 24 is actually page 38 .. found it!


replicand ( ) posted Mon, 05 February 2007 at 6:05 PM

@ fuaho - the latest version of the Green brier plugin does a sort of auto-skinning thing, but as mentioned somewhere on the site, some tweaking is necessary. As long as I'd have to tweak, I might as well do the whole thing by hand. The more I practice it the easier it becomes, and as mentioned the layout and density of the mesh determine how easy or difficult the task may be.

@ stewer - I don't recall seeing an angle of view in Poser. How would you enter / calculate the correct value?


fuaho ( ) posted Mon, 05 February 2007 at 8:29 PM

Attached Link: http://www.mat.uc.pt/~rps/photos/angles.html

stewer...  are the "methods" you are referring to part of the scripts that come with Poser (I couldn't find them if so) or are they just some python based thing that you would have to write a whole gobbledygook of code for?

replicand... does the greenbrier software bring in a rigged figure ready to use except for tweaking the skin weights. I tried the trinity plugin but found it rather flakey, or perhaps just more geeky than I want to get into.

angle of view is a combination of aspect ratios of the film plane vs focal length for optical lenses. I've included a link to a useful calculator.

HTH,

 
<,"))###><<  
 


replicand ( ) posted Sat, 10 February 2007 at 10:26 AM · edited Sat, 10 February 2007 at 10:35 AM

fuaho, sorry for the delay in response and thanks for the link to the calc.

I have not used the Greenbrier plugin and I think you mentioned that they don't return your phone calls. A visit to the website reveals a few things:

  • The CR2 loader page shows all the characters in their default positions
  • (quote) Joints still have to be edited (but hopefully not for much longer). 
  • you can smooth or rigid bind with joint flexors
  • we don't see any morphs applied on the product page

Red flags, sirens and klaxons blaring! Since all the charaters are in their default positions, then we can infer how well this auto-skinning works; otherwise they'd showcase how well the CR2 loader translates the weighting.

Joints still have to be edited. Again, if I have to do any weight painting then I might as well do all of it since that would probably take less time (a "slower is faster" sort of thing).

You can smooth with rigid or smooth bind with joint flexors. I've only begun to scratch the surface of rigid bindind (no pun intended), and at a glance it doesn't sound like a bad thing until you consider how difficult it could be to control a hand with 15 (or more) possible flexors.

I don't own the Mil Dragon, but I've got most of the other models displayed on their product page and none of them have a single morph applied outside of their cr2 file. Since no morphs are shown, how will we know that it works? You'd be better off importing your V3, scaling and applying maps because that's all the plug appears to do (I'd be happy to be proven wrong).

All this for $175. Woo hoo, sign me up.

I swear the Rendermagix people aren't paying me off, but I love this plug. Mastery requires planning (or experimentation in my case) and script editing, but that's when it begins to reveal its power. Maya is the same. The bottom line is there isn't an easy "no compromise" route to getting Poser characters in Maya.


Privacy Notice

This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.