Avatar System

From NeosVR Wiki
Jump to: navigation, search

Neos by itself doesn't have a concept of an user avatar and its associated behaviors, however it comes with a set of components that provide a conventional (but highly flexible) avatar system that will cover most situations. However as with anything else in Neos, you can build entirely your own to suit your needs or omit it completely, if you don't need avatars at all.

This page describes the ideas and concepts behind building avatar systems for Neos and how are various behaviors (such as voice and movement) handled.

Basic concepts

All worlds in Neos are composed from a hierarchy of objects with components attached to them. Any avatar system is part of this same hierarchy, with no solid distinction between the user's avatar and other objects in the scene. This is what gives the system its great flexibility.

Neos World's provide an OnUserJoined and OnUserLeft events, which are called whenever a new user joins or leaves the session, including the local user (who joins implicitly on starting the session). User joining a session doesn't do anything on itself. There is no avatar spawned, no voice, no controls. The joined user has no way to interact with the world.

To provide such behaviors, you need to add a component to the world that listens to these events, such as the SimpleUserSpawner paired with CommonAvatarBuilder. These components will create new objects in the world hierarchy for newly joined users, attach appropriate components that will read the user's inputs and microphone samples and apply it to the objects in the scene and attach components that provide visuals, such as 3D models or particle systems.

All parts of this process are completely up to you and your needs. Whatever you construct, Neos will automatically replicate to all joined clients (and clients who will join in the future). It's also up to you whether you do the construction on the host or the client who joined (or some other client in the world, if you really want to) - for example clients can construct their own avatars locally, using their locally accessible data.

Common Avatar System

Because avatars are crucial for most applications, Neos comes with a powerful avatar subsystem that you can use (and that's automatically utilized in its own official worlds), called the "Common Avatar System" or just "Common Avatar". This system automatically constructs typical avatars with tools and allows to load user's currently active avatar object from the cloud.

It also comes with a set of components to easily construct new avatars from arbitrary objects right within the system, allowing users to make new avatars from imported models, drawings and shapes made using tools found in Neos and add behaviors using LogiX.