Wed, Oct 9, 1:22 AM CDT

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2024 Oct 08 7:44 pm)



Subject: Questions for clothing designers for weight mapped figures


an0malaus ( ) posted Mon, 01 July 2019 at 12:53 AM · edited Wed, 09 October 2024 at 1:21 AM

I understand that during creation of a new, weight mapped base figure, consideration is given for where helper bones will be needed to drive weight mapped joint deformations, in place of a swathe of JCMs. Given that JCMs are just morphs and are well supported by Poser in terms of transference to conformed clothing being adapted for a new figure, how well is weight mapping transfer to clothing supported?

If I take a clothing figure designed for a similar, but non-weight-mapped base figure, and, say, shrink wrap it to closely match the weight mapped base figure, then export the modified clothing mesh and use that as the basis for a new piece of clothing, then I can easily transfer morphs from the weight mapped base figure. But will the weight maps also be transferred just by copying the joint zones to the new clothing?

It seems to me, that without matching helper bones to drive the weight map deformations on the clothing, no weight maps can be transferred. Is that correct? Should I add approriately corresponding helper bones to the clothing before attempting the joint zone transfer? Does Poser have any facility for transferring weight maps to non-identical figures at all, or will I have to paint every weight map again from scratch?

Help, please?



My ShareCG Stuff

Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.


AmbientShade ( ) posted Mon, 01 July 2019 at 1:19 AM · edited Mon, 01 July 2019 at 1:21 AM

You are correct - the weight maps will not be transferred unless there is a corresponding bone to match them to. However, if you are modifying a piece of clothing for a different figure to fit a current figure then you can use the fitting room or the setup room to transfer the rig from the target figure to the target clothing geometry. You do not need to copy groups. You can select which groups you want copied or you can group the mesh yourself to your own specifications. Ghost bones (helper bones) will be transferred - they don't need a corresponding geometry group to be transferred to. If you let the fitting room transfer it automatically then it will create random groups for each bone. I never do that, I'd rather create my own groups and leave that option unchecked in the dialogue.

Any bones that are not selected for transfer will not have corresponding weight maps in the target clothing, so it won't fit the designated figure as intended. The clothing rig has to match the figure rig exactly in order for it to follow completely. It can have additional bones if you need them for clothing adjustment, but it has to have at least the same bones that the target figure has.

A note however - you do not necessarily need helper bones to make up for a lack of jcms. It depends entirely on the mesh design and how well the figure has been weight mapped.



tonyvilters ( ) posted Mon, 01 July 2019 at 1:20 AM

The fitting room transfers the weight and bulge maps into the new clothing obj file.

Then, if required, you can use the option Copy Morphs from, and again if required, copy Joint Zones from.

The, and again if required, you can use the Joint editor to fine tune joints should poking be an issue.

Best regards, Tony


tonyvilters ( ) posted Mon, 01 July 2019 at 1:24 AM

Go to this video for detailed instructions. https://www.youtube.com/watch?v=YikiP9pEAp4

Poser rigging and repairing clothing


an0malaus ( ) posted Mon, 01 July 2019 at 1:27 AM

Thanks. That's encouraging. I note with interest that La Femme doesn't use geometry for her helper bones, whereas the original V4WM did (I assume for ease of selection and manual testing). It's sometimes annoying to accidentally select and move or rotate a helper bone with geometry. Especially if they're completely driven by valueOperations from the joints.

I think I'll follow that path, and leave the helper bones without geometry. I'm so familiar with editing Poser files by hand, where I know exactly what will happen, that I haven't played a lot with the Fitting Room and Setup Room.

I've spent so long with V4WM and am only just realising that If I'd taken a bit more (well, a lot more) time to add helper bones to conforming clothing for her, I wouldn't have had to create so many fitting morphs and fixer poses to match what the weight maps driven by helper bones were doing! D'Oh!



My ShareCG Stuff

Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.


an0malaus ( ) posted Mon, 01 July 2019 at 1:28 AM

Thanks Tony, I'll have a look.



My ShareCG Stuff

Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.


AmbientShade ( ) posted Mon, 01 July 2019 at 1:44 AM

I'm not familiar with V4WM's rigging so I don't know why they used geometry for the helper bones. I can only guess that at the time it wasn't possible to weightmap a ghost bone, but I don't know because ghost bones have been a thing going back to at least Poser 7 and I think at least Poser 5, so that probably isn't the reason.

What's more annoying is when trying to select a body part from a certain angle where it's overlapping in view its opposing part and you select the opposing part. The first selection should always be the one closest to the camera or cursor. I suspect maybe it has something to do with how Poser's viewports/cameras work. No clue tho really. I just know that it's annoying and has been persistent through every version of Poser that I've used.



tonyvilters ( ) posted Mon, 01 July 2019 at 2:17 AM

Tja AmbientShade, Right click with the mouse in the general area, and select from the pop-up window. => Select =>


Glitterati3D ( ) posted Mon, 01 July 2019 at 4:43 AM

In a properly rigged weight mapped clothing set, helper bones are simply not necessary. At all.

In this set, there are no helper bones and no additional JCMs (except what are in the original figure and transferred to the cloth) and only one morph to move the left side cloth up in a crouched position so that it does not intersect the ankle.

riggingautofollow3.jpg

The thigh bones BECOME ghost bones in this rig and can be moved as the user sees fit.

riggingautofollow2.jpg


an0malaus ( ) posted Mon, 01 July 2019 at 6:11 AM

