3D scene: Navigation modes

Involved development of the OpenMW construction set.
Tarius
Posts: 574
Joined: 24 Oct 2011, 19:29

Re: 3D scene: Navigation modes

Post by Tarius »

Heres an idea, simply let the person decide the keybinds. For default, I would go with middle mouse for alot.
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: 3D scene: Navigation modes

Post by Zini »

@Okulo: So you want to rotate around a central point. Basically the camera moving within the surface of a sphere, with the mouse wheel decreasing or increasing the size of the sphere.

That makes sense, mostly (I implemented something similar on another project onces). However using the coordinate system's origin for the centre of the sphere will do us no good. How doing the raycast when switching to this mode. If the raycast hits the terrain, that point will be the centre of the sphere. If it hits an object, the centre of the object will be the centre of the sphere.
We also need to consider the orientation of the camera. Maybe enforcing it being upright (meaning you can't do a headstand)? Otherwise this can become very confusing after a while.

@Tarius: Of course we will have configurable keybindings eventually.
wheybags
Posts: 207
Joined: 21 Dec 2012, 19:41

Re: 3D scene: Navigation modes

Post by wheybags »

Like I said in some other thread, I would like to include an option to hold down some key, which will enable mouselook and wasd.
User avatar
sirherrbatka
Posts: 2159
Joined: 07 Aug 2011, 17:21

Re: 3D scene: Navigation modes

Post by sirherrbatka »

that makes a lot more sense.
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: 3D scene: Navigation modes

Post by Zini »

Not sure about the "holding down some key" part. The current plan is to have a row of buttons (see original scene thread) to switch between modes. These would obviously also have keyboard shortcuts. But that makes it: press a button once to go to WASD navigation and press a different button to go back to another mode; instead of have WASD while pressing down a key.

I am not convinced that the later is needed. Also, it would be a bit problematic regarding not all keyboards necessarily supporting arbitrary combinations of multiple buttons. And probably tiring too, if you constantly have to hold down an additional button while using WASD.
Tarius
Posts: 574
Joined: 24 Oct 2011, 19:29

Re: 3D scene: Navigation modes

Post by Tarius »

In 3ds Max, I use the middle mouse button held down to move the view around and shift+middle mouse to rotate the view. Rotating middle mouse of course does zooming.
wheybags
Posts: 207
Joined: 21 Dec 2012, 19:41

Re: 3D scene: Navigation modes

Post by wheybags »

Zini wrote:Not sure about the "holding down some key" part. The current plan is to have a row of buttons (see original scene thread) to switch between modes. These would obviously also have keyboard shortcuts. But that makes it: press a button once to go to WASD navigation and press a different button to go back to another mode; instead of have WASD while pressing down a key.

I am not convinced that the later is needed. Also, it would be a bit problematic regarding not all keyboards necessarily supporting arbitrary combinations of multiple buttons. And probably tiring too, if you constantly have to hold down an additional button while using WASD.
I just said the holding down a key part because that's what they do in valve's hammer editor (iirc), and it works quite well there.
Makes no difference really, just so long as some wasd + mouselook option is in there.
User avatar
Rhys
Posts: 113
Joined: 06 Aug 2011, 01:51
Location: Australia

Re: 3D scene: Navigation modes

Post by Rhys »

Zini wrote:@Okulo: So you want to rotate around a central point. Basically the camera moving within the surface of a sphere, with the mouse wheel decreasing or increasing the size of the sphere.

That makes sense, mostly (I implemented something similar on another project onces). However using the coordinate system's origin for the centre of the sphere will do us no good. How doing the raycast when switching to this mode. If the raycast hits the terrain, that point will be the centre of the sphere. If it hits an object, the centre of the object will be the centre of the sphere.
We also need to consider the orientation of the camera. Maybe enforcing it being upright (meaning you can't do a headstand)? Otherwise this can become very confusing after a while.

@Tarius: Of course we will have configurable keybindings eventually.
Expanding on this,
-A keybinding for rotating the camera around this central point (ie MMB)
-A keybinding for panning the camera along the view plane (ie Shift+MMB)
-A keybinding for zooming or moving in/out (ie scroll)

-Central point moves when panning the camera, with the same translation that the camera has moved. (if the camera moves X=2.3, Z=-1.8 the central point does exactly the same)
-Central point does NOT move then zooming (moving in/out). Zooming in/out adjusts the radius of where the camera rotates ( or the size of the "sphere" )
-It needs a way of target objects and surfaces. A method to target a selected objects origin/ median point and a method to raycast to surface under the mouse and set the central point there (camera would probably move to center this point in the screen).

-Turntable view rotation makes more sense in this application than trackball would. This means the camera can Yaw and Pitch but NOT Roll. The camera should be limited to not flip upside down.

-Method to 'zoom to' selected object/s. The camera will slide over to view the selected objects, central point will move to these objects, camera orientation will stay the same. The difference to regular 'targeting' is that the camera will move in/out to fit these objects in screen efficiently.

-Need a top down option
-Need perspective and orthographic view

-Need a WASD/ fps control mode, easily accesible.
-When using WASD mode the 'camera central point' should move with the camera
-IF the camera is facing an object or terrain when exiting WASD mode the central point will be target to that point.
-IF camera is facing sky central point should stay in front of the camera at the same distance when entered WASD mode. This is so that when the mode is switched back to normal mode the camera will not rotate around a point miles away.
User avatar
Okulo
Posts: 672
Joined: 05 Feb 2012, 16:11

Re: 3D scene: Navigation modes

Post by Okulo »

Zini wrote:How doing the raycast when switching to this mode. If the raycast hits the terrain, that point will be the centre of the sphere. If it hits an object, the centre of the object will be the centre of the sphere.
There's a modifier key in this model that is used for "traveling" anyway (shift-click MMB), so if the focal point is an issue, you can just have it follow the floor as much as possible and let the user use shift-roll MMB to elevate or drop this focal point up or down if need be. Beshara has multiple levels... is it possible for the focal point to hit only terrain pieces (corridors and such) but not items? That way the camera won't be shaking around like a madman if your focal point comes across an item when you're moving around.
User avatar
Swyter
Posts: 2
Joined: 21 Aug 2013, 19:20
Location: Spain
Contact:

Re: 3D scene: Navigation modes

Post by Swyter »

The Mount&Blade in-game editor is pretty solid.

http://youtu.be/VtMbkdH4cJQ?t=2m15s

Basically you always use WASD, which moves you in your local "2D plane", which depends on the facing/rotation of the camera. You rotate the camera by moving the mouse while clicking the its left button, the cursor wraps around.

To select an object you right-click on it. To move it in the global "2D plane" you keep pressed the G key, which stands for ground, while moving the mouse. For moving the objects vertically the T key is used in the same way.

Other useful keys are the X, Y and Z, for rotating it in that axis, pressing B scales it uniformly while using one of the axis keys while pressing B scales it by that axis. R is used for resetting their rotation and scale.

It's pretty comfortable, the keys are easy to learn and you don't depend on any UI to switch modes. I highly recommend it.


This is the built-in help, take it a look:
Spoiler: Show
Post Reply