Page MenuHome

Fix T76222: Scene strip range changes doesn't update in the Sequencer
Needs ReviewPublic

Authored by Richard Antalik (ISS) on Jul 24 2020, 11:23 AM.

Details

Summary

Recalculate strip length and bounds when scene frame range changes.
Strip content should be static while changing scene frame range.

There are multiple places where scene frame range is changed. For now I implemented this "feature" in scene RNA updated function.
I guess it would be better to add this functionality to other places in separate patch?

Diff Detail

Repository
rB Blender
Branch
T76222 (branched from master)
Build Status
Buildable 9164
Build 9164: arc lint + arc unit

Event Timeline

Richard Antalik (ISS) requested review of this revision.Jul 24 2020, 11:23 AM
Richard Antalik (ISS) created this revision.

I am not really sure it is correct to change strips on changes of scene: one might change frame range to optimize specific task, for example, making fast playblasts of a range artist is currently is working on. If changing frame range will affect final edit as well, this feels wrong.

It also feels wrong in a sense, that scene might be linked, and the only way to control its location in edit is through VSE. Surely, it is linked and one can explain why things behave different from the technical point of view, is still weird from mental model point of view.

@Francesco Siddi (fsiddi) what is your input here?

I am not really sure it is correct to change strips on changes of scene: one might change frame range to optimize specific task, for example, making fast playblasts of a range artist is currently is working on. If changing frame range will affect final edit as well, this feels wrong.

It also feels wrong in a sense, that scene might be linked, and the only way to control its location in edit is through VSE. Surely, it is linked and one can explain why things behave different from the technical point of view, is still weird from mental model point of view.

@Francesco Siddi (fsiddi) what is your input here?

Do not automatically alter the strips in the sequencer. Only the user (who is doing the video editing) should be able to manipulate strips.

I am not really sure it is correct to change strips on changes of scene: one might change frame range to optimize specific task, for example, making fast playblasts of a range artist is currently is working on. If changing frame range will affect final edit as well, this feels wrong.

It also feels wrong in a sense, that scene might be linked, and the only way to control its location in edit is through VSE. Surely, it is linked and one can explain why things behave different from the technical point of view, is still weird from mental model point of view.

@Francesco Siddi (fsiddi) what is your input here?

Do not automatically alter the strips in the sequencer. Only the user (who is doing the video editing) should be able to manipulate strips.

This patch will not change strip content or it's position or length.

What is this trying to resolve is following issue:

  1. Have scene strip pointing to animation
  2. Extend range of target scene
  3. Try to manually match it in sequencer

It is impossible to do. Scene strip will always have range of target scene before the range was changed.
So if you add scene strip early in project when target scene had range 1-250, strip will always have range 1-250. it can not be changed manually. You have to add new scene strip to reflect new range.

Current workflow feels quite cumbersome to me so I will welcome if you have different idea to how to implement this better. This could be done by sequencer operator I guess.

I would agree with Richard here, while the Scene Strip's properties "Original Frame Range" and "End Frame" update, the contents of the strip does not.
This results in a Hard Cut unless you Refresh the strip with Alt+R.

This is un-intuitive, as a user would expect the scene to become available when tail is dragged out. As it stands you must look for a hidden menu function to enact this process.

It is impossible to do. Scene strip will always have range of target scene before the range was changed.
So if you add scene strip early in project when target scene had range 1-250, strip will always have range 1-250.

Which means, if the scene is linked you can never change corresponding strip. Meaning, the proper solution is to be done from sequencer side, not from transform code.

To confirm, the behavior is the following:

  • Create shot_01.blend with frame range 101-200, save and close
  • Create edit.blend add shot_01.blend as scene strip, save and close
  • Open shot_01.blend, change frame range to 101-500, save and close
  • Open edit.blend and be able to extend the scene strip for 300 more frames to the right

If this is not the behavior described, can you please make a simple demo?

It is impossible to do. Scene strip will always have range of target scene before the range was changed.
So if you add scene strip early in project when target scene had range 1-250, strip will always have range 1-250.

Which means, if the scene is linked you can never change corresponding strip. Meaning, the proper solution is to be done from sequencer side, not from transform code.

That is correct. I haven't thought about linked scenes here.
So I can still implement this, but it would have to be really new feature, because currently we don't store original frame range, and we need it to know which side has been extended or reduced and by how much.

To confirm, the behavior is the following:

  • Create shot_01.blend with frame range 101-200, save and close
  • Create edit.blend add shot_01.blend as scene strip, save and close
  • Open shot_01.blend, change frame range to 101-500, save and close
  • Open edit.blend and be able to extend the scene strip for 300 more frames to the right

If this is not the behavior described, can you please make a simple demo?

Yes, this is behavior described.