Forum: Poser - OFFICIAL


Subject: Looking for pilots for reverse deformations morph loader

colorcurvature opened this issue on Apr 27, 2010 · 117 posts


colorcurvature posted Tue, 27 April 2010 at 7:58 AM

Hi,
i have put together a release candidate for my universal morph loader script.

Would be looking for pilots who would test it with an actual product.

It can do the following:

Use cases:

If interested, please mail to mail [at] colorcurvature.com

Cheers :)


colorcurvature posted Tue, 27 April 2010 at 3:36 PM

Here is an example image. See cgscripts.colorcurvature.com

Thanks to joe public, whoever you are, for the beautiful example.


WandW posted Wed, 28 April 2010 at 9:05 AM

This sounds great, but too much going on on Real Life right now-Planting time...

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

The Wisdom of bagginsbill:

"Oh - the manual says that? I have never read the manual - this must be why."
“I could buy better software, but then I'd have to be an artist and what's the point of that?"
"The [R'osity Forum Search] 'Default' label should actually say 'Don't Find What I'm Looking For'".
bagginsbill's Free Stuff... https://web.archive.org/web/20201010171535/https://sites.google.com/site/bagginsbill/Home

JoePublic posted Wed, 28 April 2010 at 11:32 AM

Just a 10 minute fix using colorcurvature's script and zBrush.

"Click" Export
Sculpt the POSED mesh in ZBrush (Or wherever you like)
"Click" Import
Finished.

Thank you for the kind words, colorcurvature ! :-)

All I can say is, this little script is the final piece of the puzzle I was trying to complete when I started my quest for more realistic Poser figures 10yrs ago.

Since then there were lots of improvements in rigging, lots of better ways to create our own sculpting, lots of helpful add-ons making our work easier.

But this script gives us finally 100% CONTROL over what we do in Poser.

We can now easily export a welded, pre-morphed, pre-posed-and pre-scaled figure out of Poser into a professional sculpting software like ZBrush, do anything with it we like, and get it back into Poser as a fully working figure again.

With just a few mouseclicks.
And with PERFECT results.

Even the most extreme poses causing severe "broken" joints are now easy to fix.

JCM morphs for clothes are child's play now because you can work in ZBrush on the POSED clothing.
(And unlike using MorphLoaderPRO, the results are PERFECT in Poser !)

For anyone interrested in more realistic joints, for anyone interrested in better fitting clothes, for anyone wanting  to seriously speeding up their workflow when rigging content for Poser figures, this script is a MUST HAVE.


-Timberwolf- posted Wed, 28 April 2010 at 12:25 PM

I WANT IT NOW !!!  Pleeeeeaaaase


FrankT posted Wed, 28 April 2010 at 1:44 PM

sounds like that could be a pretty handy utility for those of us who use ZBrush/mudbox etc. a lot

My Freebies
Buy stuff on RedBubble


-Timberwolf- posted Wed, 28 April 2010 at 2:25 PM

Quote - I WANT IT NOW !!!  Pleeeeeaaaase

Please excuse my lost of controll,but this is exactly what I searched so long in Poser.To be able to load morhps that fix bad joint deformations.Combining with the edit dependencies option introduced in Poser 8 this is adream come true.


Cage posted Wed, 28 April 2010 at 2:27 PM

What if the Poser morph brush is actually the best morphing option you have available?  I assume the exported .obj can just be imported into Poser, treated with the morph brush, exported again, then re-loaded using the script?

Sounds like a wonderful utility!  :thumbupboth:

===========================sigline======================================================

Cage can be an opinionated jerk who posts without thinking.  He apologizes for this.  He's honestly not trying to be a turkeyhead.

Cage had some freebies, compatible with Poser 11 and below.  His Python scripts were saved at archive.org, along with the rest of the Morphography site, where they were hosted.


JoePublic posted Wed, 28 April 2010 at 2:50 PM

"I assume the exported .obj can just be imported into Poser, treated with the morph brush, exported again, then re-loaded using the script?"

Yes, you can do this.

While the MorphBrush in Poser8 / Pro 2010 has gotten a lot better, it still has problems smoothing extreme joint deformations.
So morphing a (welded) object is a lot more accurate with it than morphing a "live" mesh.

So you just grab the posed and welded mesh that the script exported, re-import it into Poser, morph it using the MorphBrush, and then export it again as an object so that the loader script can convert it back into a morph.

BTW, the morphs that this script creates are "ordinary" morphs.
So, unlike the "special" MorphBrush created morphs, which need a special morph channels and can't be injected easily, they can be distributed and injected and used by owners of older versions of Poser just like any other morph can.

Simply said, this script can do anything DAZ ' MorphLoaderPRO can do (Which you can only get by buying the  PRO Rigging tools bundle), but it does it easier and faster and especially MORE ACCURATE.

The fix morphs don't need to be "re-fixed" in Poser.
You will get EXACTLY the same shape on the actual figure that you sculpted on the welded object.


FrankT posted Wed, 28 April 2010 at 3:04 PM

I can see me buying this as soon as it hits the store.  Could save truckloads of time

My Freebies
Buy stuff on RedBubble


Cage posted Wed, 28 April 2010 at 3:06 PM

Sounds fabulous!  :woot:  Deserving of a Woot and a Squee!  :lol:  I agree with -Timberwolf-: I want it now!  :laugh:

===========================sigline======================================================

Cage can be an opinionated jerk who posts without thinking.  He apologizes for this.  He's honestly not trying to be a turkeyhead.

Cage had some freebies, compatible with Poser 11 and below.  His Python scripts were saved at archive.org, along with the rest of the Morphography site, where they were hosted.


Diogenes posted Wed, 28 April 2010 at 3:23 PM

Cool!  I have been using morph loader pro in the DS setup tools, but sometimes (especially shoulders) the morph looks good in DS but is broken in Poser.  Joe, I know you know what I mean, so does this app fix that?


A HOMELAND FOR POSER FINALLY


