Difference between revisions of "User:PatrickHorn/interaction notes"
Jump to navigation
Jump to search
PatrickHorn (talk | contribs) (Notes on user interaction) |
PatrickHorn (talk | contribs) m (→Input devices) |
||
Line 22: | Line 22: | ||
* CTRL+ALT "Camera rotate around object mode". Click and drag to rotate around selected object | * CTRL+ALT "Camera rotate around object mode". Click and drag to rotate around selected object | ||
* DEFAULT "Interface mode". Clicking interfaces only with UI elements. | * DEFAULT "Interface mode". Clicking interfaces only with UI elements. | ||
− | === [Avatar Mode] | + | === [Avatar Mode] === |
* Mouse cursor disabled, | * Mouse cursor disabled, | ||
* Mouse fires relative events (moved up 10 pixels) rather than absolute events. | * Mouse fires relative events (moved up 10 pixels) rather than absolute events. | ||
Line 35: | Line 35: | ||
== Keyboard == | == Keyboard == | ||
− | === [ Interaction Mode] === | + | === [Interaction Mode] === |
* All keybaord keys talk to focused UI element | * All keybaord keys talk to focused UI element | ||
* Standard UI controls work: | * Standard UI controls work: | ||
Line 42: | Line 42: | ||
** Keyboard = type into text box. | ** Keyboard = type into text box. | ||
* Keyboard input should be able to function without an attached mouse | * Keyboard input should be able to function without an attached mouse | ||
− | [ Avatar Mode] | + | === [Avatar Mode] === |
* arrow keys move and turn avatar. | * arrow keys move and turn avatar. | ||
Revision as of 05:54, 11 May 2009
Brainstorm on interfacing with the virtual world, and how to provide as much flexibility as possible.
Some throughts
- Drag object
- Input to UI (if selected texture is a browser window)
- Overlay UI: Attach to camera screen, become 2D
- All UI elements must be allowed to become overlays;
- untrusted Overlays must be allowed to be closed
- Select object
- List of all selectable objects (Red border around all such objects)
- Minimum r-size (if an object has no mesh or is invisible)
- Mouse cursor events
- Keep in mind tablet/ multi-input/ multi-touch support, since several consumer devices already support this!
Input devices
MOUSE/Joystick
- Want as few states as possible:
[Interaction Mode]
- CTRL "Object select mode". Upon selecting an object, a properties window appears.
- ALT "Camera rotate mode". Click and drag to rotate scene.
- CTRL+ALT "Camera rotate around object mode". Click and drag to rotate around selected object
- DEFAULT "Interface mode". Clicking interfaces only with UI elements.
[Avatar Mode]
- Mouse cursor disabled,
- Mouse fires relative events (moved up 10 pixels) rather than absolute events.
Allow UI to work without a keyboard:
- Default clicking
- Ctrl <=> hold down left button
- Alt <=> hold down right button
- Ctrl+Alt <=> hold down both OR middle click.
- Scroll wheel: zoom?
Keyboard
[Interaction Mode]
- All keybaord keys talk to focused UI element
- Standard UI controls work:
- Tab=next form/ Space=activate/ Enter=accept (these are all built into web browsers)
- Escape = Close UI window (actually, maybe *hide*, not close so that you don't lose text input changes)
- Keyboard = type into text box.
- Keyboard input should be able to function without an attached mouse
[Avatar Mode]
- arrow keys move and turn avatar.
Avatar versus Interaction mode
How do we switch between these? Interaction mainly involves editing/altering the world, while Avatar is mainly about observing.
Perhaps these "modes" should not be separate at all. Should double clicking on a browser window activate it or bring it up in an overlay? Should dragging always rotate the camera?
Input system
- Each input device is separate.
- You can bind any number to controlling the actions of a ProxyObject, for example based on keyboard bindings.
- You can also link input devices together for interaction mode.