Fix T61619: Some VSE attributes with keyframes are not sensibly evaluated
when the scene is referenced as a strip from another VSE scene Fix T49658: Evaluation / animation of f-curves does not correct for a scene's position within another scene Solution: Evaluate animdata before rendering scene seqbase. Reviewed By: brecht Differential Revision: https://developer.blender.org/D4755
This commit is contained in:
@@ -3662,6 +3662,12 @@ static ImBuf *do_render_strip_seqbase(const SeqRenderData *context,
|
|||||||
seqbase = BKE_sequence_seqbase_get(seq, &offset);
|
seqbase = BKE_sequence_seqbase_get(seq, &offset);
|
||||||
|
|
||||||
if (seqbase && !BLI_listbase_is_empty(seqbase)) {
|
if (seqbase && !BLI_listbase_is_empty(seqbase)) {
|
||||||
|
|
||||||
|
if (seq->flag & SEQ_SCENE_STRIPS && seq->scene) {
|
||||||
|
BKE_animsys_evaluate_all_animation(
|
||||||
|
context->bmain, context->depsgraph, seq->scene, nr + offset);
|
||||||
|
}
|
||||||
|
|
||||||
meta_ibuf = seq_render_strip_stack(context,
|
meta_ibuf = seq_render_strip_stack(context,
|
||||||
state,
|
state,
|
||||||
seqbase,
|
seqbase,
|
||||||
@@ -3731,11 +3737,11 @@ static ImBuf *do_render_strip_uncached(const SeqRenderData *context,
|
|||||||
else {
|
else {
|
||||||
/* scene can be NULL after deletions */
|
/* scene can be NULL after deletions */
|
||||||
ibuf = seq_render_scene_strip(context, seq, nr, cfra);
|
ibuf = seq_render_scene_strip(context, seq, nr, cfra);
|
||||||
|
}
|
||||||
|
|
||||||
/* Scene strips update all animation, so we need to restore original state.*/
|
/* Scene strips update all animation, so we need to restore original state.*/
|
||||||
BKE_animsys_evaluate_all_animation(
|
BKE_animsys_evaluate_all_animation(context->bmain, context->depsgraph, context->scene, cfra);
|
||||||
context->bmain, context->depsgraph, context->scene, cfra);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user