Sat, Jan 11, 8:35 PM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2025 Jan 11 12:18 am)



Subject: A head rotation question


skee ( ) posted Wed, 09 April 2008 at 11:27 AM · edited Sat, 11 January 2025 at 6:00 PM

Is there a way to make the head of a figure stay stationary ( look at camera) while the body twist? I have tried point at camera , but the head gets bent at a very strange angle. Is there a python script for this? I have also tried putting a prop (ball) in the scene, but can not find the proper placement. Thanks for any help.
skee.

NOTE: No trees were killed in the sending of this message, but a large
number of electrons were terribly inconvenienced.


PhilC ( ) posted Wed, 09 April 2008 at 11:49 AM

Point At lines up the body's origin and end point with the object being pointed at. Heads tend to have their origin at the base of the skull but their end point is usually above the top of the head. Try using the joint editor to move the head's end point (red cross hairs), to a point well in front of the figure's face.


skee ( ) posted Wed, 09 April 2008 at 11:55 AM

Thanks Phil, I'll give this a try.
skee.

NOTE: No trees were killed in the sending of this message, but a large
number of electrons were terribly inconvenienced.


Adom ( ) posted Wed, 09 April 2008 at 11:58 AM

Probably there's an easier way but you can try this.
Set the head as IK chain.
Just add "inkyChain" sectionin in cr2 file of your figure (when you open cr2 in editor search for "inkyChain"):

inkyChain Head
  {
  off
  addLink chest:1 <-write the same number as you can see at other chain links
  addLink neck:1
  goal head:1
  linkWeight 0 1
  linkWeight 1 0.2
  }

and now go to "actor head:" section and add these lines under "useZBuffer" line:

inkyParent BODY:1<-numbers should be the same as you wrote before
nonInkyParent neck:1

Load your figure and switch IK on for the head from Figure -> Use Inverse Kinematic.
The result is nice while you don't apply some extreme poses:)


skee ( ) posted Wed, 09 April 2008 at 12:32 PM

Thanks for the replies, I took Phils advise and it worked out great.
skee.

NOTE: No trees were killed in the sending of this message, but a large
number of electrons were terribly inconvenienced.


lesbentley ( ) posted Wed, 09 April 2008 at 4:38 PM

@ Adom, Good idea Adom. By the way, did you know that you don't need to edit the cr2 to add the IK chain. It can be added via a pz2 (pose) file. Each actor that is going to be a part of the chain, and also the actor that is the 'inkyParent' must appear in the file before the 'figure' section. I find that KI chains work best when there are 3 or more actors in the chain, so I have added the chest in this example.

{
//Head_IK.pz2
//Should work on most figures.
version
        {
        number 4.01
        }
actor BODY
        {
  
        }
actor chest
        {
  
        }
actor neck
        {
  
        }

actor head
        {
        inkyParent BODY
        nonInkyParent neck
        }

figure
        {
        inkyChain     Head  
                {
                off
                name head
                addLink chest
                addLink neck
                goal head
                linkWeight 0 1
                linkWeight 1 0.2
                }
        }
}

The endPoint can also be moved with a pz2. Setting the endPoint is figure specific, You would usually need a different pz2 for each figure. The one below is for V3. The endpoint has been set slightly higher (at y=0.645) than the origin (at y=0.640). { //V3HeadEnd.pz2 by Les Bentley 09/April/2008. //Changes the location of the endPoint in V3s head, //for better compatibility with 'Point At'. version { number 3 }

actor head
    {
    endPoint 0 0.645 0.1
    }
figure
    {

    }
}


Adom ( ) posted Thu, 10 April 2008 at 3:05 AM

Well I must say i had NO idea about pz2.
I just gave it a try and it worked perfectly. From now on I won't touch cr2 file anymore:) - it's much better solution to use pz2 instead.


Adom ( ) posted Thu, 10 April 2008 at 3:22 AM

Moreover, just removed all IK data for all IK chains from cr2 and put them into pz2 - I really like it that way:) and all is working fine.


lesbentley ( ) posted Thu, 10 April 2008 at 12:26 PM · edited Thu, 10 April 2008 at 12:40 PM

By the way, it may be worth pointing out that if you are going to use a pz2 to modify an existing IK chain, different figures use different names for the IK chains, this has to be taken into account when using the pz2. The P4 figures use:

rightArm 
rightLeg 
Etc. 