@Glitterati3D can you please explain how the weight maps are applied in the conformed clothing? I see in the base figure that its ghost bone rotations, which are derived from physical joint rotations (i.e. they act as intermediaries to apply possibly non-linear scaling to the weight map strength). Can the base figure's ghost bones also drive weight mapping on the conformed clothing? To do so, they would need to have a specific channel in the clothing body part which refers to the ghost bone on the base figure and drives the clothing weight map. Such channels are always paired with a reciprocal joint channel on the primary, in this case the ghost bone on the base figure then needs to have a channel added which refers to the joint channel on the clothing to drive its weight map. I may be wrong, but I don't believe I have ever seen such a thing.

What I do see (and I'll admit to limited experience) is paired channels like this:

actor chest:27 # Physical actor on conformer. Weight maps referred to by channels driven by parameters on ghost bone
    {
    parent abdomen:27
    conformingTarget chest:1
    weightMap   lBreast_jointx
        { 
            numbVerts 16320
        } 
    weightMap   lBreast_jointz
        { 
            numbVerts 16320
            v 8160 0.046575
            v 8161 0.030631
            ...
            v 16295 0.301515
            v 16296 0.273200
        } 
    weightMap   lBreast_twisty
        { 
            numbVerts 16320
            v 8160 0.881436
            v 8161 0.884573
            ...
            v 16318 1.000000
            v 16319 1.000000
        } 
        ...
    channels
        {
        twistY lBreast_twisty
            {
            name lBreast_twisty
            initValue 0
            hidden 1
            enabled 1
            forceLimits 0
            min -100000
            max 100000
            trackingScale 1
            masterSynched 0
            keys
                {
                static  0
                k  0  0
                sl  1
                spl
                sm
                catid 0
                }
            interpStyleLocked 0
            otherActor lBreast:27
            flipped
            primaryParm twisty # Refers to ghost bone channel driving this weight map
            zones
                {
                weightmapzone
                    {
                    active 1
                    math 2
                    mapname lBreast_twisty
                    }
                }
            calcWeights
            }
        jointZ lBreast_jointz
            {
            name lBreast_jointz
            initValue 0
            hidden 1
            enabled 1
            forceLimits 0
            min -100000
            max 100000
            trackingScale 1
            masterSynched 0
            keys
                {
                static  0
                k  0  0
                sl  1
                spl
                sm
                catid 0
                }
            interpStyleLocked 0
            otherActor lBreast:27
            flipped
            primaryParm jointz # Refers to ghost bone channel driving this weight map
            zones
                {
                weightmapzone
                    {
                    active 1
                    math 2
                    mapname lBreast_jointz
                    }
                }
            doBulge 0
            posBulgeLeft 0
            posBulgeRight 0
            negBulgeLeft 0
            negBulgeRight 0
            jointMult 1
            useBulgeMapLeft 0
            useBulgeMapRight 0
            calcWeights
            }
        jointX lBreast_jointx
            {
            name lBreast_jointx
            initValue 0
            hidden 1
            enabled 1
            forceLimits 0
            min -100000
            max 100000
            trackingScale 1
            masterSynched 0
            keys
                {
                static  0
                k  0  0
                sl  1
                spl
                sm
                catid 0
                }
            interpStyleLocked 0
            otherActor lBreast:27
            flipped
            primaryParm jointx # Refers to ghost bone channel driving this weight map
            zones
                {
                weightmapzone
                    {
                    active 1
                    math 2
                    mapname lBreast_jointx
                    }
                }
            doBulge 1
            posBulgeLeft 0
            posBulgeRight 0.00999998
            negBulgeLeft 0
            negBulgeRight 0.13
            jointMult 1
            useBulgeMapLeft 0
            useBulgeMapRight 1
            calcWeights
            }
        }
    }

actor lBreast:27 # Ghost bone on conformer - no vertices, so empty weight maps
    {
    parent chest:27
    conformingTarget lBreast:1
    channels
        {
        jointX jointx
            {
            name jointx
            initValue 0
            hidden 1
            enabled 1
            forceLimits 0
            min -100000
            max 100000
            trackingScale 1
            masterSynched 0
            keys
                {
                static  0
                k  0  0
                sl  1
                spl
                sm
                catid 0
                }
            interpStyleLocked 0
            ,,,
            otherActor chest:27 # Indicates another actor affected by this channel
            ...
            zones
                {
                weightmapzone
                    {
                    active 1
                    math 2
                    mapname lBreast_jointx # Refers to local (empty) weight map on ghost bone
                    }
                }
            ...
            }
        jointZ jointz
            {
            name jointz
            initValue 0
            hidden 1
            enabled 1
            forceLimits 0
            min -100000
            max 100000
            trackingScale 1
            masterSynched 0
            keys
                {
                static  0
                k  0  0
                sl  1
                spl
                sm
                catid 0
                k  1  0
                sl  1
                spl
                sm
                catid 0
                }
            interpStyleLocked 0
            otherActor chest:27 # Indicates another actor affected by this channel
            zones
                {
                weightmapzone
                    {
                    active 1
                    math 2
                    mapname lBreast_jointz # Refers to local (empty) weight map on ghost bone
                    }
                }
            doBulge 0
            posBulgeLeft 0
            posBulgeRight 0
            negBulgeLeft 0
            negBulgeRight 0
            jointMult 1
            useBulgeMapLeft 0
            useBulgeMapRight 0
            calcWeights
            }
        twistY twisty
            {
            name twisty
            initValue 0
            hidden 1
            enabled 1
            forceLimits 0
            min -100000
            max 100000
            trackingScale 1
            masterSynched 0
            keys
                {
                static  0
                k  0  0
                sl  1
                spl
                sm
                catid 0
                }
            interpStyleLocked 0
            otherActor chest:27 # Indicates another actor affected by this channel
            zones
                {
                weightmapzone
                    {
                    active 1
                    math 2
                    mapname lBreast_twisty # Refers to local (empty) weight map on ghost bone
                    }
                }
            calcWeights
            }
        }
    }

Where a clothing chest actor has some weight maps that are driven by joint channels which refer to channels on a clothing ghost bone. The ghost bone's channels are conformed to a ghost bone on the base figure, which applies the original weight maps to the base figure's chest actor in the same way as the clothing.

The only visible link between the two figures are the conformingTarget lines on the clothing, transferring joint rotations and translations from the base figure to the clothing actors.

I will certainly admit to moderate uncertainty (ha ha) when it comes to understanding the conforming process, as it's gone through many changes over the years, with the addition of figure-level options to copy scales, morphs, origins, endpoints and joint translations. I'm even finding valueOperations which I've added to joint rotations on ghost bones of conforming clothing, which logic tells me should be entirely unnecessary, as conforming should transfer those rotations. Yet I put those valueOperations in because I wasn't seeing the effect I expected on clothing. I'm still feeling my way to the proper solution to this, hence this query.

I can't afford to get into discussions about the quality of weight mapping and figure creation techniques. What I have is what I have, and weight painting is among the least developed of my skills (if only there were sufficient python hooks in the Poser API that I could script all of the fitting or setup room functions, or even create weight maps based on mathematical formulae, I'd be much happier - and I don't mean having to create a pose file and apply it to add weight maps - how crude!)

Loose clothing can afford to take liberties with the accuracy of following a figure's exact shape. Close, tight clothing cannot. The extreme example that I'm dealing with here is Exnem's Body Hair for V4. It cannot afford to float away from the skin surface because it's weight mapping (it currently has none, hence this exercise) doesn't match the V4WM I'm using as a base figure.



My ShareCG Stuff

Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.


Glitterati3D ( ) posted Mon, 01 July 2019 at 7:20 AM

No, I'm sorry, but I do not have the time to write a dissertation on how you can fight the kludges and rules of DAZ to try to convert old technology to new. How do I know this? I was part of the original V4WM crew.

I would suggest that first and foremost, you work with a modern figure, designed to work with the current weight mapping technology and learn what weight mapping is capable of.

Then, you can decide if you want to go back and try to force new technology into old figures.


an0malaus ( ) posted Mon, 01 July 2019 at 9:50 AM

@Glitterati3D when the new figures can exactly emulate the shape and joint parameters of the figure I've invested 20+ years of disposable income in, I'll gladly move on to newer figure technology. Sorry to be stuck in the mud, but I'm currently and long-term in the zero (disposable) income bucket, and the only tools I have are python and time, and I don't want to waste yours.

I do know what weight mapping is capable of, that's why I'm using a weight mapped base figure. What is difficult is extracting information from anywhere about how Poser deals with weight map transfers, when there is no Python API which gives access to them. Almost everything I've learned about them has been from that very V4WM figure, and I've modified her original weight mapping substantially. I've looked under the hood of La Femme and I don't see significant differences in the technology. There is NO recent, freely available documentation on the Poser file format with sufficient detail on the structure and connectivity of weight mapping, other than looking at representative figures using that technology and trying to reverse engineer them. That's what I do! Pull things apart and work out how they fit together.

You have your priorities, and I have my own. Foremost among them is that figure bending must be as realistic as possible. I have yet to see any figure in Poser meet my expectations in that regard. I will bolt on JCMs and ghost bones with weight maps, and facial morph tiles until I get where I want, to the limits of the available technology and knowledge. But an information vacuum is death for any endeavour.

I've been made painfully aware of the limitations of all of the rigging methods available in the Poser and DAZ environments, to the point where I've abandoned any desire to have Poser incorporate Dual Quaternion support. None of them suffice, without augmentation, to represent exactly what human skin and muscle does when bent over bones. So, we compromise, until constant muscle volume mesh deformation comes along (if ever), with new requirements and terrors for clothing figure creators.

What offends me is not that you might tell me straight out "Forget it, it can't be done in Poser yet". I could live with that. I may come to that conclusion myself. But bothering to post at all, just to say you can't be bothered to explain is both patronising and negative. [RANT]

Wow! That was cathartic.

Now, I must immediately and profusely apologise for allowing myself to be rubbed up the wrong way and unforgivably vent my spleen on you.

I do appreciate any help you're willing to give. Even advice to change course. But I can see that it's not my choice of figures or their archaic rigging that's getting in the way of achieving results I'm after, but merely my understanding of how the rigging hangs together for conforming, weight mapped clothing. I could change to another weight mapped base figure, but that would not change the need to convert and conform an existing, non-weight mapped piece of skin tight clothing (A figure consisting of actual geometry body hair, not Poser's opacity plane dynamic hair) actually intended for the original, unweight-mapped base figure.

Peace?



My ShareCG Stuff

Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.


Glitterati3D ( ) posted Mon, 01 July 2019 at 10:11 AM

I'm sorry, but crying poor mouth just doesn't work. La Femme was free. PE was free. Miki4 was even free for a time. There'a all kinds of free clothing for all those figures you can experiment with if you don't want to model your own. No one is asking you to spend money. You cannot make something work if you don't understand the basics. And until you turn loose, even for a minute, of your everloving old technology and learn how to use the tools you want to use, there's just no hope for you to learn to do what you want to do.


an0malaus ( ) posted Mon, 01 July 2019 at 11:18 AM

Wait, abuse and unnecessary patronisation aside, are you actually just advising me to go and play in the Fitting Room and Setup Room with built-for-weight-map-figures until I understand the process? I can do that!



My ShareCG Stuff

Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.


meatSim ( ) posted Mon, 01 July 2019 at 11:48 AM

Btw the geometry attached to the ghost bones was a requirement of the early versions og poser weight mapping if I recall. It's been a while...


an0malaus ( ) posted Mon, 01 July 2019 at 11:50 AM

@meatSim, thanks that seems quite plausible.



My ShareCG Stuff

Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.


Glitterati3D ( ) posted Mon, 01 July 2019 at 12:25 PM

meatSim posted at 1:24PM Mon, 01 July 2019 - #4355669

Btw the geometry attached to the ghost bones was a requirement of the early versions og poser weight mapping if I recall. It's been a while...

Actually, that's not true. Ghost bones have never "required" geometry. Some of the brokerages required they come with geometry, but you could always rig a true "ghost" bone just from the group.


AmbientShade ( ) posted Mon, 01 July 2019 at 4:32 PM

I've been made painfully aware of the limitations of all of the rigging methods available in the Poser and DAZ environments, to the point where I've abandoned any desire to have Poser incorporate Dual Quaternion support. None of them suffice, without augmentation, to represent exactly what human skin and muscle does when bent over bones. So, we compromise, until constant muscle volume mesh deformation comes along (if ever), with new requirements and terrors for clothing figure creators.

"[Weta Digiigal's] Tissue takes the opposite approach, going from the inside out. Artists create a detailed skeleton, then layer on muscles, fascia, and fat. Then, as the character moves, Tissue calculates how this anatomy would move in the real world – and drives the skin deformation based on that. Animators still control the main movements, but the subtle skin motions happen automatically. Tissue has been used on every film since Avatar. In 2013, it won a Scientific/Technical Oscar."

The idea of having this tech in Poser (or a similar app) is pretty much a dream. But I doubt we'll ever see it available on a hobbyist level, unless some serious overhauling happens. For now we're stuck with jcms and weight maps.



tonyvilters ( ) posted Mon, 01 July 2019 at 5:11 PM

AmbientShade is actually on a very good track.

Venus and Orion have the correct muscle flow geometry/topology and that is the first requirement to put "muscle movement when bend" in the correct place.

Pretty sure he can get most of the movement in the weight and bulge maps, and only needs to add JCM's when vertex have to go out in 3D. (Out of plane with the movement direction).


FVerbaas ( ) posted Tue, 02 July 2019 at 12:30 AM · edited Tue, 02 July 2019 at 12:31 AM
Forum Coordinator

V4WM builded on the experience gained with AntoniaWM. With AntoniaWM it became apparent that each bone needed to have some geometry atteched for some functions in Poser to work. From the top of my head it had to do with the symmetry operations but I am not sure there. For that reason in a service update some dummy geometry was added inside the figure. The vertices for this geometry were added manually at the end of the vertex list so vertex order remained the same and existing morphs and weight maps would not be affected. V4WM therefore had the extra geometry for ghost bones built in from the beginning.

Later Poser updates made this dummy geometry was not needed anymore.


unrealblue ( ) posted Tue, 02 July 2019 at 3:14 AM

tonyvilters posted at 6:07PM Tue, 02 July 2019 - #4355727

AmbientShade is actually on a very good track.

Venus and Orion have the correct muscle flow geometry/topology and that is the first requirement to put "muscle movement when bend" in the correct place.

Pretty sure he can get most of the movement in the weight and bulge maps, and only needs to add JCM's when vertex have to go out in 3D. (Out of plane with the movement direction)

"Out of plane" meaning something like collision or "squish"? That seems the only direction not handled by bend and bulge. It would be sweet if Poser just added that other dimension. I mean, we have triax for a similar reason, right? Because the joint movement (even with nice weighting) does not affect the mesh the same in each rotational axis. In the same way, each rotation would have 3D for how a vertex moves, when the joint rotates. There is bend, bulge, and squish. Direction of rotation, perpendicular to the plane of rotation (bulge) and lateral to bulge. Or am I way off base, here?

Seems to me, that squish can't be handled by rotational weighting and/or clever bulges.

I'm only now starting to seriously learn clothing (for La Femme) along with making expressions for her (using master's controlling the 6 parameters of each facial ship). Fun fun :)