JoePublic posted Wed, 28 April 2010 at 3:28 PM

"Joe, I know you know what I mean, so does this app fix that?"

Yep.
No need to "re-fix" MLP generated fix morphs any more.
With this script, what you see (In yor modelling software) is what you get (In Poser) . :-)


FrankT posted Wed, 28 April 2010 at 3:30 PM

One thing - is it compatible with Poser 7.
I've not upgraded to anything later than that because I don't need all the bells and whistles (I render in Vue or 3DS MAX)

My Freebies
Buy stuff on RedBubble


JoePublic posted Wed, 28 April 2010 at 3:31 PM

(Poser P4 "Dork" fixed in ZBrush using colorcurvators' script)

And it works with all figures, regardless how "primitive" the rigging is. :-)


Diogenes posted Wed, 28 April 2010 at 3:34 PM

Excellent!  :woot:


A HOMELAND FOR POSER FINALLY


JoePublic posted Wed, 28 April 2010 at 3:34 PM

"One thing - is it compatible with Poser 7."

I myself tested it mainly in Poser 8, but as far as I know, there are no problems using it in Poser 7.


Letterworks posted Thu, 29 April 2010 at 12:46 AM

OK, OK ! I think we've waited long enough! Please submit this to the store so I can spend my hard earned (or hardly earned) money!


colorcurvature posted Thu, 29 April 2010 at 1:29 AM

Wow joe, these are really excellent fixes you made :-).
Makes me work twice as hard to get it into the store.
I am still putting a cookbook together, and some debug output has to be hidden =).

Still looking for 1 or 2 volunteers to try the pilot. Will only submit it if its completely issue-free and highly usable :-)). mail (at) colorcurvature.com


-Timberwolf- posted Thu, 29 April 2010 at 6:05 AM

In my cristall ball I can see lots of kicked out Poser figures coming back to life .  ;)


odf posted Thu, 29 April 2010 at 7:42 AM

Sounds great! Could you grab a time machine and send it back one year or so? :laugh:

Seriously, MorphLoaderPro has been a life-saver for me. The same functionality directly within Poser would be fantastic.

-- I'm not mad at you, just Westphalian.


colorcurvature posted Fri, 30 April 2010 at 11:02 AM

Ah, the morph loader pro I think can do a bit more. From what I heard, it can also let you attach a morph to a bend dial as a slave. I could not see anything in P7 API that would let me allow to do this. I wish it would be possible. But Joe said it could be done in P8.

Maybe its possible for P7 users to print out some text that can be copy/pasted into the .cr2 easily. But I never set up such a chain manually myself. Anybody knows how to? I would happily integrate it.

In the meanwhile, here is a preview screenshot of it.


Letterworks posted Fri, 30 April 2010 at 12:04 PM

colorcurvature

Making a morph into a dependent parameter is a fairly easy cr2 hack for P7, Smith Micro just added a few tools to make it even easier.

In essence if you create a full body morph you are creating a dependent parameter. To make the morph work as a cross talk FBM you simply add the following lines to the FBM dial in the body section of the cr2...

valueOpDeltaAdd
Figure 1
(control group, for example rThigh: 1)
(control attibute, for example xrot)
deltaAddDelta (and the value = the ratio of morph to original diial)

You can use this in each of the morphs in the various groups, but since you have already made them a FBM it;s less work to make the Master FBM dial read the cross talk form the controling figure and then pass the "orders" on to the "slave: morphs in the individual groups.

I know my explanation may be a little confusing but if you want I can email you a cr2 with this set up.

In poser 8 and up there are tools set up to input all of these factors. They also have a handy check box called "Include Morphs When Conforming" but I've found this control to be a bit spotty and still use the same JCM system from Poser 7 for most of my figures, at least until I can figure how to make this work more consistantly (probably my own fault, I haven;t spent nearly enough time reading up on P8+ features)


odf posted Sat, 01 May 2010 at 1:54 AM

The slaving of morphs to bend channels is actually the functionality in MLP that I've been least impressed with. For one, you have to do the maths yourself. When I want my morph to be fully expressed at 90 degrees, I have to tell MLP to use a factor of 0.011111. Not really a big deal, but it's less intuitive and can be a bit of a mental stumble block. Another huge annoyance is that the channel you want to slave to is not read back in correctly from the configuration file, which means I have to steer through three nested pulldown menus to fix it each time I tweak and re-load my JCMs.

From my experience, here are two things I'd really like to see in an advanced morph loader with ERC (i.e. morph slaving) support:

  1. The ability to save a configuration and replay it later, so that when I make changes to the morph, I can still load it with one click and have it slaved to the correct channel with the correct factor.

  2. The ability to save the deltas plus the ERC setup in a separate file. Ideally, that would be a pose file that could be loaded into Poser, but one would have to check if that actually works in practice. But since Poser, Daz Studio and I typically have at least three different opinions of what a proper CR2 should look like, I typically copy-and-paste any changes I make from whatever either software writes out into my clean "master file". So having just the bits I'm actually interested in in a file by themselves would be immensely useful.

-- I'm not mad at you, just Westphalian.


colorcurvature posted Sat, 01 May 2010 at 8:14 AM

Hm, maybe its possible to generate the ERC code directly out of the pose. E.g. you pose it, fix-morph it, and use the pose to derive the ERC parameters to have the morph applied 100% when the figure is bend into the current pose. This should be possible at least locally when there is only one bending dial active.

  1. should work already because you can just overwrite the morph targets in an active figure. so you could rework the .OBJ, and reload it.
  2. pz2/cr2 rules is indeed a  mystery :) an export into a pose file would be excellent. I think for morph deltas it is not so difficult, as long as in the figure the morph channel already exists.  at least i think the figure has to be prepared somehow, but I am not into pz2 details :(

regarding erc binding in a pose file, I do not know if it works. but isnt there the "simple m4/v4 fixes" product of corvas? i do not have a copy, but the product description sounded as if he managed to do it.


odf posted Sat, 01 May 2010 at 8:43 AM

Well, for things like hips and arms, one sometimes has to do complicated things to get a figure to look nice in every conceivable pose. So for example, I would make separate JCMs for the x- and z-rotation of the thigh, then I would apply both rotations at once, fix the resulting shape and add half the difference to each of the existing JCMs. Another option I've seen discussed is to slave a new JCM to a product of the channels. It's pretty tedious to set this kind of thing up by hand, and it would be nice to save it independently of the CR2 and load it back in later (also for example, to make JCMs for a variant of the figure or an item of clothing that would use the same ERC settings).

You're right, one cannot create morph channels via a pose file (at least that's the conventional wisdom, and I haven't seen evidence to the contrary). I forgot about that. So I guess that would still require one to paste some channels into a CR2. Still, having all the deltas and the ERC setup condensed in one pose file would be very useful.

I'm not saying this kind of functionality would be necessary right away, as it seems pretty advanced and maybe not many people would be interested in it. I'd be quite happy to set up my ERC by hand and "just" have your program take care of the morphs. But obviously, the easier it gets to create good JCMs, the more ambitious people will become. So maybe this could be something to think about for future versions. 😉

-- I'm not mad at you, just Westphalian.


colorcurvature posted Tue, 04 May 2010 at 9:21 AM

Ah yes, I think for the moment there are enough features to worry about :).
I've spent the last days with hardening the code, added self-checks, read-after-write-checks because of a bug in Poser's API, added warnings and so on.
Hopefully last thing left is an automated regression test concept. I want to check that the morphed figure is actually exactly what the morphed object contains.


colorcurvature posted Tue, 04 May 2010 at 1:56 PM

mmmh... there it is, the first real problem :(

made some code to try to measure the distance between object file and morphed figure and that discovered something i did not notice before.

i found that v4 has a gazillion of magnets attached to its body parts.
this seems to be breaking some of my assumptions.

does anybody know when poser applies these magnetism effects? is it before or after morphs are applied?


Letterworks posted Tue, 04 May 2010 at 2:08 PM

Those magnets are part of the "Magnetize Clothing" feature that helps clothing follow V4's JCMs even if the clothing itself doesn;t have the correct JCMs. I'm not sure but that may even create certain JCM effects in V4, such as muscles flexing etc.  Bearing that in mind I would 'assume' that the magnets are applied after character morphs.


Cage posted Tue, 04 May 2010 at 2:49 PM

I think one or more threads in the Poser Technical forum addressed the order in which actor deformations are applied by Poser.  I don't remember offhand how the ordering of bending, morphs, and deformers works out, however.

===========================sigline======================================================

Cage can be an opinionated jerk who posts without thinking.  He apologizes for this.  He's honestly not trying to be a turkeyhead.

Cage had some freebies, compatible with Poser 11 and below.  His Python scripts were saved at archive.org, along with the rest of the Morphography site, where they were hosted.


colorcurvature posted Tue, 04 May 2010 at 3:34 PM

Complexity is getting out of control ;)
I guess this can never be productized... beh...

I morphed a big spike into M4's head and let a magnet fly through it. It seems to leave the morph untouched. So magnets in general seem to be applied before-morph. That would be best for me. But maybe the figures are set up even differently. I parented the magnet to the head. But maybe if its a bodypart in figures... who knows.

Then i lowered the magnet to touch the unmorphed head surface and the spike began to deform. The heavily deformed spike I exported, morphed  and back loaded the semi-magnetized morph. Script told me it could that with acceptable precision, and it basically looked exactly like the deformed object. So Figure + Magnet + Morph = Deformed .OBJ. Correct =)

So that leaves some hope... will need more testing >_<


colorcurvature posted Tue, 04 May 2010 at 3:51 PM

Hmmm... at least in one example the script worked better than it actually looked. The morph I applied was maybe just far too extreme.  I have been morphing posed characters into each other, but Poser does not recalculate the vertex normal vectors as it seems. Therefore, the shadow maps do not really match, and the surface shadowing suggested breaks where actually everything was fine and smooth.  What looked poor in shadowed preview mode looks excellent in hidden line preview. Bah...

But I guess that is an acceptable limit.

Maybe should not give up yet.. weeh.


KimberlyC posted Tue, 04 May 2010 at 3:56 PM

colorcurvature this looks great! can't wait to see it finished :)



_____________________
.::That which does not kill us makes us stronger::.
-- Friedrich Nietzsche


colorcurvature posted Tue, 04 May 2010 at 4:04 PM

but then again - v4 refuses to work properly. she creates really wrong targets. mmmmh

_<
dgahdfsgh


colorcurvature posted Tue, 04 May 2010 at 4:46 PM

morphing a zero-posed into adams posekit#82  does not have the issue that morphing from posekit#72 to posekit#82.

that i think, it must be the influence of the attached deformers. i just wonder why my magnet worked.
is there an (easy) way to make these V4 magnets visible in the UI?
or need to hack the .cr2?


R_Hatch posted Wed, 05 May 2010 at 5:24 AM

Quote -
is there an (easy) way to make these V4 magnets visible in the UI?
or need to hack the .cr2?

In the hierarchy editor, make sure "show props" and "show deformers" are both checked, then simply hide and unhide V4's "Body" actor (by clicking the eye next to it in the hierarchy editor).

p.s.: check your sitemail :)


Spanki posted Wed, 05 May 2010 at 7:19 AM

BTW, you know that those magnets are essentially acting the same way JCMs do.. right?  In other words, they are being adjusted, as the joints rotate.  So the strength / distance / pull / effect of those magnets is not 'constant'.

Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.


colorcurvature posted Wed, 05 May 2010 at 11:21 AM

I think it is more than just the magnets.

I have written a new toolset just to debug the effect on morphs in the world coordinate space. I found that actually the layout of the whole virtual space is changed in a non linear fashion. Both the dialing itself as well as the axes of the (hyper)space appear to be unstable (from a linear point of view).  This is a fundamental issue and might be not the fault of poor v4. I hunted the issues down to m4 as well.

