Forum: Poser Technical


Subject: Poser 7 animation layer information?

kuroyume0161 opened this issue on Apr 29, 2008 · 5 posts


kuroyume0161 posted Tue, 29 April 2008 at 3:38 PM

So far, I've found that there are two places in the Poser file which involve Poser 7's animation layer information:

=========================================================
At top level (below actors)
=========================================================

keyLayer <layer-name>
{
    on <1|0>
    startFrame <frame (0-based)>
    length
    combine <add|replace>
    preBlendFrames
    postBlendFrames
    preBlendType
    postBlendType
}

Order is from bottom up (Base Layer assumed).  So:

keyLayer Layer_1
{
}
keyLayer Layer_2
{
}

is shown as this in Poser:

Layer_2
Layer_1
Base Layer

=========================================================
In affected channel keys section:
=========================================================

The ordering of layers is same as keyLayer:

Base Layer
Layer_1
Layer_2

keys
{
    <base-layer keys
     same as old Poser keys>
    layer kfrm <layer-name>
    <list of keyframes same as old Poser but including after 'k':>
    k 0
    kfd
}

I'm assuming what is what on k and kfd only because it is impossible to tell.  When you select the dial value in Poser, the value changes in one direction or the other everytime - the results get rather messy and unfixable.

Another thing is how understanding how Add works and how the values in the keys section are used.  Are they cumulative - so two layers (besides the Base Layer) added are cumulated into the top layer (the one last in the keys section)?  And I'm not sure how the 'Add' works.  Obviously, simply adding to rotations which cover the same ground is going to lead to incorrect results.  Is there a delta taken into account here?  This layer system is a mess and hard to decipher due to the volatile nature that I've experienced with it.

Appreciate any help.
Robert

C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, you blow your whole leg off.

 -- Bjarne Stroustrup

Contact Me | Kuroyume's DevelopmentZone


markschum posted Tue, 29 April 2008 at 4:07 PM

The add simply adds the base value to the layer value in bottom up order, at least as far as I can tell. Thats what happens if you save as a pose file and tesll it to merger layers .
.


kuroyume0161 posted Tue, 29 April 2008 at 5:03 PM

That probably explains why two walk cycle layers set to 'Add' cause such a ruckous. :)  One would think that the best solution here would be to interpolate the values at each frame rather than strictly add them together - yeeks.

Do you think that I have the (which is more like the ) and correctly assigned?

Once again, I might have to play with this in my plugin and works towards getting similar results in some various situations.

Thanks, markschum

C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, you blow your whole leg off.

 -- Bjarne Stroustrup

Contact Me | Kuroyume's DevelopmentZone


markschum posted Sat, 03 May 2008 at 12:32 AM

I am basing mostly on what happens if you save an animated pose and reduce it to one layer.

It should be fairly easy to set up a test  and read out the values at each frame for say a 30 degree bend added to a 60 degree bend .


kuroyume0161 posted Tue, 06 May 2008 at 5:54 PM

Sounds like a good plan.  I'm going to do this before commencement of the coding. :)

Thanks again.

C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, you blow your whole leg off.

 -- Bjarne Stroustrup

Contact Me | Kuroyume's DevelopmentZone