tonyvilters ( ) posted Tue, 02 July 2019 at 5:25 AM

Content Advisory! This message contains nudity

Just an example of a bare rigging on a muscle friendly geometry with only 6.580 verts (including morphable hair and boots), with all Joint centers in their correct position, and without JCM's to fight with . LOL.

Caught, while running naked ! ! Caught.png


caisson ( ) posted Tue, 02 July 2019 at 6:50 AM

@thoennes - would smooth scaling and/or smooth translations help with squish and stretch? Curious as I'm just a beginner at rigging myself.

----------------------------------------

Not approved by Scarfolk Council. For more information please reread. Or visit my local shop.


shvrdavid ( ) posted Tue, 02 July 2019 at 12:29 PM · edited Tue, 02 July 2019 at 12:31 PM

Interesting Discussion here.

Why was there geometry in Antonia and V4 Weight mapped? Because if they were not, some of the functions didn't work right in Poser. Both of those figures were developed around the development of the weight system in place in Poser at present. IE, weight mapping was far from done in Poser when the figures were started. Mirroring and a few other things, for example, were still a work in progress. Antonia's helpers are added to the end of the geometry file, V4's calls in external on load. Things that were not completed in Poser were scripted to get around that as well. Many scripts were written just for that project, to get around limitations in the weight map system. Making those 2 figures exposed, and got a lot of things addressed in Posers weight map system as well. Some of the issues, were later addressed when PE was under development.

