 |
NG Design Document/Basic Interactions
From Rex community wiki
| Name
|
Get realXtend
|
| Use Cases
|
- Download the Client
- Register to a Grid
- Play with realXtend
|
| Summary
| Some users will have heard of realXtend, and know enough to download a viewer from our site, but will be unsure how to proceed from there.
|
| Flow
|
- User discovers the realXtend homepage, where he is greeted with a simple download screen. The screen should contain:
- large download button, to clearly prompt the next action
- viewer branding, to assure the user the software can be trusted
- screen captures showing the viewer in action, to maintain interest in continuing
- directions on what to do after download is complete, to clearly inform how to continue
- User runs the installer which in turn executes the client viewer, and is presented with a "First Run" screen.
- First Run screen clearly invites the user to register with an Identity Provider, Create an Avatar, and Enter the Sandbox to begin playing.
|
| Notes
|
- Registration app auto-detects OS
- Registration app shows links to "what's new", "how to use", etc.
|
| Name
|
Move from one Internet to Another
|
| Use Cases
|
- Register to a Grid
- Download the Client
- Get in-world
- Transition from Web to VW
|
| Summary
| The web and webbrowsers are synonymous for "the Internet" for most users. We leverage this situation to help direct web users to our 3D Virtual World "Internet".
|
| Flow
|
- User discovers a URI that describes a place on the 3D Internet, administrated by some body in a Grid of Trust.
- User activates this URI by clicking, and is relayed to the registration web application, for the body that administers the grid for that location.
- The registration app asks for either an existing OpenID identity, offers to create a new OpenID provided by the grid, or a local identity meaningful within the grid. This dialogue should work like any other log-in page on the web.
- If an existing OpenID is used the identity is authenticated.
- If a new OpenID is requested, User is forwarded to an OpenID registration app.
- If a local identity is requested, User is forwarded to a local registration app.
- User is returned to the registration app, where he is greeted with a simple download screen. The screen should contain:
- large download button, to clearly prompt the next action
- viewer branding, to assure the user the software can be trusted
- screen captures showing the viewer in action, to maintain interest in continuing
- directions on what to do after download is complete, to clearly inform how to continue
- The web registration app creates a bundle which includes the configuration items discovered during registration; namely the intended location, and registered identity.
- User runs the installer which in turn executes the client viewer.
- The client opens preconfigured to log into the grid, and to teleport to the location originally intended.
|
| Notes
|
- Registration app auto-detects OS
- Registration app shows links to "what's new", "how to use", etc.
|
| Name
|
Viewer Log In
|
| Use Cases
|
- Get in-world
- How to Log in
- How to Log in Anonymously
- Log-in to Registered Grid
|
| Summary
| While immersive 3D experiences are best without jarring leaps from one domain to the next, a distributed infrastructure demands an open-ended, generic approach to getting in-world. There will be times when a user is faced with a generic log-in screen.
This interaction is based on selecting a combination of 3 distinct but associated elements: Identity, Avatar, and Location. This presents us with a combinatorial explosion, however we should keep in mind the majority of people will have very few identities and they will be mapped one-to-one to avatars, so we should optimize for this case.
|
| Flow
|
- User runs the client viewer.
- User is shown an Identity Chooser dialogue. The default is "Anonymous", and there is a Add New Identity button. The identity provider is clearly displayed for each item.
- User is shown an Avatar Chooser dialogue for avatars associated with the selected identity. There is an Add New Avatar button. A thumbnail image of the avatar is clearly displayed for each item.
- User is shown a Location Chooser dialogue for the history and bookmarks associated with that avatar, including last known location at the top of the list. The default is "Sandbox". An icon or screen-shot thumbnail is clearly displayed for each item.
- Once all three combinations have been uniquely determined, the User begins the entry process for the world.
|
| Notes
|
- New identities have to be registered separately with an idenity provider before being added.
- User may set a preference to automatically choose a default or last known identity
- User may set a preference to automatically choose a default or last known avatar
- User may set a preference to automatically return to a default or the last known location
- In the case where Avatars and Identities are associated one-to-one, the two dialogues are combined into a single avatar chooser.
- In the case where Avatars and Identities are associated one-to-one, and the user prefers to visit the last known location, the three dialogues are combined into a single avatar chooser.
- The Anonymous Avatar is "disembodied", that is, your camera-view is first-person only, and no one in-world can see or interact with your avatar.
|
| Name
|
Catalogues for Displaying Objects
|
| Use Cases
|
- Select a set of Objects from a list
|
| Summary
| When handling 3D data with 2D inputs and displays, there are challenges how to make browsing and choosing both powerful, intuitive, and fast. We decide to present a re-usable widget called a "Catalogue" which allows multiple views on the same data.
|
| Flow
|
- User is presented with a scrollable list of 3D objects, represented by rows with thumbnails, text title, and text description.
- User may select other presentation styles
- Zoomable Grid layout
- Animated Flip-book (2 items on 2 pages fully visible, others pages partially visible)
- Catalogue Book (N items on 2 pages, other pages obscured)
- Avatar-in-space metaphor (ex: equipping scene in The Matrix movie)
- Natural Space metaphor (ex: items in a shop)
- User selects a subset of the catalogue using the style-dependant method.
|
| Notes
| Only the default view, List View, is guaranteed to be available.
|
| Name
|
Make a new Avatar
|
| Use Cases
|
|
| Summary
| Creating an Avatar, a visual representation your personality, is one of the core features of a virtual world, so building and selecting avatars must be both flexible and streamlined.
|
| Flow
|
- User runs the client viewer, and is shown an Avatar Chooser dialogue.
- User selects the Add Avatar button to associate a new avatar with the selected identity.
- User is shown a set of template avatars that may have been bundled with the viewer.
- User may choose to select a template as-is, modify a template, customize from scratch, or load from file.
- User may choose to Create Avatar, or Save Current Avatar to file.
|
| Notes
| The set of all saved avatars can be displayed and loaded from an "Avatar Library" screen.
|
| Name
|
Playing in your Sandbox
|
| Use Cases
|
- Play with realXtend
- Learn how to Use realXtend
- Publish Content Easily
- Test Changes in a Safe Environment
- Create a Private Space
- Have a Private Meeting
|
| Summary
| There come many times when you need a secure place to work, explore, or play without having to log onto another remote server. You may wish to experiment with volatile scripts without fear of damage, iteratively create content without constantly uploading assets, or merely create your own single-player game without disruption.
To that end we provide a local "sandbox", which is like a server on your local machine that you can experiment however you want. However there are two main differences:
- persistence must be explicitly enabled through a "Save to Disk" command
- multi-user must be explicitly enabled through a "Invite Others" command
- publishing of changes must be explicitly enabled through a "Publish to Server" command
- new spaces can be imported/exported from/to serialization file format through "Import/Export from/to File" commands
|
| Flow
|
- User runs the client viewer.
- User selects Sandbox mode instead of Log-in.
- User selects any locally stored avatar, including Defaults and Anonymous.
- User enters a locally-persisted island region, the default being an island with a simple house, and a tutorial script.
|
| Notes
|
- Having what could potentially be a heavy server bundled with the client means this feature may not be available on some platforms.
|
Clothing Racks in Sandbox
Scripted mannequins or clothing racks could exist in the sandbox which when selected will automatically change the avatar's clothing outfits.
User Changes the Default House in Sandbox
User can add rooms and corridors to the own space with a simple floor plan tool. Rooms can be selected from ready-made examples or by drawing them wall by wall.
User Adds Objects to Sandbox
User can select an object in a world an enter "Send to Sandbox" Command. When the User next logs into his Sandbox, there will be a notification that the object was sent, and he can drag and place the object in-world.
User can also add pre-build objects from a catalogue objects.
| Name
|
Publishing from your Sandbox
|
| Use Cases
|
- Publish Content Easily
- Test Changes in a Safe Environment
- Create a Private Space
|
| Summary
| Content creation is a time and labor intensive, iterative, trial-and-error process. Yet it is one of the primary drivers for adoption of realXtend. To help ease the burden of network problems, third-party resource management issues, permission issues, privacy or confidentiality issues, or issues of working in tiny increments of re/undo-able changes, it makes sense to allow the content creator to work completely unhindered within his own personal work-space, where he can save or re-load any change-set he needs. Only when the product reaches a major milestone may he wish to publish it to a remote server for others to view or interact with. We can use our Sandbox for precisely this purpose.
|
| Flow
|
- User runs the client viewer.
- User selects Sandbox mode instead of Log-in.
- User selects any locally stored avatar, including Defaults and Anonymous.
- User enters a locally-persisted island region, the default being an island with a simple house, and a tutorial script.
- User loads his previous work from file using "Import from File" command.
- User proceeds to edit the scene, building up unpersisted changes into a change-set.
- User decides to publish the finished work using "Publish to Server" command.
- User selects the intended server where he has permissions, enters his identity, and initiates the upload of the change-set, to be persisted on the remote server.
|
| Notes
|
- Having what could potentially be a heavy server bundled with the client means this feature may not be available on some platforms.
|
| Name
|
Private Meetings from your Sandbox
|
| Use Cases
|
- Create a Private Space
- Have a Private Meeting
|
| Summary
|
Shared spaces imply a space to share, but do not necessarily imply that you must use a third party to host the space. For confidentiality, privacy, or performance reasons, hosting a space on one's own machine is preferrable. We can use our Sandbox for precisely this occasion.
|
| Flow
|
- User runs the client viewer.
- User selects Sandbox mode instead of Log-in.
- User selects any locally stored avatar, including Defaults and Anonymous.
- User enters a locally-persisted island region, the default being an island with a simple house, and a tutorial script.
- User selects the "Invite Others" command, and is presented with a choice to share his space by finite white-list, or by shared secret password with black-listing.
- User enters either a list of approved identities into a white-list, or enters a password that can be shared with selected people without foreknowledge of their identities.
- User configures his operating system and network security to accept incoming connections and waits for approvied parties to enter his local space.
|
| Notes
|
- Having what could potentially be a heavy server bundled with the client means this feature may not be available on some platforms.
|
| Name
|
Action Icons for Often-used Commands
|
| Use Cases
|
- Frequent Interactions are Easy
|
| Summary
|
Unlike reality, where our every motion, conscious or not, is an interaction with the things around us, virtual worlds require artificial input devices which make interaction slow and taxing.
We can improve this slightly by allowing the users to select their favorite commands, and place icons for them one click away, on the main world-view.
|
| Flow
|
- User runs the client viewer and enters the world-view.
- User creates a new action from menu, or drag-n-drops the action from an existing menu to one of the four corners of the world-view.
|
| Notes
|
- Sequences of actions can be created through a Action Icon wizard.
- Action Icon displays can be customized through a UI description file and loaded as an asset.
|
And finally and example of advanced usage from World of Warcraft(tm) game.
| Name
|
Dependant Vehicles
|
| Use Cases
|
- Operate User-Controlled Vehicle
|
| Summary
| There are two kinds of vehicles:
- Dependant Vehicles, where the avatar and vehicle move jointly: horse, bike, car
- Independant Vehicles, where the avatar moves relative to the vehicle: boat, elevator
When the two move as one, we can simply take the avatar's controls to be the vehicles controls. When the two move independently, we have to interpret the avatar's controls in the context of the vehicle's movement.
|
| Flow
|
- User ends a message to the vehicle that he wishes to enter, via an action, or context-sensitive menu.
- Vehicle returns a deformation or animation needed to place the avatar in the operators position, and a best-effort is made to place the avatar correctly.
- Vehicle traps the commands given to the avatar, and applies them jointly to both avatar and vehicle.
|
| Notes
| There is no guarantee that seating non-traditional avatars will succeed.
|
| Name
|
Independant Vehicles
|
| Use Cases
|
- Operate User-Controlled Vehicle
|
| Summary
| There are two kinds of vehicles:
- Dependant Vehicles, where the avatar and vehicle move jointly: horse, bike, car
- Independent Vehicles, where the avatar moves relative to the vehicle: boat, elevator
When the two move as one, we can simply take the avatar's controls to be the vehicles controls. When the two move independently, we have to interpret the avatar's controls in the context of the vehicle's movement.
|
| Flow
|
- User ends a message to the vehicle that he wishes to enter, via an action, or context-sensitive menu.
- Vehicle returns a deformation or animation needed to place the avatar in the operators position, and a best-effort is made to place the avatar correctly.
- Vehicle designer offers custom controls to the operator, which translate into vehicle motions.
- Passengers receive updates about the vehicle's motion, and interpret avatar movements relative to to that base motion.
|
| Notes
| There is no guarantee that seating non-traditional avatars will succeed.
|
| Name
|
Environment Reacts to Avatar
|
| Use Cases
|
|
| Summary
| When an avatar enters a world or specific location in the world, the world can detect if the avatar has certain objects or attributes, and based on what it discovers, may modify its own behavior as a result. For example a world might not allow any weapons or it might require certain kind of clothing.
|
| Flow
|
- User enters a space employing custom logic which can detect attached attributes of the avatar, or type of object in the avatar's inventory.
- User may be clearly asked to alter his avatar or inventory, temporarily or permanently.
- User may choose to accept the proposed alteration, reject (and leave), or ban (and leave).
|
| Notes
| Logic may choose to only inform the User of its decision, without expecting action.
|
Contacts
| Use Cases
|
- Manage the list of people in your social network
|
| Summary
| One of the primary reasons for shared interactive spaces is meet with other people when it might otherwise not be possible; in other words socialize. Once we make contact, we often wish to repeat the experience, and so add contact information to a list that comprises a social network.
We present a reusable component called a "Contact List" which allows the user to look-up, manage and communicate with a set of contacts.
|
| Flow
|
- User opens the Contact List by selecting an easily accessible part of the UI.
- List of contacts is shown, containing:
- Thumbnail of the avatar
- Name and Identity
- Presence and Mood
- List of Actions:
- Call
- Message
- Visit: Teleport to the location where this avatar is currently
- Remove
- Ban
- List is sorted by:
- Most/Least frequent
- Longest session length
- Presence
- Alphabetic by Name/Identity
|
| Notes
|
|
| Name
|
Notifications
|
| Use Cases
|
- Notify User of incoming Events
|
| Summary
| In a highly dynamic and multi-use environment, there are a great many events which are happening which may or may not require user notice or intervention.
We propose a notification system that can inform the User without overwhelming with a barrage of hard-to-understand dialogues.
|
| Flow
|
- Event occurs somewhere within the World, Social Network, or the Application itself. Ex:
- New avatar has entered your area
- In-world object has a message for you
- Change in friend's Presence or Mood
- In-coming voice call from a Contact
- Server resource has gone off-line
- Well-known notification area shows a color-coded pop-up prompt. Events which require no action disappear after a few second. Events which require action remain visible in the notification area until action is taken.
- Info: no color notices
- Friend/Contact Info: green notices
- Warning: yellow notices
- Error: red notices
- Action Required: orange notices, with action buttons inside
- Available actions are: "Do X", "Do ...", Dismiss, and Ban (where "X" is proposed action, and "..." is custom action)
- User may choose to read, sort, and manage past messages through an extended notification UI.
|
| Notes
|
|
| Name
|
General Sound Mixing
|
| Use Cases
|
|
| Summary
| Audio, unlike text or video, is broadcast anywhere within listening distance. If the audio output becomes an annoyance to anyone within range, they are likely to become very upset. It is imperative to enable easy control of volume levels.
There are five basic streams which the user would wish control on:
- Ambient Sound Effects: emitted by the environment
- Ambient Voice: emitted by spatial audio
- Ambient Streaming: streamed audio such as music; set by a world designer
- System Events: generated by the UI to gain the user's attention
- Direct Streaming: streaming channel explicitly opened by the user, such as voice chat, or video streaming
|
| Flow
|
- User open the sound control dialogue, which is immediately accessible with one click from the main view.
- User adjusts mute and volume properties.
- User configures some streams to change their volume in response to an event, such as an incoming voice call.
|
| Notes
|
|
|
 |