Click Inserting Keyframes in the Graph Editor should obey Automatic Time Snapping #83710
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#83710
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Currently in the Graph Editor, ctrl-right click allows the animator to insert a new keyframe into an f-curve. The new keyframe is inserted directly under the mouse pointer.
The problem is that the inserted keyframe is almost certainly on a non-integer frame:
Since the Graph Editor already has a setting for auto snapping in the header, it makes sense that ctrl right click inserting should just use the current setting (which defaults to nearest frame and eliminates the previous problems in the default setting), however new issues arise:
No Auto Snap
No change from current behavior, nothing to be done.
Nearest Frame
The default and most often used setting. Here we should create the new inserted keyframe to the frame nearest to the mouse. This can result in one of the following situations:
worst case: animator clicks far from the snapped frame which is outside the view - the keyframe now gets created so far away that the animator doesn't see it (no visual indication) which feels like a bug. (fig 3)
Frame Step
Doesn't map to inserting keyframes at all! perhaps we should just adopt / fall back to the same behavior as Nearest Frame
Second Step
Doesn't map to inserting keyframes at all! perhaps we should just adopt / fall back to the same behavior as Nearest Second
Nearest Second
This maps well, however, since seconds are further apart than frames, it's more likely we'd run into the undesirable cases in Nearest Frame. We could also consider falling back to Nearest Frame as well, depending on the zoom level.
Nearest Marker
This could work the same, but it feels weird/ likely to result in undesirable cases. We could fall back to nearest frame or nearest second, and have a sperate command for 'insert keyframe at marker'
Solving the problems for middle and worst case snapping
We have some options:
Solving the problems for snapping settings that may not make sense for click insert keyframe
The above is intended as a problem statement and start of discussion, not a final design. Once we decide on UX design, we could generate mockups for how it should look (UI)
Added subscriber: @BassamKurdali
A slightly more radical proposal:
We should probably examine the options in auto time snapping, and see if they are even useful/used. The ones that are not used for long periods of time should probably be an operator (and in most cases already exist):
We could instead replace the menu with:
Added subscriber: @LucianoMunoz
Also as a side note I think it would be really beneficial to have a maximum zoom to 1 frame of visibility,
Going further than that is no use for anyone, and would also solve the "snapping to a frame you cant see"
something like this:
Added subscriber: @jwvdronkelaar
I was thinking the same thing when I was looking at the worst case scenarios. While I can only speak for myself I have never felt the need to zoom in further then a few frames. Animation is a game of "in relation to"; seeing a keyframe all on its own has little value.
With that said, a zoom max of 1 frame (technically 2 when you look at Luciano's screenshot) sounds like a sensible limit. Doing it this way would remove the need for a discussion on UI and therefore simplify the fixing of this bug somewhat.
Agreed. Note you'd still have some of the corner cases pop up, but I think a brief animated highlight after you click would make it quite understandable (and it would be less likely)
Changed status from 'Needs Triage' to: 'Confirmed'
Further Notes on Snapping modes (worth thinking through):
Even with the magnetizing option, I am struggling to see why I would want snap to second or snap to marker as a mode as opposed to an operator. I can see frame step being useful sometimes (see above) but not really second step.
For marker snapping: I could see a more useful feature being locking a bunch of keyframes together (with a marker?) for e.g. IK/FK switching, where the IK, FK and constraint switching get locked together by the rig ui, to keep them in sync, but the snap to marker mode doesn't really do that - it's indiscriminate and quit strange.
My recommendation for snapping would be:
If people complain about marker/second snapping find out about their workflow and implement them properly (with magnetization/as shift-clickable options)
Added subscriber: @dr.sybren
I think this is a good idea, but should be optional somehow. Sometimes it's nice to be able to zoom in arbitrarily far, for example when trying to debug some Python script that just puts the keys ever so slightly in the wrong place. That should be the exception, though, as indeed for normal animation work you don't need rediculous-level zooming.
Added subscriber: @GeorgiaPacific