As far as making rigging in Poser that bends like we do. I wrote a muscle system that was easy to apply to figures, transfer to cloth, etc. Then an update to Poser trashed it so bad I have not touched it since.

Lots of people claim that they want a figure that can bend like we do. And it can be done in many programs. But once applied to a figure, simple is usually out the window. You can no longer just Pose a limb. You have to pose it, then tell the the muscle system what tension is on the muscles, etc. That was the reason I asked repeatedly for the console window of Bullet to be exposed. If that had been exposed, I could have made the tension thing basically automatic. No, the system wasn't incredibly fast, it lagged, etc. But it worked, for a while.... I came up with the idea of how to do from the Implicit rigging systems in Side effects Houdini and a few other 3D platforms.

I'm sure even if the system I came up with still worked and I released it, the general Poser users would not use it much. Not to mention it being ripped to shreds in the forums by the couch experts....

You can make figures that bend very well in Poser, in multiple ways. Sadly, history shows that even when someone does, users complain, then go on to support the next figure they will just basically abandon later. There are hundreds of examples of figures like that. Vendors say they will support it, users say they will support it, and then it fades into oblivion when another one comes out. Yes, there are people that continue to use a particular figure, we all know that. But many of the figures of the past get very little support from vendors because the figure faded into a niche market.



