OpenMW-CS: improvements to 3D view navigation
Currently OpenMW-CS offers three different ways of navigating the 3D view. Due to overlapping functionality between them and rough edges, they don't provide view navigation that's as comfortable to use. This is a design on how to fix that. A lot of the functionality is already present in the editor, it mostly needs some design thought and polish.
The proposal is two offer two distinct control schemes to navigate the 3D view, which are as follows.
=== FIRST PERSON CAMERA ===
The purpose of this control scheme is allow the user to see the 3d scene in the same way a player would in-game. It mirrors the first-person controls from Morrowind (and many other first person games).
- W or UPARROW – move forward
- A or LEFTARROW – move sideways to the left
- S or DOWNARROW – move backwards
- D or RIGHTARROW – move sideways to the right
- Q – move upwards
- E – move downwards
- Rotate the camera around its location (mouse look) by holding a specific mouse button or having a toggle to enable/disable mouse look. The horizon should always be perpendicular to the world, the camera does pitch and jaw, but not roll.
=== ORBIT CAMERA ===
The purpose of this control scheme is to allow the user a creator’s view with good overview of the 3d scene. This type of 3d view navigation is found in many 3D programs. While the basic functionality is commonly shared, different programs use different default inputs. Users familiar with different 3d programs will have different input preferences and OpenMW-CS should support them.
|zoom||CTRL+MMB or MOUSEWHEEL||ALT+RMB or MOUSEWHEEL|
Orbit view rotates the camera around a point somewhere in front of the camera. The horizon should, by default, always be perpendicular to the world.
=== IN BOTH MODES - FOCUS VIEW ===
In 3d scenes, there is a need to quickly move the view to desired points of interest and using regular controls is usually slow.
OpenMW-CS already supports "Center on Selected" with Orbit Camera that works when the user selects an instance and centers the view on it. However it can be improved by:
- "Center on Selected" should be added to First Person Camera
- Rather than working based on what is selected, focus the view on what is under the mouse cursor. This way it doesn't interfere with selection and also works where there are no instances (only terrain).
Here is a video how this works in Blender https://www.youtube.com/watch?v=rRVEIcNjAxo This feature would make speed controls for view navigation largely redundant thus simplifying the controls.