Poser seems to calculate in a way that I am not able to find out. It might be sums of rounding errors or be the cause of the core of their algorithms.

However I have a small hope. By repeatedly applying my algorithm and tracking the movement of the vertices in poser I seem to be able to reduce the error from about 10^-2 down to about 10^-6.  At least for the worst example it worked.

I morphed M4 posed with AdamTwaithes Pose 72 into a V4 with Adam's Pose 84 and the error was estimated at only 10^-7.

If this would work in general than it would get as close to mathematical perfection as possible :).
However I have to redesign the script from scratch now, and noone can say if it works good on any other poser than mine. @Testers: You will have mail soon ;)


odf posted Wed, 05 May 2010 at 6:36 PM

Wow, you are really taking this seriously. Good on you!

-- I'm not mad at you, just Westphalian.


colorcurvature posted Mon, 10 May 2010 at 5:58 PM

I think I am finally done.
If IK chains are active, the results are completely broken.
No idea whats up, but WorldVertex seems to go berserk if IK chains are active.

But if they are turned off, it seems to work just as planned!

I posed, scaled, bent, twisted the characters and even tortured them with a wave deformer. And still the morphs load at an almost exact precision!! The limit to precision were just the rounding errors of my deformer. Just hope P8 and 2010 behave the same.

Now only have left to review the code for harmlessness and package it to get it into beta.
But as I only have one I/O  "open(filename) "  and python documentation says default access is read-only, there should not be much to be afraid of :). Cage, do you agree =) ?

Maybe someone can help me where to get an "as-is" no-warranty disclaimer that I could use?


Cage posted Mon, 10 May 2010 at 6:45 PM

Quote - But as I only have one I/O  "open(filename) "  and python documentation says default access is read-only, there should not be much to be afraid of :). Cage, do you agree =) ?

I'm always prepared to be a bit afraid of something.  :lol:  I'm afraid, at the moment, that I'm not quite sure what you're asking?  😕  If you're opening a file to read, you won't inadvertantly alter that file, if that's what you're asking.  You'd have to explicitly open a file to write or append, in order to make any alterations to the file.

Glad to hear that you're nearing completion!  :woot:

===========================sigline======================================================

Cage can be an opinionated jerk who posts without thinking.  He apologizes for this.  He's honestly not trying to be a turkeyhead.

Cage had some freebies, compatible with Poser 11 and below.  His Python scripts were saved at archive.org, along with the rest of the Morphography site, where they were hosted.


colorcurvature posted Tue, 11 May 2010 at 2:24 AM

Yes, if  'r' is not passed to open(abc), it should still open for read, I hope ;) I saw most people use open(abc,'r'), but from the docs I think open(abc) is just the same, and I would prefer that notation.


odf posted Tue, 11 May 2010 at 2:49 AM

Quote - Yes, if  'r' is not passed to open(abc), it should still open for read, I hope ;) I saw most people use open(abc,'r'), but from the docs I think open(abc) is just the same, and I would prefer that notation.

Yes, you can trust the documentation.

-- I'm not mad at you, just Westphalian.


poliakis posted Tue, 11 May 2010 at 4:26 AM

Quote -
Maybe someone can help me where to get an "as-is" no-warranty disclaimer that I could use?

You could look at the FTC site, especially this link:  www.ftc.gov/bcp/edu/resources/forms/buyers.pdf  :lol:

More seriously, you could use any limited warranty statement that you will easily find on shareware programs for example.

Ooh, and BTW, I WANT to use your soft, even with no warranty at all :biggrin:

Cheers


colorcurvature posted Tue, 11 May 2010 at 4:28 PM

Good to hear ;)
And there will not be any warranty =).
There are far too many variables in the game to bet one's life on it.
Figure setup can be very complex, and Poser does not always do the right thing. I noticed it cannot make FBM's for M4/V4/F4 properly if you are using the morphforms when you create a FBM. Because that is a morph dial, Poser tries to add the dial to the morph. But then the link?param to the BODY actor gets de-synched. In consequence you cannot save the pose any more. One does not need a script to reproduce this phenomenon.

While I think its ok that it tries to add the morphform, it is not ok that the dial sync gets broken when that FBM is in use.

So I added a big warning on the banner screen, that the user is always in charge to  check that what he got is what he wanted. Posers system is too complex and too intransparent to be sure unless one checks :)

I think :)


-Timberwolf- posted Thu, 13 May 2010 at 8:28 AM

You could easily create your own Morphforms in Poser 8 / 2010 using the dependencies editor. Just  add your reversed deformer Morphs to them. I am so excited about this -byebye messed up joints .


colorcurvature posted Mon, 17 May 2010 at 12:34 PM

yes, i want P8 too :-)
I have contacted the testers now, the release candidate is ready for test.
Joe reported its working in P8 and 2010, so I have hope it is now stable :).

Then all thats left is some talk with rendo admins regarding the EULA. They basically said that the EULA is also protecting the vendor, not only rendo itself. So this sounds good.


estherau posted Tue, 18 May 2010 at 7:24 AM

 bookmark

MY ONLINE COMIC IS NOW LIVE

I aim to update it about once a month.  Oh, and it's free!


amy_aimei posted Tue, 18 May 2010 at 8:21 PM

 Look very interesting!  How can I missed this thread!?


Diogenes posted Sun, 23 May 2010 at 5:26 PM

Hi colorcurvature:

Any news? Dont mean to rush/pester you. But, I really NEED this app badly right now :) I am doing JCM's for my Brad figure right now, and I have done some different things with his geometry that the DS tools will not work with. Poser has no problem working/exporting with Brads geometry, so I am desperately in hopes that I can get your Poser friendly app ASAP.

Cheers,
Mike.


A HOMELAND FOR POSER FINALLY


colorcurvature posted Mon, 24 May 2010 at 4:18 AM

hi, mike, I am waiting for tester feedback, but seems everybody was gone during the weekend :).  i hope its basically stable now, joe had a situation where the precision was strangely low (but appearently still made a fine morph).  you can try the tool if you like. drop me mail [at] colorcurvature.com.