Some things are easy to explain, other things are not........ <- Store ->   <-Freebies->


DCArt ( ) posted Tue, 02 July 2019 at 12:30 PM · edited Tue, 02 July 2019 at 12:32 PM

caisson posted at 1:17PM Tue, 02 July 2019 - #4355806

@thoennes - would smooth scaling and/or smooth translations help with squish and stretch? Curious as I'm just a beginner at rigging myself.

Doubtful. The smooth scaling and smooth translation weights are set apart from the rotational weights. When weight mapping, smooth scaling weights are shown with a _smooX, Y, or Z appendix, and come into effect when a body part is scaled. Smooth translation weight maps are shown with a _translate appendix, and come into effect when a body part is translated (normally, if a body part is lengthened or shortened by TRANSLATION, instead of SCALING).

As an example, these are the weights shown in LaFemme when her abdomen is selected. Twist, Bend, and Side-Side weights control the abdomen bends. The SmooY weights control how the abdomen blends with the chest and waist when the abdomen is scaled. The translate weights control how the abdomen blends with the chest and waist when the abdomen is translated (and in this case I would translate the abdomen on the Y axis when editing it)

weights.png



KarinaKiev ( ) posted Tue, 02 July 2019 at 3:56 PM · edited Tue, 02 July 2019 at 4:10 PM

tonyvilters posted at 3:40PM Tue, 02 July 2019 - #4355800

Just an example of a bare rigging on a muscle friendly geometry with only 6.580 verts (including morphable hair and boots), with all Joint centers in their correct position, and without JCM's to fight with . LOL.

Caught, while running naked ! ! Caught.png

Ah Tony, I see!

It was only a matter of time until you would post "her" again. How many years has "she! been walking down that same road now - ten or fifteeen years? And she still looks as on the very day she first stepped out of the door.

But since then, the planet Earth has swung around the sun several times already, and humankind has invented some new technologies like 64-bit computers.

**Please don't get me wrong! ** I know that you are proud of your figure - every creator is!

But do you really think that YOUR way of creating figures is still the ONLY correct way? Mate - technology moved on, and those who don't follow and still insist that the steam engine can do the same as a combustion engine, will ultimately stay behind, left to driving steamrollers from anno 1930.

I think almost every member of this forum now knows about you hating JCMs, but I think as many members also did try to prove you wrong. But you didn't listen.

So how about an actual example / comparison:

**This is SASHA-16, right out of the box. **

