openshot-qt icon indicating copy to clipboard operation
openshot-qt copied to clipboard

Better Transformation Management

Open sashokbg opened this issue 9 months ago • 6 comments

Describe the new feature: I would like to be able to easily manage transformations on the track timeline.

Describe the solution you'd like:

Examples:

  • Moving a transformation to another keyframe
  • Deleting all transformation on a keyframe (currently we have to reset all properties 1 by 1)
  • Duplicate transformation so that it can be used on another keyframe
  • See a list of all transformations by keyframes for the project

Please let me know what you think, I would like to try contributing myself if the feature seems interesting to you.

sashokbg avatar Mar 11 '25 06:03 sashokbg

Thank you for the "Enhancement" request. These are commonly requested by other users as well and are currently in the queue for the developer to review then approve/reject. No ETA at this time.

Colorjet3 avatar Mar 15 '25 22:03 Colorjet3

Hello @Colorjet3 thank you for your answer. I actually have checkout the project and started hacking around a little. I am thinking about adding a new class for Transformation similar to Transition, Clip etc.

If I understand correctly, currently transformations are saved as KeyFrames of the Clip object ?

My Idea is to group multiple KeyFrames into a Transformation object. From there on we can handle all the keyframes at once: ie.

What do you think ?

sashokbg avatar Mar 16 '25 14:03 sashokbg

Hello @sashokbg I am not a developer and just a volunteer tester. I would say yes to transformations are saved as keyframes of the clip object but we really need @jonoomph (lead developer) to chime in.

He would be best to brainstorm with regarding these improvements.

Colorjet3 avatar Mar 16 '25 20:03 Colorjet3

Hello @Colorjet3 thank you I will wait for @jonoomph to reply whenever they have the time.

Under the hood it seems that a "keyframe" is handled a little differently from classical animation. If I understand correctly there is a clip that has a list of properties (the ones we see on the left pane). Each property can then be altered for a given frame on the timeline and this is what we call keyframe in openshot.

Example: my clip has a property translate_x that can have 2 points:

  • point 1 at frame 100 with value 1
  • point 2 at frame 200 with value 0.5

My idea is to flip things around and add a new class called Keyframe that has a list of properties that are altered in that keyframe.

clip - > keyframes (is located at) -> keyframe properties

The advantage of grouping the properties in a keyframe is that we can easily then handle multiple properties at once.

For instance, if i created a keyframe that performs a transition on x, transition on y and also a fade out, I can easily move all these together by moving the keyframe. Another example is where I have created some keyframes with transitions and I want to delete them on the timeline - it would be far easier to delete the parent object of type keyframe instead of clicking one-by-one properties as is currently.

Please let me know what you think about this approach @jonoomph I am spending around 30 minutes every now and then on the project to get familiar and I could start implementing this change as soon as I get comfortable enough with the project structure and as soon as we agree on the architecture model.

Thank you and have a nice weekend

sashokbg avatar Mar 21 '25 09:03 sashokbg

A rather low hanging fruit here could be adding a keyboard shortcut to remove a keyframe (say after selecting it with a mouse left click).

kohts avatar Jul 26 '25 13:07 kohts

@kohts the problem here is that the keyframe is not modeled separately, but as a property of the clip. This makes it hard to identify when we have "selected" a keyframe. Once this is fixed it is then trivial to add keyboard shortcuts or context menu entry etc. Unfortunately there isn't much interaction from the project's maintainers nor user base, so I abandoned the task

sashokbg avatar Jul 28 '25 07:07 sashokbg