R_Hatch posted Mon, 24 May 2010 at 11:31 AM

I haven't received the script, so I can't test :(


colorcurvature posted Mon, 24 May 2010 at 4:36 PM

hi spanki,
so sorry, the test are done in two waves. at the moment its mainly retesting of the parts that proved not working good enough in the initial release. and there we things reported still; I have yet to decide if I should enable them or not. guess I will though.
you will receive the edition that has the wave1 issues fixed.
best regars,
cc


Diogenes posted Tue, 25 May 2010 at 6:49 PM

I have been testing the universal Morph Loader with making JCM's for my figure Brad. The script has been performing very well. I have not had any bad morphs loaded with it yet.

In the pic the one on the left is without any JCM morph, the one on the right has the JCM loaded. The morphs load smoothly and look like they should. JCM for the X rotation on the thigh.


A HOMELAND FOR POSER FINALLY


Diogenes posted Tue, 25 May 2010 at 6:57 PM

I am liking this morph loader for Poser alot. It is easy to work with and much faster than other alternatives I have used in the past. Plus I can easily stack smaller morphs with it and then combine them for the full JCM.

In the Pic the JCM for the X rotation of the thigh.  On the left no JCM, on the right with the JCM loaded.  Excellent tool :)

Next I'm working on the shoulders, an area that I usually have to stack many small morphs on top of eachother.


A HOMELAND FOR POSER FINALLY


BadKittehCo posted Sun, 30 May 2010 at 4:24 PM

Looks very interesting.
It looks like it may do for Poser what Figure Setup Tools did for DAZ Studio. I love Figure Setup Tools for DS. Huge time saver for content making.

___
Renderosity Store  Personal nick: Conniekat8
Hi, my name is "No, Bad Kitteh, NOO", what's yours? 


Diogenes posted Sun, 30 May 2010 at 4:50 PM

Hi Connie :)

Yes the script works very well for reverse deformation morphs. You still have to set up the erc etc. But I think that is a feature that could be added later with another script. Or by hand.


A HOMELAND FOR POSER FINALLY


colorcurvature posted Sun, 30 May 2010 at 5:00 PM

Yes, it cannot do that, there is no API that would allow it.
For Poser8 I do not know, I just recently bought it, hoping for the hierarchy editor to allow set up of the ERC.
To give an update, we had a problem with shading errors on body part seams, this is now hopefully fixed and about to be re-tested. If its finally ok, then I will do a final review/regression test, write a better manual and submit it to rendo and pray ;).


colorcurvature posted Tue, 01 June 2010 at 11:41 AM

Small Update: Its looking good currently. Friday I will put the manual online.
Then search for a few count of people for a point of no return test.


JoePublic posted Tue, 01 June 2010 at 11:56 AM

Attached Link: http://www.youtube.com/watch?v=raNM0UvR_Bo

Are we there yet ?

Are we there yet ?

Are we there....yet ?

;-)


poliakis posted Wed, 02 June 2010 at 6:43 AM

Noooooooooooo :lol:

Anyway, i want that script soooooooooooooooooo much :biggrin:

Cheers


colorcurvature posted Thu, 03 June 2010 at 5:15 PM

Wish I could provide it already, dang >_<.
;)
Making process with the manual, hopefully I can put it on my homepage tomorrow as a sneak preview.

Is maybe someone here that uses Hexagon for making morphs? One of the testers cannot get the morphloader to work, appearently. Hexagon seems to either be losing vertex order and/or polygon group information, does someone know why? ;)


FrankT posted Thu, 03 June 2010 at 5:27 PM

There's a bug in Hexagon 2.2 which messes up the vertex order when you make morphs.  There's a free upgrade to 2.5 which cures it

My Freebies
Buy stuff on RedBubble


bopperthijs posted Thu, 03 June 2010 at 7:05 PM

I use hexagon 2.5  for making morphs, but I always use UV-mapperPro  and kawecki's morpher script to make sure the vertex-order is correct to reload the morph back into poser.
I  still don't understand how to make proper JCM-morphs in a extern modeller without using a  pose.

This script sounds very promising. Can't wait to use it.

Best regards,

Bopper.

-How can you improve things when you don't make mistakes?


-Timberwolf- posted Fri, 04 June 2010 at 1:36 AM

If you can also use the morph-brush in Poser 8 or 2010. Not as good as a modeller but some good results.If this tool is similar to DAZ's tool,you export the posed bodyparts as obj tweek the joints and use the reimported obj as a morph target by using this reverse deformation loader.


lam2 posted Fri, 04 June 2010 at 2:45 AM

I have both Hexagon 2.1, 2.5 on my machine.
For the way I work on morph, I prefer 2.1 over 2.5.
It's much smoother.


colorcurvature posted Fri, 04 June 2010 at 3:32 AM

It was also said that the body parts fall apart when taken into hexagon. If making morphs in this program is so hard then I think about adding a warning/limitation that warns hexagon is no fun, even with the program.


odf posted Fri, 04 June 2010 at 3:41 AM

Quote - It was also said that the body parts fall apart when taken into hexagon. If making morphs in this program is so hard then I think about adding a warning/limitation that warns hexagon is no fun, even with the program.

The same is true for Wings, ZBrush and Blender, if one does not take precautions. Unfortunately, each 3d program seems to have its own way of interpreting groups, object and materials in .obj files. I have no first-hand experience in Hexagon, but from what I've read so far, it does not seem any worse than other programs people routinely use to make morphs for Poser.

-- I'm not mad at you, just Westphalian.


colorcurvature posted Fri, 04 June 2010 at 3:44 AM

True. They all have pros and cons.


lam2 posted Fri, 04 June 2010 at 10:37 AM

I have never had a problem with Hexagon.
You export body part you want to morph as .obj with no world transformation.
Hexagon will import it correctly, and after you make morph target, export it fine.
If you want to work on several body parts at the same time, you need a separate program to do that.

