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:
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.
GKDantas posted Wed, 26 November 2008 at 4:28 AM
Good post, I will try it after get my Poser 7 this week for half of the price.
Follow me at euQfiz Digital
Miss Nancy posted Wed, 26 November 2008 at 5:26 PM
o.k., thx Krewz for the tutorial. very valuable info IMVHO.
poser users can also save anims as bvh to keyframe all frames, but of course
the bvh file lacks most of the pz3 file info.
Krewz posted Wed, 26 November 2008 at 8:58 PM
Quote - o.k., thx Krewz for the tutorial. very valuable info IMVHO.
poser users can also save anims as bvh to keyframe all frames, but of course
the bvh file lacks most of the pz3 file info.
You're right that bvh's don't store things like morphs, but also whenever I try applying bvh's in poser my figure will do things like leap 30 feet into the air or get broken fingers, even when I export then import the bvh from and to the exact same figure. Using the method above gives much more predictable results.
madriver posted Thu, 27 November 2008 at 6:40 PM
Thanks for the nice tut, Krewz. But wouldn't it be easier to just drop the animation into DS then use the Poser Export function, or if you have C7 Beta, drop the DS file into Carrara? This is assuming you don't have dynamic clothing of course...
Krewz posted Fri, 28 November 2008 at 1:50 AM
Quote - Thanks for the nice tut, Krewz. But wouldn't it be easier to just drop the animation into DS then use the Poser Export function, or if you have C7 Beta, drop the DS file into Carrara? This is assuming you don't have dynamic clothing of course...
I don't use DS very often, but like Carrara, DS can't handle poser IK. DS makes a mess of my figures' limbs when importing a scene from Poser and IK is on.
holyforest posted Wed, 03 December 2008 at 3:07 PM
Thank you for sharing, Krewz - HF
---------------------------------------
Holyforest,
Hundreds of shaders for
Carrara
visionastral posted Fri, 26 December 2008 at 7:53 PM
Thank you very much Krewz, you are saving us a LOT of time making import/export experiments :P
By the way, why not modifying the python script to automatically turn off IK, use Dyn to Morph if needed and save the whole scene to a temporary file with a common name like "POSER_EXPORT"?
This would make things much faster for everyday work.
Krewz posted Sat, 27 December 2008 at 4:37 PM
Quote - By the way, why not modifying the python script to automatically turn off IK, use Dyn to Morph if needed and save the whole scene to a temporary file with a common name like "POSER_EXPORT"?
This would make things much faster for everyday work.
Perhaps, but what you see there is the extent of my python knowledge. It took me a long time going over the poserpython manual and studying other code I found on the web -scratching my head the entire time- just to come up with those two little scripts. I've done tiny amounts of programming before, but the python syntax gets me totally flumoxed.
I thought about a few ways to make those scripts more functional and interactive, but again I'm not really a programmer. Adding a feature to automatically turn IK off wouldn't be too hard (I don't think) but much beyond that and I'd be lost.
The keyall scripts are very bare bones but it gets the job done. If you or anyone else want to use that code for your own projects or expand up on it, please feel free to do so.
imagination304 posted Tue, 10 July 2012 at 9:30 PM
(bookmarked)