Sun, Feb 2, 9:03 PM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2025 Feb 02 7:25 pm)



Subject: V4 Face Morph / Eyeball Movement Question


Mark@poser ( ) posted Sun, 20 April 2008 at 8:26 AM · edited Sun, 02 February 2025 at 8:58 PM

I made a morph for V4's head in Carrara that moves the eye sockets either closer together or further apart. I manually shift the eyeballs to get get them to fit after applying the morph, and she looks fine. When I move her head, the eyeballs move as they should, but when I apply a pose, the eyes go back to V4's default position. I can correct this by re-shifting the eyeballs, but I wondered if there was a way to lock the eye balls at the shifted position, so when I apply standard morphs, I don't keep popping her eyeballs out? I have hundreds of poses, so modifying the pose files by hand would be an issue. Any thoughts would be appreciated.

 

 

Thanks

Mark


lesbentley ( ) posted Sun, 20 April 2008 at 10:21 AM

The best way is to use ERC to slave the eyes to the channel that contains the morph. For details of doing this, see the thread "A Compendium of PZ2 Techniques".

http://www.renderosity.com/mod/forumpro/showthread.php?thread_id=2735605

You don't need to read the thread from the start, it is quite long. Read the posts titled "The Monster Eyes Problem (part 1)." and "The Monster Eyes Problem (part 2).", they are quite a long way into the thread.  After that, you may also want to look at some of the proceeding posts from "Injecting ERC slaving (part 1)." onwards, which also relate to the subject.


lesbentley ( ) posted Sun, 20 April 2008 at 10:34 AM · edited Sun, 20 April 2008 at 10:39 AM

P.S.

The post is a little advanced, and assumes some knowledge of ERC, and editing Poser library files.  If you get stuck, or have any questions IM me. Or post your questions here below.


scott8539 ( ) posted Sun, 20 April 2008 at 11:03 AM

i had that problem too.so i just did all the major stuff with dials ,eyes,mouth and saved in the face(expression)folder.then save my custom morph as morph target.but i only have to do that for v4.try this trick when you have your figure right,goto edit and click memorize figure then save and see if it helps.


lesbentley ( ) posted Sun, 20 April 2008 at 11:15 AM · edited Sun, 20 April 2008 at 11:27 AM

For a temporary fix in the Poser interface, select an eye, double click on a Tran dial, set the Min and Max Limits to the value on the dial. Then from the Figure menu, you can turn on "Use Limits". The catch is that Limits will be on for the whole document, and will stop you from applying more extreme poses to figures. Another fudge is to translate the eyes, then Memorize them (with the eye selected, Alt+Ctrl+E), apply a pose, then Restore the eyes (Ctrl+E). These methods can be a relatively quick way to get you out of a jam, but in the long term you are much better off slaving the translations to the morph channel, as suggested in my first post.


Mark@poser ( ) posted Sun, 20 April 2008 at 12:27 PM

Okay, I'll try these all these suggestions.

lesbentley,
I had tried to follow your ERC tutorial the other day, but it's a little beyonfd me right now. I appreciate the simplier idea you suggested too.

Thanks guys for the help.

Mark


lesbentley ( ) posted Sun, 20 April 2008 at 3:24 PM

@ Mark@poser,

I can see how the tutorial might be a bit daunting if you have not done much of this sort of stuff before.

If you like I could try to make a pz2 (pose) file to fix your problem with the eyes. It should not take me long, and seeing a file for your specific situation, might help you understand how this stuff is done. To make the file I would need some information from you.

1). I would need to know the name of the figure e.g. "Victoria 3 RR", "Victoria 3 SAE", "!Aiko 3 LE", "JessiCasual", or what ever.

2). The internal and dial name of the targetGeom (morph) channel that houses the morph. If you imported the morph as an OBJ through the Poser Interface "Object > Load Morph Target", then the internal name should be the same as the dial name. If not, and you don't know the internal name, you will need to have the character saved in uncompressed CR2 format, not CRZ. Open it in a text editor, use the name that appears on the dial as a Search string. The first instance of the Search string may be a 'valueParm channel, you are looking for a 'targetGeom' channel. I need to know the name in that 'targetGeom' channel, e.g. "targetGeom PBMCC_05", or "targetGeom MyMorph", what ever. All names are case sensitive, "MyMorph" is not the same as "mymorph".

3). For the third and last piece of information, you will need to have Poser set to use "Poser native units" in the General Properties, as accessed from the Edit menu. Once you have Poser set to use native units, then apply the head morph, set its dial to a value of "1.000", translate the eyes until they are in the desired position, then note down the value of each translate channel. So the information you would give me, if you want to go with this is:

Figure name ?
Dial name ?
Internal name targetGeom ?
xTran leftEye ?
xTran rightEye ?
yTran leftEye ?
yTran rightEye ?
zTran leftEye ?
zTran rightEye ?

I can't guarantee that I can produce a file that works for you, but I think there is a very good chance. Do you want to give it a go?


Mark@poser ( ) posted Sun, 20 April 2008 at 3:57 PM

Thanks for the offer. I re-read your tutorial and tried the approach in a pz2 file and directly in a pz3 file also. I have not had much luck. No errors, but the eyeballs keep moving when I apply a pose from the library. I using V4 and I am injecting the morph as an obj.