Anyway, I have no issue with Hexagon.


colorcurvature posted Fri, 04 June 2010 at 10:55 AM

Yes, but that is the point. One would want to work on the whole body, to easily make a full body morph no?


lam2 posted Fri, 04 June 2010 at 11:29 AM

Yes, you are right on that one.
And your script seems to be very useful for that purpose.
Odf points out that the Zbrush has similar issues, but I don't have any experience with that program,
so I can't say anything one way or the other.

I use a different program to group body parts together, and then work in Hexagon.
Then you can work on the .obj seamlessly.
You can group the whole body too, if you want.
After the work is done, I use the same program to separate the .obj back into original parts.
It's a quick process.
But I love to try your script.
I'm sure many people are waiting for this to be released, like right now!


nruddock posted Fri, 04 June 2010 at 11:42 AM

Attached Link: http://poserpros.daz3d.com/forums/viewtopic.php?t=52585

> Quote - Yes, but that is the point. One would want to work on the whole body, to easily make a full body morph no?

It's relatively easy to do full body morphs, you need to do some pre- and post-work on the OBJ (see linked thread at PoserPros), and use a script (there are several around for older versions of Poser that can't do this natively) or plugin (for D|S) to load the morph.


colorcurvature posted Fri, 04 June 2010 at 11:45 AM

Yes, I am doing all I can >_<.
That hexagon thing is a bit a pity. I wonder why it is actually treating the body parts as individual objects. Maybe it does help to remove the group commands out of an exported .OBJ file with a text editor? Then it should logically be one single group.

I have put up the manual of PoseMorphLoader as far as it is done. So in case one is interested, there is a look to see what it its like.
http://cgscripts.colorcurvature.com/PoseMorphLoader_Manual.pdf

I still want to include the required export/import settings for the most popular deformers, and also a list of known figures that work that do not work. I think there was only one of the DAZ3 figures that did not work out of the box, have to go through the emails.


Letterworks posted Fri, 04 June 2010 at 12:15 PM

Since I use Silo, which also imports groups as separate objects I've come up with a fairly simple work-around. I export the figure to be morphed as an object then load it into UVMapper pro (I assume the free version would also work). I export the UVs of the object. Then I select all and assign them to ONE group. I export the object under a new name. I load the new object into silo and make the changes I want, then export the file. I load the modified object into UVMapper pro and import the UVs I saved earlier which returns the groups to the object so it can be saved as a new object that can be used as the full-body morph.

I've had pretty good success with this method.

Oh and another "trick" is to use Objaction Scaler3c to Enlarge the object(s) to be worked on by about a factor of 10 (make a note so you can later reduce the object(s) to their original size) before working on them this lest to work better in most 3D programs which use soft select.

Oh and P.S. I'm also barely containing myself waiting for this to be released!!


lam2 posted Fri, 04 June 2010 at 12:17 PM

Thanks for the link!
It looks very promising and I can't wait.

Well, it would be great if you can find some ways to import .objs  into Hex as a whole, so many more people would be able to get the great benefit out of your excellent script.

Using the separate program to deal with this issue in Hexagon is a set routine for me now.

Keep up your great work, and I'm looking forward to see this product  in the market place very soon!!


colorcurvature posted Fri, 04 June 2010 at 12:20 PM

Ah, it was GG3.1, the only one that makes a problem because it has has invisible unresetable morphs. So the big question remains, what to do about hexagon.
I remember there is no trial version I could download, right?


lam2 posted Fri, 04 June 2010 at 12:26 PM

Oh, I thought there was, no?


lam2 posted Fri, 04 June 2010 at 12:27 PM

I just checked DAZ, and no trial version. Sorry.


WandW posted Fri, 04 June 2010 at 1:30 PM

They hid it well:

http://www.daz3d.com/i/support/downloads?product=hexagon&_m=d

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

The Wisdom of bagginsbill:

"Oh - the manual says that? I have never read the manual - this must be why."
“I could buy better software, but then I'd have to be an artist and what's the point of that?"
"The [R'osity Forum Search] 'Default' label should actually say 'Don't Find What I'm Looking For'".
bagginsbill's Free Stuff... https://web.archive.org/web/20201010171535/https://sites.google.com/site/bagginsbill/Home

lam2 posted Fri, 04 June 2010 at 2:00 PM

That's cool.


odf posted Fri, 04 June 2010 at 9:44 PM

Wings3D likes to load the groups as separate objects, as well, but one can prevent that by explicitly defining an object at the start of the .obj file, that is, by just adding a line that says something like 'o body'. I don't know if the same trick would work in Hexagon, but it might be worth a try.

-- I'm not mad at you, just Westphalian.


arcebus posted Sat, 05 June 2010 at 3:08 AM

bookmark


www.skin2pix.com


Vestmann posted Sat, 05 June 2010 at 9:30 AM

 This looks too cool to be true!!    I want it!!




 Vestmann's Gallery


Spanki posted Sat, 05 June 2010 at 12:17 PM

Quote - Wings3D likes to load the groups as separate objects, as well, but one can prevent that by explicitly defining an object at the start of the .obj file, that is, by just adding a line that says something like 'o body'. I don't know if the same trick would work in Hexagon, but it might be worth a try.

Just to expand on this a bit... "o xxxxx" is an "object" record in a .obj file and is separate from a "g xxxxxx" - "group" record.

Group records tell the program groups/selections/sets of related polygons, whereas Object records are typically used to deliniate both sets of points/vertices as well as polygons.

Based on the fact that both exist, it makes sense to me that any "object" within a .obj file can have multiple "groups" defined as part of that object (and in fact, they are laid out that way, hierarchically within the file).  Unfortunately, many 3D apps make no distinction between Objects and Groups - they will just split either/both into multiple separate meshes.

With the above in mind, it sounds like what odf is saying is that if there IS an Object record in the .obj file, Wings (at least) starts making that distinction and leaves all the Groups in the same Object.  I have no idea if Hexagon does this though.

