[Bf-python] Getting fcurve data from parented object

Brecht Van Lommel brechtvanlommel at pandora.be
Sun Jan 27 17:45:55 CET 2013


Hi,

On Sun, Jan 27, 2013 at 12:54 AM, Asbjørn <lordcrc at gmail.com> wrote:
> seems there's some issue when an object has a motion path, and the
> motion path has a driver on the "evaluation time", and the object has no
> keyframes. Then the transformation matrices are not updated it seems. If
> the object has a keyframe, we get the correct result.
>
> Here's a small blend file with the setup
> http://www.pasteall.org/blend/19064
>
> Is this a blender limitation? Or are we doing it wrong[1]? :)
>
> [1]:
> http://src.luxrender.net/luxblend25/file/5eed3263787e/src/luxrender/export/__init__.py#l274

One issue I see here is that Blender basically assume subframe to be
in range [0,1[ but doesn't enforce this. I've fixed this in svn now,
so that it will work with this script.

The other issue is the way the driver is set up here. It's driving the
value with scene.frame_current which is an integer and does not take
subframes into account. There is a built in variable "frame" for
drivers that can be used instead of the custom "var" here to get
proper subframe motion.

Further, frame_set() is an expensive call, you should not be doing
this per object, but rather do it once and then get the animation for
all objects. This is because of complex dependencies that can exist
between objects, it's not possible to move one only object in time and
so the entire scene needs to be reevaluated. For simple scenes it may
not be noticeable but for more complex ones it's a problem.

Brecht.



More information about the Bf-python mailing list