No extra morph injections, no fixes (which she doesn't need anyway). I tried to rebuild your pose as closely as I could; I took some artistic license with the pose of the left leg to make it look more like a person actually running/skimping.

But apart of that:

Take a look at her right knee, and tell me in all honesty which one looks better! (and by a side note: SASHA doesn't have "bubble knees" as your figure, but well-articulated knee-caps (and yes, this IS achieved by appropriate use of bulge maps too!)

Also, this all uses well-established Poser9 technology, so that it's still useable in any Poser version after P9. IMO this is what the ominous "backwards compatibility" means:

  • Being able to use newer content even in older Poser versions (as far as applicable)
  • But NOT crippling the content to an amount that it won't take advantage of the latest Poser tech.

Comparison for Tony.png

Solution?

SASHA's knees use three(!) JCM's to simulate the squishing of the tissue as the shins bend! Is that too much in order to achieve this result, vs. "no JCMs ever!"?

Enough food for thought I suppose.


!!! It's your turn now to prove me wrong now, Tony Vilters!!!!


regards,

Karina . . . . P.S.:

As final remark:

Did you notice that SASHA's back hair moves in accordance to her running movement? That's one of the benefits if you don't use integrated hair, but modify hair from other vendors. This is a heavily modified version of

https://poserdazfreebies.miraheze.org/wiki/Long_Hair_Evolution

I rigged the back hair (back head and down) separately so it doesn't glue to the chest any longer, but can be posed freely as a pose demands.

You can't do this with your hair which is part of the figure's mesh!

Just saying... /K


KarinaKiev ( ) posted Tue, 02 July 2019 at 4:29 PM

Sorry @caisson, shvrdavid & Deecey!

I only noticed your posts after I posted my latest reply @tonyvilters. I'll read them tomorrow, I promise! Just too tired today :o(

/K


tonyvilters ( ) posted Tue, 02 July 2019 at 5:06 PM

Hello, I have been building figures for close to 10 years now.

You might "think" that you see the same figure every time, but actually, LOL, she has some sisters. All with different geometry and rigging.

Yeah, I know about Sasha, even tested her; And if you did not hear from me means she is more then OK.

I always like the effort people put in their creations.

My figures are test figures. Some are "exactly" the same looking, but have a completely different "underground. That is part of the testing process i do. Example : Some of her sisters live and pose with only a single vertex group. Others are completely different UV-Lay-outs. Some have hair (build-in, conforming, or dynamic) and shoes or boots, others don't.

My figures are test-figures, nothing more, nothing less.

Oh; Forgot, ha-ha-ha, she has brothers too. LOL.

And to build, pose and rig, I have only one tutor => A full scale mirror.

And when closing on 7.000 poly? I start deleting. More LOL.

Busy week this week, but I"ll try to get some renders out.


eethree ( ) posted Tue, 02 July 2019 at 6:04 PM

tonyvilters posted at 6:04PM Tue, 02 July 2019 - #4355800

Just an example of a bare rigging on a muscle friendly geometry with only 6.580 verts (including morphable hair and boots), with all Joint centers in their correct position, and without JCM's to fight with . LOL.

Caught, while running naked ! ! Caught.png

Can you show her feet?


caisson ( ) posted Tue, 02 July 2019 at 6:11 PM

@Deecey - thanks, I was wondering about it after reading thoennes post, scaling is something I need to look into.

----------------------------------------

Not approved by Scarfolk Council. For more information please reread. Or visit my local shop.


shvrdavid ( ) posted Wed, 03 July 2019 at 1:20 AM

I have an odd question.

How do you test Poser with a figure that uses basically nothing past P10? I have more than a few test figures as well. Some of them obviously test different areas of Poser, because they use different things from different versions of Poser. Basically, I can test from P4 to P11 stuff with a few figures that cover all of the rigging quarks.

I also have a few figures that are all one map, etc. I tried that to see if it was worth going that route. What I found is that it is very conditional on what you plan to do with it. For instance, you can't make 16k maps in Substance Painter. But at the same time having a single texture has advantages in many game engines if your not after "realism". Obviously your not going to use a 16k texture in a game engine thou.

The beauty of Poser, is that there are so many different ways of going about something, the way you make the figure, what you plan on using it for, etc. But at the same time most figures made for Poser, are used in Poser.

Designing a weight mapped figure can be a daunting task. There are quarks to every rigging system. Quarks with every render engine, etc.

The best advice you can give someone that is making a weight mapped figure is to keep it simple in the beginning. Think out what you want it to do, before you even start. What do you want to include, and what do you want to avoid.

I listened to what a lot of what people said they wanted in Pauline Advanced, and that didn't go real far now did it. I even gave the figure away for free for a while. I don't remember how many JCMs were in her atm since I don't use that version anymore. The version I now use is rather complex, Has a ton of jcm's, translations on virtually every body part with supporting JCM's for them, etc.

What did I discover in making the next version of Pauline Advanced? Well, here is the sad part. No one really wanted to do much with the first version. What are the chances of anyone wanting to do anything with the version I have now?

Here she is, in the armor set for her, Pauline's Dynamic hair with a shader I whipped up for it, reading the announcement that Rendo bought Poser. This is an untouched render, other than converting it jpg.

pa2 armor new uv 15.jpg

So to recap, if you want to make a figure. Do what ever you want to it, make it however you want it to be. And if you need help there are plenty of peeps in Poserdom that will do so.

And for gods sake, don't bash the crap out of it because of (insert whatever)....

I'm sure people don't like Pauline Advance, probably would not like version 2, and it doesn't really matter if they like it or not. I have helped with lots of figures, and every time I see constant rehashing the bashing, its a head to desk moment.....

There are a lot of couch character creators out there, and no one really cares what they think about what someone else spent months or years on...



Some things are easy to explain, other things are not........ <- Store ->   <-Freebies->


Nagra_00_ ( ) posted Wed, 03 July 2019 at 2:53 AM

shvrdavid posted at 9:52AM Wed, 03 July 2019 - #4355897

Being a buyer of Pauline advance i would be interested in an improved version 2.


ssgbryan ( ) posted Wed, 03 July 2019 at 12:06 PM

I would also be interested in an improved Pauline.

I like using all figures.



an0malaus ( ) posted Thu, 04 July 2019 at 5:46 AM

OK, here's another related question. Would it be feasible, or even make sense, to have a python script attempt to transfer the effect of a linear, joint-rotation-driven morph (JCM) into an existing weight map? At least in the sense that each JCM delta defines a vector, and a vector can be derived from the sum of other vectors, one of which could be a vector in the direction of a particular weight map's effect for the vertex that delta applies to. If the combination of relevant weight map vectors could completely account for the effect of that JCM's deltas, then the JCM becomes redundant.

The difficulties I envision would include changing the conversion process for JCMs that apply after joint bending, as opposed to before. And whether the JCM was designed to apply at a specific joint angle (or range of angles), or applied only when a specific set of figure shaping morphs were engaged.

I have seen, from my own attempts to adjust weight mapping on significantly morphed figures, that weight maps relevant to the base shape can become, not so much unstable, as inappropriate if the figure shape moves vertices significantly away from or towards the joint's origin at extreme bends. At which point, one might, say, want to spawn off a different figure and customise its weight maps specifically for that set of morphs or even bake those morphs into a new mesh.

This is in no way intended as a criticism of figure creators painting weight maps, whom I remain in awe of. I'm merely interested in whether use can be made of tools not already in the figure creators' tool boxes. Perhaps what I'm suggesting would make more sense integrated into the Morph Tool - a convert JCM to weight map function.

I can even imagine a mechanism to drive weight maps non-linearly, since Poser has the luxury of supporting multiple transform channels of a given type, where aside from the main rotation channel driving the existing weight maps, two additional rotation channels of the same type could exist. One of which derives its value from non-linear input valueOperations and drives additional weight maps, while the second additional rotation drives no weight maps, but exactly cancels out the rotation of the first additional rotation. I think that could completely eliminate any need for ghost bones at all.

I know that multiple rotations can work in this way (not that I've used them with weight maps, as such) since I added them to the thigh actors of a loose, conformed shirt, so they wouldn't follow the base figure's thighs unless desired.



My ShareCG Stuff

Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.


DCArt ( ) posted Thu, 04 July 2019 at 7:12 AM

I've been wishing for that feature for a very long time. It is so much easier for me to paint things in ZBrush than inside Poser, and to be able to GoZ it back to Poser and be asked "Do you want to convert to weight map" would be a dream come true.

As to whether or not that can be done with Python, beats me. I pass out at the sight of a semicolon and coding is not my kind of thing 8-)



shvrdavid ( ) posted Fri, 05 July 2019 at 1:20 AM

To do what you are asking with jcm's, you would only be able to transfer two of the three dimensions. And the two that did transfer would have to be split between the main map and the bulge map. Which also negates transferring it to a twist channel as well.



Some things are easy to explain, other things are not........ <- Store ->   <-Freebies->


shvrdavid ( ) posted Fri, 05 July 2019 at 1:38 AM · edited Fri, 05 July 2019 at 1:40 AM

As far as eliminating ghost bones, what you suggested will only work if the ghost bones added have the same origin and rotation.

Normally ghost bones have different rotations, and sometimes vastly different origins, so you can do non linear bending. Throw transform maps into the mix, and you definitely want different rotations on the joints.

Think of it this way. A standard joint has 3 axis's. Like a gyroscope.

Add one ghost bone and now you have a 6 axis's.

Add 2 ghost bones, and you have 9. But only if you plan out the root rotations right.

The offsets you put on the origins, give you the ability to have non linear bending.

And very few people use them this way....



Some things are easy to explain, other things are not........ <- Store ->   <-Freebies->


an0malaus ( ) posted Fri, 05 July 2019 at 2:27 PM

@shvdavid, I understand. I was still struggling to evaluate the various assertions about being able to do away with ghost bones and jcms and I remain unconvinced that except for a very small sample of specific figure/clothing relationships, without drastic shape morphing, which we've been shown examples of by their perhaps justifiably proud creators, there remains an obvious need for both jcms and non-coincident ghost bones to deliver non-linear shape adjustments during limb bending.

Through the variety of helpful and less helpful comments here, I've actually gleaned enough motivation to persevere with the original task of weight mapping Exnem's V4 Body Hair figures to exactly match the morph shapes, deformer adjustments and weight mapping of my heavily modified V4WM figure. The factor I was missing was that without the otherActor reference lines in both the helper bones and their associated joint parameters on the actual limb and torso actors, pointing in both directions, Poser will stubbornly refuse to copy the required weight maps from the base figure to a conformed figure.

I could not find enough details or walkthroughs on the Fitting and Setup rooms fast enough to be prepared to fiddle about and try to work out how to do everything with Poser's internal tools, so I did it the hard way in a text editor. Extracted from V4WM the obj (empty in this case, since I know I don't need ghost bones with their own mesh) references, addChld and weld references into one template file. Put all of the helper bone actor definitions into another, and extracted the actor joint parameters which reference the helper bones into a third. Then for each of the body hair figures, I added those components in the editor, loaded and conformed the figure, magnetized it to use V4WM's revised magnet list (all of the existing V4 magnets are gone except for a couple of the breast magnets) and then copied the joint zones to the figure, which also transferred all of the required weight maps that were missing previously.

Renders in progress.



My ShareCG Stuff

Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.


an0malaus ( ) posted Sat, 06 July 2019 at 1:04 AM

Content Advisory! This message contains nudity

First render of Exnem's V4 Body Hair now weight mapped, morphed and magnetised to match extreme poses of V4WM+++.

V4WM+ Exnem V4 Body Hair weight mapped.jpg

Apart from the thumb intersecting the gluteus and the head hair prop inversion fail, I'm pretty happy with the conversion result, though the process would probably be simpler when I've spent sufficient time determining what's required to get the same result from the Fitting/Setup rooms. The difficulty there is that I'm not looking to paint weight maps at all for such a close-fitting figure, merely transfer them directly from the base figure, once the relevant ghost/helpers and their joint parameters are transferred. I expect that looser clothing would require some adjustment of weight maps.



My ShareCG Stuff

Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.


shvrdavid ( ) posted Sat, 06 July 2019 at 2:18 AM

If you want to eliminate jcm's, you can. But you will end up with a lot of duplicate bones at as many axis offsets as you need to pull it off, usually with animated bulge maps as well. I played around with that and I got it to work, but transferring it to cloth is an exercise in futility if you go about it wrong in the base figure. I'm not sure of the best way to explain it to you. It isn't user friendly at all, but it does work. Many of the maps end up split up to multiple bones. Just imagine the forearm bend using 3 bones, one on axis (basically the normal bone in a traditional rig), two offset the same amount in opposite directions. Basically 33% weight in each map (it isn't always 33%, depends on the offset of the other two), the two outer bones are pulling it out opposite directions, which cancels that out, and then it follows the traditional bone. I'm probably not explaining that right, but what it does is give you 4 bulge maps that can do the 3rd dimension. The biggest hurdle with a system like that is getting the weights into another figure. It can do some really odd stuff when you do.

