⇦ Back to Post Listing
Learning more about UX, going through Ultraleaps XR Guidelines
Terms
Affordances - characteristics about an object that guide a user to their use. Interaction - Any touching of an object. Interactions should not require abstract gestures or poses. Poses and Gestures - Needs instruction, less effective than skeuomorphic design elements. Interaction Zone - Area that can be tracked. Occlusion - An unclear view of the users hands.
Designing for hand tracking
-
Make interactions physical. People have been touching things for years, utilize that experience. Isn't this exhausting though? Am I going to be able to be physically handling things for hours on end? Or am I just out of shape?
-
Curved UI Panels Keeps everything in reach for a user. This would actually be really nice IRL honestly. I've had control panels that are wide and keeping it curved would have been awesome.
-
Use poses and gestures sparingly Very true, I have a hard time remembering even the Oculus home gesture.
-
Provide as much feedback as possible. Physical buttons have an inherent buttonness due to them being physical objects. All that inherent button stuff must be designed in, (and more!) to be effective.
-
prioritize features when designing interactions Physical first, gestures for very important things, menus last.
-
Make use of context Adjust menus for where the user is. This though should be used sparingly, as a consistent menu allows power users to thrive.
-
Consider user comfort. No gorilla arms. Don't make the user perform large motions, hold positions, raise high, or raise out. I wonder if you could have a kink dungeon that breaks these rules to intentionally cause discomfort to your users?
Gives specific measurements. Things interacted with their fingers, like buttons should be ~60cm away. Items that should be grabbed should stay ~50cm away. Can we better enforce these? Always keep grabby sections this distance away, no matter how far the actual thing is?
- Use appropriate scaling One finger targets should be minimum 2cm in size. This seems...small? The button in the A-Frame example was 11cm and that felt too small.
Designing Instructional Information
Use as few tutorials as possible, use short text snippets, users don't like to ready. Prioritize users doing required things instead of just showing. Use positive feedback when a tutorial is done correctly. Use a grid or some other design medium to indicate depth, which can be hard in the vast formless space of an empty VR room. An additional option is the use a pre-recorded avatar to demonstrate to the user.
Designing Menus
-
Virtually wearable menus Menus that are present on your hand or wrist. Keep them sparse and simple. Don't spawn them ON the hand, but off to the side, or on the wrist. Bette tracking, less chance of occlusion.
-
Opening menus This one seems pretty standard, but a twist to bring up the palm is def a common gesture.
-
Selecting menu items. Easy, push it.
-
Dragging menu items with pinch/release I'm not sure I've seen this, but this is a subtle item, where dragging a menu item out leaves a visible void, for it to be reset or put back. It's very clean, and very nice design.
-
Submenus Can bring them out, but don't go too deep. Especially if someones arm is shaky, they'll wobbly too much and be too hard to interact with.
-
Detachable panels. Give the user an option to put a world anchored panel out there. I wonder if it works well to have it be a simple button that then expands outwards? Then again, should we be using world anchored menus, or designing the environment to avoid those. Going back to that dragging menu items, the new world menu should leave a void in your menu so it can be closed or put back.
-
World anchored menus Like real world control panels, but curved. The curve aspect (all elements 60cm away) is kinda changing my mind about not having large menus. Think nuclear reactor, or airplane. Lots of dials, lots of buttons, but all within reach, as opposed to the usual flat panel that the irl ones have. Def making me consider them. There's a time and place I suppose.
Selecting items is done with a push of a finger. Needs to be distinct enough that the user is immediately away of it being pushed. Visual, audio, mechanical (vibration) need to all be used.
-
Moving world anchored menu ImmersedVR does a horrible job of this. The GIF below shows an amazing and natural example of a good control for moving a panel. The anchor to move this should be the right size or shape, think a round knob, that looks like it can be moved around. Anything that's going to use a world anchored panel needs to have this, and needs to do this well.
-
More on panels Three main ways to open a panel. Via virtual button, dragging an button out, or virtual pockets, such as a toolbelt. Closing is similar, with dragging it back into your wrist, hitting an 'x' button (be careful!) or dragging into a trash area. The last requires dragging, but could be done with a world anchor into some shaded area. Repositioning can be done by either a visible anchor (best!) or holding a specific part of the panel (requires tutorial!). Resizing as well, with a two finger gesture, which requires another tutorial. I wonder if we can utilize the world anchor to allow for resizing as well.
Maybe two handles on the size that can be grabbed? One hand for repositioning, or two hands for resizing? Or can be use the same anchor to instead resize. Turn it like a volume knob to make it bigger. I'm not sure if we have enough fidelity to do that, you'd need x,y,z motions for movements, yaw, pitch, roll for rotation, I'm not sure how you'd differentiate to do a clockwise twist and make a panel bigger.
Virtual Objects
Virtual objects are important (duh). But they need to have certain aspects that help guide the user to properly using them. Designers should take real world inspiration. Chairs should be sit-able, tables should table properly. The more interactive objects, the better IMO.
However, some aspects need to be taken into account for VR. Their example is a simple ball. While a round cue ball is perfectly usable in the real world, not so much in VR, as different people grabbed it differently. Some gingerly held it, others made a fist around it. This caused some problems with collisions. Thus they added divots to guide the user to 'correctly' holding it. Markers and physical distortions will help with that.
Everything interactive should react to a user. Any casual movement should do something in response to a user, even simple brushbys.
Manipulating objects should be very similar to how they are moved in the real world. Try and emphasize people ingrained intuition to properly move things. Users can push or knock and object around, and objects should react both spatially and visually. Pick up objects with a pinch or grab, then they can be translated or rotated. Rotations tend to come with translations as the center of rotation is in the wrist, not in the object itself. Resizing is done with a two handed gesture, like a pinch to zoom deal.
That's it!
Emphasis on interactivity and skeuomorphic designs. I wonder if in the future we'll move away from physical skeuomorphisms like we did with smartphones. Who knows!