Tue, Feb 18, 12:24 AM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Moderators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2025 Feb 17 1:30 pm)



Subject: A question or so on making facial expressions morph neutral


gishzida ( ) posted Sun, 18 January 2009 at 2:33 AM · edited Fri, 14 February 2025 at 7:25 PM

I recently purchased a set of facial expressions here in the RMP... but when I went to use them I found they were not "morph neutral" (the facial expression fc2 file overwrote the character's facial morph). I'm not naming the vendor 'cuz that wouldn't be nice.

I tried 3D Universe's "Pose repair" app but when you check "remove morph dials" it removes both morphs and expressions.

Now I'm not totally a newbie to editing poser files and I know that head "morph parameters" are different than "expression parameters"... If  it isn't a custom obj injection then all of the character's features "should be" dictated by the morph dials rather than the expression dials. This is mostly true for the Mil3 charactrers... V4 has moved some dials out of the facial morph group and moved them into the expression group (why is a cheek crease an "expression" when it is a morph feature? Last I looked the creases below my cheeks stay when I have a neutral expression... never mind philosopy...)

I assume this set of expressions can be fixed if I remove the morph parameters and leave only the expressions... The character morph I'm trying to use these on is a V4 "dialed" morph.

How can I edit an fc2 file to make it "morph neutral"? Does some one have a script (or know where I can get one) that can do this?

If not , Does any one have a list of facial morph parameters and a list of expression parameters laying around?

I'm thinking that I can either by hand or by python  script strip the morph parameters and leave only the expression.

Any help or suggestions would be appreciated.


svdl ( ) posted Sun, 18 January 2009 at 5:21 AM

The tool I use for this kind of stuff is CR2Builder by kim99 (free download, don't know the site off the top of my head, but Google will turn it up just fine).

You'd have to make that list of facial expressions yourself - there are different expression morphs and morph names for the different Poser figures, so there's no "one size fits all" solution.

Then you can use CR2Builder to open the .fc2 file, expand the head actor, the channels section, and delete every channel that is not an expression morph.
Same for the eyes (but leave the rotate channels, they're probably part of the expression!) and the neck.

Hmm. Shame I don't have the time, this is very well possible to script with Python.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


gishzida ( ) posted Sun, 18 January 2009 at 8:42 AM

Thanks for the info... I'm working now on modding one of Ockham's scripts... frankly it would be easier to script in FreeBasic than in Poser Python -- mainly because simple things like a writeline function does not exist. and all variables within a WHILE loop are local...

For V4, the algorithm looks something like:

open fc2 file
Read each line and Write a modified file as is until you read:
"        targetGeom SCLHeadSize"
Ignor lines until you read:
"        targetGeom PHMHappy"
Write Lines until you read:
"        targetGeom FBMYoung"
Don't read the rest of the lines as they aren't needed
Write the closing brackets
"        }"
"    }
"}"
Save File

This works mostly because in the design of V4, they grouped the facial parameters into a morph group and an expression group.

Now if I can just figure out how to get things to write the way I want them to... worse comes to worse I'll fall back on FreeBasic and create a bulk convertor.


gishzida ( ) posted Sun, 18 January 2009 at 11:28 PM

It turns out this is a "non-trivial problem".

I spent most of the day bashing on python using one of Okham's scripts as a starting point trying to get a working expression cleaner. I didn't get one.

Apparently some vendors are better than others in cleaning up unused morphs. For example The particular facial expression set I set out to clean up is set-up so that he first 25 lines are unchanged. then from line 26 through line 1166 are facial morphs that are unneeded. Then from Line 1167 through 1936 are needed as they are the expression morphs. You drop the balance of the file and write 3 curly brackets to properly close the file format-- it sounds simple... but it is not.

until I opened and looked at another set of facial expressions that needed cleaning too... and found the above line numbers did not match... and then for good measure I took a look at the facial morph file for Billy-T's RAN... the first 25 lines are fine but the needed lines don't start until line 2259 and end at 2301.

I won't even talk about the differences different versions of poser or the difference in models.

Looks like I'm going to have to put together a full head parameter list and then read each line and compare it to a list. if the parameter is one that I want I will count curly brackets and write it to the out file. If it is a parameter I don't need I'll skip it.

While python may be good for some things I'll probably write a brute force "bulk" cleaner in FreeBasic or something.

Thanks again for the feed back.


markschum ( ) posted Sun, 18 January 2009 at 11:33 PM

I have a utility that does this by removing all morph channels from the pose file that are a value of 0.   That is the most common fault in some pose files .


gishzida ( ) posted Mon, 19 January 2009 at 12:46 AM

Thanks for the response.

I've got a working prototype python script. I'll post it in the python forum... and I'll explain what I did and why...


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.