The DAZ figures use:
RightHand 
RightLeg 
Etc. So does Jessi.

I suspect that most if not all recent figures use the DAZ convention. These names are case sensitive. Although the names are case sensitive, Poser will always turn on leg IK for chains named "rightleg" and "leftleg" no matter what the case.

If you want the figure to load with leg IK off, in Poser turn IK off (it's IMPORTANT that you turn it off in poser), save the figure, then edit the internal names (not the display names) of the IK chains in the cr2 by inserting a space or underscore, eg "Right_Leg".

Of course you have just discovered another way to have a figure load with IK off. Don't have any IK chains in the cr2 to start with, load them from a pose file if and when you need them. I never thought of that.

Again a word of caution, you should only delete IK from a cr2 that has been saved with IK off, if it was saved with IK on, the feet may end up being displaced when you load the figure. This is to do with the fact that Poser changes the parenting and hierarchy when you turn IK off.


Adom ( ) posted Thu, 10 April 2008 at 1:31 PM

About the names - yes this is very confusing and can couse plenty troubles sometimes:)

The way of changing names inside cr2 to turn IK off for legs is not what I like so I was quite happy when you mentioned about pz2 file.

Fortunately the changes which are made inside cr2 after saving with IK on are not so big.
Each IK target (which is on while saving) has parent set to BODY in actor section and addChild section. That's all (I think:)


lesbentley ( ) posted Thu, 10 April 2008 at 3:53 PM

file_403896.jpg

Try this. Load a figure in Poser, turn leg IK off, set the Side-Side dial for the rThigh to 45º, turn IK back on, save it to a pallet with a new name. Delete the IK chains. Try the edits you suggested to 'parent' lines and 'addChild' lines. Reload the figure in Poser.

I think you will get the point. See the image above.

I don't know all the "why's" and "what if's" about this, but personally I'm not going to remove IK from figures that were saved with IK on. Note that translation and rotation data in in the legs can be different depending on whether IK is turned on or off. You may get away with it for a zeroed figure, but I would rather not take the risk.  Besides it is easier to turn IK off before saving than to zero the figure, and then have to do all the extra edits.


lesbentley ( ) posted Thu, 10 April 2008 at 4:17 PM

P.S. Above I am talking about figures with the IK chains removed. What you suggest may work fine if you are just editing the IK from "on" to "off".


Adom ( ) posted Thu, 10 April 2008 at 4:52 PM

I should have mentoined berfore that I'm talking about saving figures in their Zero position  (to alter its pose I'd use pz2. That's why it didn't cross my mind to think about example as yours).

If you'll change the position of IK targets (here lFoot) and save figure (cr2) then  yes you are 100% right that changing "parents" is not enough (dials that without IK are set to 0 get some value when IK is on - so that should be corrected as well -> Side -Side is a good example).

So when I said "change parent only" I meant  in "Zero pose" figure:)


Adom ( ) posted Thu, 10 April 2008 at 6:49 PM

In your example:

  1. IK off: lThigh side-side (s-s) = 45  --> IK on: lThigh s-s = 45 - (not important)
  2. IK off: lFoot s-s = 0 --> IK on: lFoot s-s = 45 - (not important)

And now comes the part which couses dislocation

  1. IK off: lFoot xTran = 0 --> IK on: lFoot xTran = 0.2
        IK off: lFoot yTran = 0 --> IK on: lFoot yTran = 0.1

While IK is on, the position of lFoot is controled by xyzTran (values are saved into cr2 accordingly).
While Ik is off these values are not saved (while IK is off, xyzTran should be 0 usually)

Now when you load your cr2 (which was saved with IK on) and all IK chains are removed from this figure then:

  • Your lFoot actor gets non zero  xyzTran (those dials are hidden [BUT NOT IGNORED]  when IK is off) and automaticaly (this actor) moves to position indicated by xyzTran (but it cannot find any IK chains so only lFoot geometry is shifted - but still welded to lShin).

So that is why after removing IK from CR2 (which was not saved in Zero pose) it is necessary to zero xyzTran of IK targets which were moved (the other dials won't make any troubles). It could be corected inside poser if xyzTran were visible while IK was off.

But anyway this is to much troubles.
And I agree with you that it has no sense at all doing this that way since you can just save cr2 inside Poser with Ik set to off:)
And I think we are now totally off topic so just thank you for that pz2 idea from your first post.


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.