The text I put in to the pz3 looked like this (under actor leye):

            translateX xtran
                  {
                  name xTranslate
                  initValue 0
                  hidden 0
                  forceLimits 0
                  min -100000
                  max 100000
                  trackingScale 0.001
                  keys
                        {
                        static  0
                        k  0  -0.00197674
                        sl  1
                        spl
                        sm
                        }
                  interpStyleLocked 0
                  valueOpDeltaAdd
                        Figure 1
                        head:1
                        PHMHeadBrigette
                  deltaAddDelta 0.000100
.

. I deleted some items here

.
                  valueOpDeltaAdd
                        Figure 1
                        head:1
                        PHMFaceSize
                  deltaAddDelta -0.000820
                  valueOpDeltaAdd
                        Figure 1
                        head:1
                        Raquel
                  deltaAddDelta 0.001977
                  trackingScaleMult 1
                  }

The answers to your questions

Figure name targetFigure blMilWom_v4b
Dial name Raquel
Internal name targetGeom Raquel
xTran leftEye 0.001977
xTran rightEye -0.001977
yTran leftEye 0.0
yTran rightEye 0.0
zTran leftEye 0.0
zTran rightEye 0.0

I don't always set the Raquel morph to 1, so maybe that's some of the problem too.

I appreciate any help you can provide.

Mark


pjz99 ( ) posted Sun, 20 April 2008 at 4:56 PM

IMO you may want to go through the pose files that do this, which pretty clearly have parameter information included for the eye actors (bad choice ,wherever they came from) and strip that stuff out.  You can do it by hand, or with some mass text editor, or with a pose writing utility like Netherworks' PoseWriter:
http://www.contentparadise.com/us/user/posewriter_premium_product_18652

You might also just try simply locking the left eye and right eye (select each eye and Object -> Lock Actor) before posing.

My Freebies


lesbentley ( ) posted Sun, 20 April 2008 at 5:03 PM

OK, hopefully this will work. Copy the text between the lines below, into a text editor, and save it to a pose folder as "RaquelEyeFix.pz2".

You will want a cr2 that is clear of any previous attempts you made to use ERC to move the eyes, or attempts to move the eyes in any other way. All the translations of the eyes should be zero. The only way the cr2 should be different from the default V4, is the Raquel morph and any other dial spinning or what ever to make the character look the way you want.

Apply the "RaquelEyeFix.pz2" pose. The eyes should move to the correct position when you set the Raquel head morph to a value of "1.000". They should also be in the correct relative position when the Raquel morph is set anywhere between 0 and 1, and probably for a good way outside this range as well. It should work whether the Raquel morph is expressed via the dial in the head, or via an FBM dial in the BODY.

If it works you can save the character back to a Figure pallet, and it should still work the next time you load the character. If it does not work, please let let me know, so I can figure out what I am doing wrong.


{
//RaquelEyeFix.pz2
version
        {
        number 3
        }

actor leftEye
        {
        channels
                {
                translateX xtran
                        {
                        valueOpDeltaAdd
                                Figure
                                head
                                Raquel
                        deltaAddDelta 0.001977
                        }
                }
        }

actor rightEye
        {
        channels
                {
                translateX xtran
                        {
                        valueOpDeltaAdd
                                Figure
                                head
                                Raquel
                        deltaAddDelta -0.001977
                        }
                }
        }
figure
        {

        }
}


lesbentley ( ) posted Sun, 20 April 2008 at 5:12 PM

P.S.
I Just noticed in your last post that you said "(under actor leye)". I was assumin that the eye actors in V4 are named "leftEye" and "rightEye", like they are in almost every other figure (I don't have V4), if the eye actors are named "leye" and "reye", you will have to edit my code accordingly.


pjz99 ( ) posted Sun, 20 April 2008 at 5:22 PM

Just to confirm, V4's eyes are named "rEye" and "lEye".

My Freebies


lesbentley ( ) posted Sun, 20 April 2008 at 5:36 PM

@ pjz99,

Thanks for the info pjz99 (I wonder why they did that?).

@ Mark@poser,

P.P.S. If you wanted to edit the cr2 (or a pz3) directly, rather than apply the pose, you would need to include actor and figure numbers in the slaving code, eg:

                        valueOpDeltaAdd
                                Figure 
                                head
                                Raquel
                        deltaAddDelta 0.001977

When injecting the slaving via a pose file you should leave these numbers out. There is not much point in editing the cr2 directly in this case, as you can just save the figure back to a pallet, to save the changes made by the pose file. Below is the revised version with the correct actor names for V4.


{
//RaquelEyeFix.pz2
version
        {
        number 3
        }

actor lEye
        {
        channels
                {
                translateX xtran
                        {
                        valueOpDeltaAdd
                                Figure
                                head
                                Raquel
                        deltaAddDelta 0.001977
                        }
                }
        }

actor rEye
        {
        channels
                {
                translateX xtran
                        {
                        valueOpDeltaAdd
                                Figure
                                head
                                Raquel
                        deltaAddDelta -0.001977
                        }
                }
        }
figure
        {

        }
}


Mark@poser ( ) posted Sun, 20 April 2008 at 6:35 PM

Okay I tried the new algorithm and that seemed to work. Every time I apply a new pose the eyeballs stayed where they should. I think I also see what I did wrong earlier when I tried putting this directly into the pz3. A mistake on my part.

 

This has really saved me some time, plus I can use the same approach in the future. Thanks to everyone, and lesbentley look for a renderosity gift certificate in the mail from me.

 

Thanks all

Mark


pjz99 ( ) posted Sun, 20 April 2008 at 6:47 PM

It would be great if people distributing poses quit including eye information in them, then you wouldn't have had this problem in the first place :/

My Freebies


SoulTaker ( ) posted Tue, 22 April 2008 at 2:20 PM

bitchin about freestuff providers pjz99 ?
i'm shocked


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.