The rigging system in Poser is far better off using jcm's for realism than trying to pack it all into the base figure rigging for many reasons as well. Base rigging that mimics skeletal movement will usually need more support jcm's for full body morphs that traditional rigging, far more....

You don't always need all the jcm's in loose fitting clothes, but you will have to repaint the weight maps on many of the joints that you removed the jcms from. Sometimes you can eliminate ghost bones as well, depending on how they are setup in the first place.

A second skin transfer in Poser can be very hit and miss as well. Simply because even if it is the exact same geometry, Poser uses projection to copy the weights versus just using the same weight per vertex. It makes sense to just use projection, that way there is only one system involved, but the results can vary a bit as you have seen for yourself. The projection can do really odd stuff the the rigging I described earlier...

As far as getting Poser to copy all the weight maps, that can be hit or miss as well. One trick that sometimes works is to have every joint parameter not at zero, but slightly bent. IE .01. If you are using translations, do the same thing. Having the channels and bone map already inserted into the figure you are copying to, sometime helps. The missing maps issue was compounded when the bone map thing was added to the file save, so that could be the root of the problem, dunno thou. I have not really looked at it that closely thou.

Like I said in other posts, every rigging system has quarks. Poser is no acceptation to that either. It is a good rigging system, but it does have those limits and quarks that keep us scratching our heads, lol.



