GafferHQ / gaffer

Gaffer is a node-based application for lookdev, lighting and automation
http://www.gafferhq.org
BSD 3-Clause "New" or "Revised" License
961 stars 207 forks source link

Tool Mouse Behaviour : Sensitivity adjustments + bug fixes #3324

Open themissingcow opened 5 years ago

themissingcow commented 5 years ago

Summary

Extend the hold <shift> for precision mode to more tools and mouse interactions, to include the scroll wheel and camera movements.

User Story

What

As a user I'd like to be able to make finer adjustments when using the mouse to interact with the scene. Either using the various Viewer tools, or using the mouse wheel to interact with the Node Graph and other editors.

Why

Feature Proposal

themissingcow commented 5 years ago

During user testing, concerns were raised by the "snap back to cursor on shift key-up" behaviour. This can be very disorienting with camera motion, and has the risk of mis-timed key .vs. button releases causing positional jumps for object manipulations.

A behaviour of "don't worry about the disconnect" was prototyped. This works very well for camera movements, but is problematic handles in the generic sense. The issue is that the mouse position relative to the handle is often meaningful to its function, despite it not being directly coupled. Eg: for rotations, we intersect an imaginary circle to work out the rotation angle. Disconnects in the perceived .vs. actual mouse position then result in totally bogus angles being calculated.

If all handles were simply offset accumulations, then it would work. Having different behaviours per-tool is confusing. So the following compromise seems the only sustainable one: