Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AnimationPlayer Timeline: add unique zoom level for each animation, scroll to zoom, rightclick to reset #356

Open
golddotasksquestions opened this issue Jan 4, 2020 · 4 comments

Comments

@golddotasksquestions
Copy link

golddotasksquestions commented Jan 4, 2020

Describe the project you are working on:
All my projects use AnimationPlayer node.

Describe the problem or limitation you are having in your project:
Using the AnimationPlayer with animations of varying length is very tedious currently, because there is only one Timeline zoom saved for all animations. Going from one animation to another means to have to reset the zoom level again every time by left clicking and dragging the slider in the lower right corner.

Describe how this feature / enhancement will help you overcome this problem or limitation:
Adding per-animation-zoom and other common intuitive means to zoom and adjust the zoom level would result in less time wasted on readjusting the editor again and again and more time on actual work on the project.

Show a mock up screenshots/video or a flow diagram explaining how your proposal will work:

  • Each animation get's it's own zoom state that will be saved when adjusted. If an animation get's duplicated, the zoom state gets duplicated along with it.
  • Using the mouse scroll wheel while hovering above the timeline or the timeline slider would result in zooming in an out. This should work in addition to the existing timeline slider, not replacing it.
  • When doing so, the cursor would get a small magnifying glass additional symbol.
  • Right click anywhere on the Timeline or Timeline zoom slider to set the zoom level to show the complete Animation length.

scroll_zoom_timeline

Select between "Master Zoom" and "Anim Zoom" in a drop down menu next to the slider to change the slider's functionality:

scroll_zoom_timeline2

This would complement the leftclick and drag in #179 once reimplemented, allowing fast and fluid navigation.

Describe implementation detail for your proposal (in code), if possible:
Unfortunately not possible

If this enhancement will not be used often, can it be worked around with a few lines of script?:
Used often because it saves time, improves usability and reduces pointless clicking.

Is there a reason why this should be core and not an add-on in the asset library?:
Increases usability of existing feature and reduces pointless clicking.

@Calinou
Copy link
Member

Calinou commented Jan 4, 2020

Using the mouse scroll wheel while hovering above the timeline or the timeline slider would result in zooming in an out. This should work in addition to the existing timeline slider, not replacing it.

You can hold Ctrl and use the mouse wheel to zoom in the animation editor. However, for this to work, your cursor must be located below the timeline, not on it. This should probably be fixed.

Edit: Fixed by godotengine/godot#48598.

@golddotasksquestions
Copy link
Author

golddotasksquestions commented Jan 5, 2020

@arkology
Would you mind explaining your disapproval? I would really like to know.

Working with lots of animations of varying length is really annoying because there is just one zoom level for all. The more animations you have with unique lengths, the more time is wasted constantly adjusting the zoom scale.

Having means to quickly adjust the scale is a commodity most editors with lots of timelines of varying length have (DAWs, Video Editing Software).

What would be the reasons that speak against this proposal? I did not expect this to be a controversial idea at all.

@arkology
Copy link

arkology commented Jan 5, 2020

@golddotasksquestions I agree that it would be nice to have a certain zoom for different timelines. But I am categorically against "Master Zoom" and "Anim Zoom" buttons since they occupy free space, having little sense. Also, I'm not sure that adding an extra level of complexity is worth it. No need for (1 + [number of animations]) different zoom levels.

Each animation get's it's own zoom state that will be saved when adjusted. If an animation get's duplicated, the zoom state gets duplicated along with it.

This sounds ok

Using the mouse scroll wheel while hovering above the timeline or the timeline slider would result in zooming in an out. This should work in addition to the existing timeline slider, not replacing it.

+1 to Calinou. No need to redo it.

When doing so, the cursor would get a small magnifying glass additional symbol.

More like "nice and useful" feature. Not necessary.

Right click anywhere on the Timeline or Timeline zoom slider to set the zoom level to show the complete Animation length.

And I agree with this. Perhaps in a different implementation, but it sounds useful. For example, click on zoom button (which, however, is also not very convenient).

In addition, I would prefer an increase of the area where the zoom slider perceives mouse input.

@Calinou
Copy link
Member

Calinou commented Jan 5, 2020

Right click anywhere on the Timeline or Timeline zoom slider to set the zoom level to show the complete Animation length.

I started working on this feature in https://github.com/Calinou/godot/tree/animation-zoom-right-click-fit but I'm having trouble finding the formula to set the right zoom level depending on the animation length and the timeline's width in pixels.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants