Better Transformation Management
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.
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.
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 ?
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.
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
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 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