3D scene: Navigation modes
Re: 3D scene: Navigation modes
Heres an idea, simply let the person decide the keybinds. For default, I would go with middle mouse for alot.
Re: 3D scene: Navigation modes
@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.
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.
Re: 3D scene: Navigation modes
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.
- sirherrbatka
- Posts: 2159
- Joined: 07 Aug 2011, 17:21
Re: 3D scene: Navigation modes
that makes a lot more sense.
Re: 3D scene: Navigation modes
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 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.
Re: 3D scene: Navigation modes
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.
Re: 3D scene: Navigation modes
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.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.
Makes no difference really, just so long as some wasd + mouselook option is in there.
Re: 3D scene: Navigation modes
Expanding on this,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.
-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.
Re: 3D scene: Navigation modes
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.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.
Re: 3D scene: Navigation modes
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:
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