As for Cinema 4D, the default (built-in) .obj file - in addition to re-ordering the vertices - Import will split any Groups or Objects into separate meshes.  The default Export loses all Group information entirely.  Because of these (and many other) issues, I wrote my Riptide (and later Riptide Pro) plugins for Cinema 4D. 

Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.


lam2 posted Sat, 05 June 2010 at 2:28 PM

That's very informative  and interesting, Spanki.
Unfortunely, Hexagon does not do this.
Or at the very least, I'm not aware of it.


odf posted Sat, 05 June 2010 at 9:15 PM

Not to go too much off topic by concentrating on just one modeling application, here's what I think is a pretty common kind of workflow for making multi-actor morphs for Poser:

  1. export an .obj file from Poser (or use the original .obj file wherever that's feasible)
  2. remove all grouping information (e.g. via UVMapper)
  3. import into application of choice, sculpt, and export
    3) restore vertex ordering if necessary (e.g. via kawecki's Morpher)
    4) restore grouping information (e.g. via UVMapper)
    5) feed the result into some application or plugin that computes the deltas and creates the morphs for each actor (e.g. colorcurvature's new morph loader that this thread is about)

I'm assuming that most of us will only have experience with one or two modelers, and optimized our workflows for those. But maybe it would be useful to identify one that works pretty much independently of the modeler (if such a beast exists) and that colorcurvature could then use as a reference, concentrate on in testing and recommend to novices who are planning to use his tool.

Just my $0.02.

-- I'm not mad at you, just Westphalian.


Spanki posted Sat, 05 June 2010 at 10:00 PM

That sounds like a good plan for those not-so-Poser-friendly apps, odf.  My personal experiance is mostly with Cinema 4D + my Riptide Pro plugin... in which case, all vertex-ordering and grouping and material zone assignment is maintained, so (just for C4D users,)you simply Export from Poser, Import into C4D, make your adjustments and re-Export.  In fact, my plugin even preserves UVMapper's "Region" selections (just another means of categorizing polygon selections.. I typically use them to specify uv-mapped islands (sets of polygons that wil be using the same texture file)).

Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.


colorcurvature posted Sun, 06 June 2010 at 6:44 AM

Very many steps for making a morph :/.
I can finally have a look at hexagon later this day.
I guess one could remove all grouping information from the file with one call to SED.
Its amazing how those tools that cost hundrets of dollars are not  capable to do this out of the box.
:/


odf posted Sun, 06 June 2010 at 7:33 AM

There are obviously shortcuts, depending on the modeling tool. If you're willing to go through all the commonly used tools and figure out the best workflow for each, more power to you. In principle, I think, one could even include steps 3 through 5 in a morph loader and write a special export plugin for Poser that omits any grouping information (or maybe, it's enough to tell Poser not to generate any group names on export). That would solve the problem once and for all (or so I hope).

I have written a Scala program that takes two .obj files and creates an output file with all the grouping and the vertex ordering of the first, but the vertex positions from the second. Of course, the mesh topologies must match for that to happen. I actually managed to make this work even if the mesh topologies differ a little (because accidents sometimes happen somewhere in the workflow), but that slows the whole process down quite a bit. So porting it to Python and integrating it as a Poser script while keeping it at a practical speed might be a bit of a challenge, but it could be tried.

But that sounds more like a project for the future, I guess. :laugh:

PS: Yes, people fluent in Unix command line tools could just use sed to get rid of the grouping.

-- I'm not mad at you, just Westphalian.


colorcurvature posted Tue, 15 June 2010 at 4:58 PM

I am about done.

A fresh version of the manual is now available at
http://cgscripts.colorcurvature.com/PoseMorphLoader_Manual.pdf

If there is anyone here that is using hexagon and could help me with a test, please drop me a mail. That would be superb. Other ones are also welcome ;)

I have reached a point of no return. Its now either good enough for a release or is dead. I have been trying to find a recipe for optimal morph deltas for smooth shading at the body part welds, but this is something that exceeds my small talent. Each morph delta affects the normals not only on the local vertex, but also on the verts nearby, making it extremly hard to solve problem.
But I think its mostly very good results coming out.

It will take a few more time to offer it for sale here, because of legal issues in my country. They make it not easy to sell things. And also not cheap. If it wont sell, I'll be on a big loss, hehe :(


-Timberwolf- posted Wed, 16 June 2010 at 7:16 AM

Well a lot to learn. Could you please ,or anyone else who is familliar with this tool , post a tutorial when it is released ?  thank you


colorcurvature posted Wed, 16 June 2010 at 9:24 AM

Yes, I will put some deformer-specific tuts on the homepage.
Its basicall easy. Export, Deform, Import.
Mostly, the import/export settings in the deformer have to be set correctly.


Vestmann posted Wed, 16 June 2010 at 9:26 AM

 Any estimates on the release date...?




 Vestmann's Gallery


colorcurvature posted Thu, 17 June 2010 at 2:36 AM

Yes, when

(A) If we export from Poser with [x] include body part names, hexagon imports this as a set of split objects which is unwanted.
(B) If we export from Poser with [ ]include body part names and [x]weld, then the figure stays as a whole, but on saving, hexagon removes some of the vertices and adds a DEFAULT group, my main theory is that they are unused in the polygons because of [x] weld.

To the hexagon experts:
What happens if you import an export like (A) into hex with "merge groups" activated. If you export it from hexa, are the original groups still available or are they lost? Is there no way in Hexa to either strictly preserve the groups or the verts?

It would be really good if we could find proper import/export settings for Hexa. Its difficult for me to programmatically dodge the behaviour of programs I do not understand or own.


odf posted Thu, 17 June 2010 at 2:52 AM

Quote -
(B) If we export from Poser with [ ]include body part names and [x]weld, then the figure stays as a whole, but on saving, hexagon removes some of the vertices and adds a DEFAULT group, my main theory is that they are unused in the polygons because of [x] weld.

