Asbjørn
2013-01-23 23:51:51 UTC
Hi,
in LuxBlend25 we use bpy.types.FCurve's evaluate() method[1] to get the
animation data at a given time point for rendering motion blur.
This works well, as long as the object has at least one keyframe.
However, if the object is a child object, and _only_ the parent has
keyframes, then the evaluate() call does not return animated data,
making it look as if the child object is not animated.
If the parent is animated, and the child object contains just a single
"no-op" keyframe, then evaluate() behaves as expected, returning the
parent's animation data.
Are we doing things wrong, or is this by design? In either case, is
there a proper way of handling this, without walking up the tree until
we find a (grand)parent with animation data?
Cheers
- Asbj?rn
[1]:
http://src.luxrender.net/luxblend25/file/196744443a50/src/luxrender/export/__init__.py#l274
in LuxBlend25 we use bpy.types.FCurve's evaluate() method[1] to get the
animation data at a given time point for rendering motion blur.
This works well, as long as the object has at least one keyframe.
However, if the object is a child object, and _only_ the parent has
keyframes, then the evaluate() call does not return animated data,
making it look as if the child object is not animated.
If the parent is animated, and the child object contains just a single
"no-op" keyframe, then evaluate() behaves as expected, returning the
parent's animation data.
Are we doing things wrong, or is this by design? In either case, is
there a proper way of handling this, without walking up the tree until
we find a (grand)parent with animation data?
Cheers
- Asbj?rn
[1]:
http://src.luxrender.net/luxblend25/file/196744443a50/src/luxrender/export/__init__.py#l274