Some things are easy to explain, other things are not........ <- Store ->   <-Freebies->


an0malaus ( ) posted Sat, 06 July 2019 at 2:57 AM

Thanks for the further details. In the end, I think for my own understanding of all of the components in the figure and scene files, building this particular weight mapping by hand (adding the ghost bones and joint channel references), then letting Poser do the joint parameter and weight map transfers gives me more scope for troubleshooting. On the way, I had to write a few python scripts to compare and contrast morphs applied to other conformed figures to identify morphs which had no deltas at all (either by oversight or because they were irrelevant to that body part) and eliminate them [Typically full body morphs named after a BODY value parameter which dials in a collection of other morphs. If all of the component morphs have already been transferred, then FBMs with the collective name that actually have deltas are redundant and duplicate the effect]. Another script examined and corrected value operations controlling the conformer's morphs, and ensuring they derive from the appropriate body part on the base figure. A third does the same ERC application for base deformer channels inherited by the clothing.

Having written and debugged all of those functions, I'm confident with the resulting transfers. There's still a lot that it would be nice to be able to automate, such as selecting a relevant subset of morphs to transfer without user intervention, but the Python API has not exposed such methods, yet.

One of the difficulties I see with weight mapping, apart from everything you describe above, is that unlike zones, they do not define a field, where the weight value at points away from the surface is defined. Projection, as you describe it, is one way to achieve that, but has no adjustable algorithm, that I'm aware of, to vary the projection strength.

The particular example I'm thinking of is my attempts to weight map the internal organ figures that are available for V4, specifically the mammary glands, which are detailed three dimensional structures, not just a convex hull. Adjusting or painting the weight maps on the internal facets of such a figure is a nightmare in Poser. The weight painting tool just doesn't quite deliver the ability to weight vertices within a volume smoothly. Only at the currently visible surfaces. Having a python script need to write a pose file and then apply it just to modify weight maps doesn't help either.



My ShareCG Stuff

Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.


FVerbaas ( ) posted Sat, 06 July 2019 at 6:35 AM · edited Sat, 06 July 2019 at 6:39 AM
Forum Coordinator

I made some steps to explore that route:

  • make base zero geometry for clothing
  • drape the garment at key joint rotation poses (intermediate points not necessarily figure JCM points) This can be Marvelous Designer, Cloth room, or ZBrush or whatever) to determine target geometry.
  • rig garment base with unimesh geometry and basic joint parameters.
  • for each elementary joint motion for each vertex determine best fitting values of rotation weight and bulge to resemble the target and insert in joint parameters
  • with updated rig repeat previous step to verify and seek improvement. If no improvement of significance found resemblance is as good as rig bending will bring you so stick with that.
  • determine JCM deltas as difference between target and rigged garment. Axial motions will remain to be JCM. Poser rigging does not allow for axial effects. One could of course introduce harmonics of the joint angles to improve the fit.

I got as far as the first three bullet points. Rest will likely have to wait for long rainy days/night after my retirement, provided house redecoration done, the shed fixed, and some more. LOL! Result will be MORE JCM's, but generated automatically.


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.