The welded mesh would have fewer vertices than the unwelded one. Does your program require one to work on the unwelded mesh? That would be quite limiting. Or does Hexagon also remove vertices that weren't originally welded?

I don't have Hexagon, but now I'm wondering how I would fare with my usual Wings3D workflow. The settings you mention under (B) are exactly what I'm using. Since I'm currently working on the final (hopefully, sigh!) JCMs for Antonia, I wouldn't mind giving your program a spin, if you're interested.

-- I'm not mad at you, just Westphalian.


colorcurvature posted Thu, 17 June 2010 at 3:04 AM

Urg. Wings3d :( Another thing in the game. Is it a free tool?

To clarify: PoseMorphLoader works on welded geometry.

To explain it a bit more what we tried and failed at:
 - PoseMorphLoader requires the group information to find out which vertex in the .OBJ belongs to which body part.

I really search for hexagon import/export options that change nothing but the vertex positions.


odf posted Thu, 17 June 2010 at 3:15 AM

Oomph! I'm afraid you would very likely have similar problems with Wings3D, as well. If Poser exports vertices that are not used in polygons, I'm almost certain Wings will ignore them and not include them in the export. Also, Wings has no concept of groups at all. If there are groups in the obj file but no objects, it treats the groups as objects. If there are objects, it ignores the groups. The usual trick is to convert groups to materials before importing into Wings and back to groups after exporting. Or one can use UVMapper to save and remove the original grouping information and add it back before importing the morphed mesh into Poser.

Yes, Wings is free and open source (but written in Erlang, which I am not familiar with).

-- I'm not mad at you, just Westphalian.


colorcurvature posted Thu, 17 June 2010 at 3:39 AM

If you manage to keep the groups alive (to material, from material trick), then this is sufficient.
Maybe can be applied to hexagon as well?
How is this done?
Texteditor sufficient?


odf posted Thu, 17 June 2010 at 4:39 AM

Basically, I think you would need to change every g at the beginning of a line into an m and remove all the lines that originally started with an m (if Poser produces any of those). Then on the way back you'd change the m's back into g's. I can easily do that in emacs (or use sed), but I'm not sure if the average user would know how to do it in a text editor. UVMapper might be a better solution if user action is required.

I have a pair of Python scripts for the conversion from back when I was working on Antonia's base mesh because I needed to preserve the materials and smoothing zones as well and also do left-right adjustment of mirrored groups.

-- I'm not mad at you, just Westphalian.


colorcurvature posted Thu, 17 June 2010 at 6:36 AM

Yes, this indeed could be the solution. We succeeded with replace operations in the text editor =).
I will try to add a helper to the posemorphloader so that it works (almost) out-of-the-box for hexagon/wings3d as well.


colorcurvature posted Sat, 19 June 2010 at 9:30 AM

Now its two confirmed successes in hexagon. Hopefully this is now stable.
Wings3d i didnt manage to get work though. Its a bit hard to use, and seemed to change really everything in the .OBJ that is changeable ;). So I think it will be restricted to zbrush, blender, and hexagon for the first release.


Vestmann posted Sat, 19 June 2010 at 9:36 AM

 Sounds good!




 Vestmann's Gallery


lam2 posted Sun, 20 June 2010 at 4:11 PM

Here is an small example of what PoseMorphLoader can do. colorcurvature's python script is very easy to use, and works like a charm. I used Hexagon 2.5 for morphing.

Above image is before the morph,
and the below is after the morph applied.


lam2 posted Sun, 20 June 2010 at 4:13 PM

Oops, nudity flag.


colorcurvature posted Mon, 21 June 2010 at 1:44 PM

If no more major problems  come up now, restricted sale can begin.
I will sell a handful of copies directly, not over rendo, because I want to provide the best possible support for the early users ;). And it will be cheaper then on rendo, cause there is no split.

pleasepleasenomoreproblems
:-)


colorcurvature posted Tue, 22 June 2010 at 2:12 PM


colorcurvature posted Tue, 22 June 2010 at 2:13 PM

Custom morph for Noemie Hair (Neftis)

colorcurvature posted Tue, 22 June 2010 at 2:14 PM


colorcurvature posted Tue, 22 June 2010 at 2:27 PM

So far it was only good test results.
Restricted presale is planned for $19, 3 copies. Hopefully as early as beginning of next week.
In case anyone is interested, please drop me a mail (e-mail or site-mail).

Arcebus was so kind to write a tutorial for usage with hexagon.
http://cgscripts.colorcurvature.com/PML4Hex_arc.pdf


lam2 posted Sat, 26 June 2010 at 4:30 PM

Oh yes, I understand Miki 3.0 is around the corner, but here is another example with Miki 2.0. Her joints are awful but you can fix it with PoseMorphLoader rather easily.

colorcurvature posted Thu, 01 July 2010 at 4:38 PM

It should now work on conformed figures too.

Coleman posted Thu, 01 July 2010 at 6:06 PM

Sweetness!


bantha posted Fri, 02 July 2010 at 3:16 PM

 The script works with Silo and Sculptris too. Silo requires the "Hexagon Fix", since it removes the free vertices too. In Sculptris, you will have to take care not to add further faces ( Shortcut "Q")

This is a big time saver.


A ship in port is safe; but that is not what ships are built for.
Sail out to sea and do new things.
-"Amazing Grace" Hopper

Avatar image of me done by Chidori


stepson posted Tue, 06 July 2010 at 12:40 AM

Any update on when this wonder will be available to purchase?

Life is hard, but what a ride.


colorcurvature posted Tue, 06 July 2010 at 1:21 AM

if interested drop me a site mail. it is not on rendo yet because there is no easy way of update notifications and keeping contact with the early users, so i think the better choice is to collect feedback directly for a while until absolutely nothing comes up for some time.


colorcurvature posted Fri, 09 July 2010 at 7:11 AM

I would give out two more. Any blender user would maybe be interested? I think then I am finally confident enough to put it into a store :).  Btw thanks to those who pointed me on sculptris. This is really a fine tool!