Forum: Carrara


Subject: Poser animation to Carrara tutorial

Krewz opened this issue on Nov 25, 2008 · 10 posts


Krewz posted Tue, 25 November 2008 at 9:00 PM

Here is a tutorial on how to get Poser animated scenes in Carrara (like the subject says). 

Every time I bring up this subject someone asks "Why not just do your scene in Carrara?"    Carrara does handle .cr2 content very well (especially with the new C7 beta) but there are still some reasons that you may want to use Poser to animate.

Poser has the walk designer, talk designer and dynamic cloth built in, no need for plugins, and it has a fast preview mode (box mode) which is handy for animating hi-poly figures with lots of morph targets (i.e. Mil figures).  I've noticed Mil figures really slow down the playback speed in Carrara.

You can keyframe walk cycles and lip syncs by hand, and some people don't mind the slow playback speed, but one thing you can't do at all in Carrara is dynamic cloth.

There is a script (http://www.daz3d.com/sections/tutorial/files/1543/Dyn_to_Morphs.zip) that can change Poser dynamic cloth into morphs which can be imported into Carrara, however Carrara cannot handle Poser IK.  Also Carrara interpolates keyframes differently than Poser does, which can mean pokethrough and other positioning oddities after scene import.

Luckily there are solutions to these things.  While Carrara can't read poser IK or interpolated keyframes, it does read keyframed Poser figures with FK very accurately.  This means that you need to keyframe every property on every bodypart on every animated figure in your scene for every frame for the entire length of your animation, turn IK off for your figures, then import the scene into Carrara.

You can do this by hand, which would be very tedious, but it is much easier to use this Python script:

#begin KeyAllFigure.py
import poser
scene = poser.Scene()

frames = scene.NumFrames()
frame = 0

while frame < frames:
    scene.SetFrame(frame)
    for eachActor in scene.CurrentFigure().Actors():
        for eachParm in eachActor.Parameters():
            returnTest = eachParm.Hidden()
            if returnTest != 1:
                eachParm.AddKeyFrame()
    frame = frame + 1
#end KeyAllFigure.py

Also this script will key everything on an actor (usefull for animated cameras, props, individual body parts, etc...):

#Begin KeyAllActor.py
import poser
scene = poser.Scene()

frames = scene.NumFrames()
frame = 0

while frame < frames:
    scene.SetFrame(frame)
    for eachParm in scene.CurrentActor().Parameters():
            returnTest = eachParm.Hidden()
            if returnTest != 1:
                eachParm.AddKeyFrame()
    frame = frame + 1
#End KeyAllActor.py

Thanks go to PhilC, as the idea for these scripts were based off of his original code posted in the Rosity PoserPython forum many months ago.

It should go without saying that you should have your poser scene exactly how you want it before keying everything, as you will have to wade through a ton of keyframes to make any adjustments.

Save (a copy of) your Poser scene, import it into Carrara, if the "pose outside limits" dialogue pops up click "leave limits on" then turn constraints off.

Lastly, after importing the scene convert the camera focal length, I eyeball it but I believe multiplying the Poser focal by 1.71 or so converts it to Carrara.  35mm in Poser translates to just about 60mm in Carrara.

I've done a few tests and this produces animations that are accurate within a few pixels between the Poser and Carrara renders, and I have a hard time telling the difference in object/figure positioning even when the two renders are laid on top of each other in a compositor.

To sum up:

  1. Get your poser scene exactly how you want it.
  2. Run the scripts to keyframe anything that is animated in your scene.  Turn all IK chains off on your figures after running the keyframe scripts.  Also, run dyn_to_morphs if you have dynamic cloth.
  3. Save (a copy of) the scene and import it into Carrara.
  4. Select leave limits on in the "limits" pop-up.
  5. Once the scene is loaded turn constraints off.
  6. Convert the camera focal from Poser to Carrara.
  7. Render using Carrara's super-fast engine.

That should take care of a lot of problems you may have trying to accurately import Poser scenes into Carrara.  I hope someone finds this useful.