Difference between revisions of "Avatar"

From Neos Wiki
Jump to navigation Jump to search
m (clearing old lists)
Tag: Blanking
Line 1: Line 1:
 +
An avatar is the form of a user in a given world.
  
 +
== Structure ==
 +
An avatar is a hierarchy of slots, with an [[#Avatar Root]] containing [[#Avatar Nodes]]
 +
 +
In general, some components may (and do) appear in multiple places over the hierarchy of an avatar:
 +
* [[AvatarUserReferenceAssigner (Component)]] - [[#on avatar equip]] these assign the reference of the user that equipped the avatar to the slot assigned to the assigner's target.
 +
* [[SimpleAwayIndicator (Component)]] - This applies the away [[material]] to a mesh target [[MeshRenderer (Component)]] or [[SkinnedMeshRenderer (Component)]] when the [[user]] equipping the avatar goes to [[away]] state.
 +
 +
=== Avatar Root ===
 +
Any [[slot]] with an active [[AvatarRoot (Component)]] defines the root of an avatar.
 +
 +
Commonly the avatar root also contains:
 +
* [[Grabbable (Component)]] - It can be picked up.
 +
* [[ObjectRoot (Component)]] - It can be identified as a self contained object.
 +
 +
Avatar roots of avatars created with the [[Avatar Creator]] have these additional [[components]]
 +
* [[AvatarGroup (Component)]] - Unknown purpose
 +
* [[PBS_RimMetalic (Component)]] - The [[#away material]] of the avatar.
 +
* [[SimpleAvatarProtection (Component)]] - Only the one bound to the avatar can equip and save it.
 +
* [[MeshRendererMaterialRely (Component]] - Unknown purpose
 +
 +
Humanoid avatars also contain:
 +
* [[Rig (Component)]] - Unknown purpose
 +
* [[BipedRig (Component)]] - Unknown Purpose
 +
* [[VRIK (Component)]] - Computes the logic to map the input [[#IK Targets]] to [[#IK Proxies]].
 +
* [[VRIKAvatar (Component)]] - Chooses when and how to bind the [[User's]] controls to the [[#IK Proxies]].
 +
 +
Most often, an Avatar Root contains the [[#Avatar Node]] proxies, [[#Centered Root]], and user defined [[Logix]] modules (modules do not need to be defined here, but they often are for ease of access).
 +
 +
=== Avatar Nodes ===
 +
Any [[slot]] under an [[#avatar root]] that contains a [[AvatarPoseNode (Component)]] is considered an avatar node.
 +
Most often, avatar nodes are direct children of the [[#avatar root]].
 +
 +
Avatar nodes represent a strongly identifiable piece of the avatar, such as LeftHand or Head.
 +
 +
With [[VRIK (Component)]] based avatars an Avatar Node is named ''<pose node name> Proxy'' by convention, and contains:
 +
* [[AvatarObjectComponentProxy (Component)]] - This copies the global transform of the avatar node, onto a target node (at least it appears to). Scans for the node kind identified by the [[AvatarPoseNode (Component)]] will find the target of the proxy as well.
 +
* A child [[slot]] named Target - This is where the part of the avatar model will actually try to go to. - Ex: A proxy moves to exactly where a VR tracker is in space, the Target offsets that tracker back to where that body part should be. - Avatar calibration is done by moving the Target [[slot]] under the proxies being calibrated.
 +
 +
The [[Head]] of the avatar often contains these additional nodes:
 +
* [[AvatarVoiceSourceAssigner (Component)]] - This assigns the audio stream of the user [[#on avatar equip]]. There may be multiple of these.
 +
* [[AvatarAudioOutputManager (Component)]] - This configures the avatar's [[AudioOutput (Component)]] with the configured settings based on the [[user voice setting]].
 +
* [[AudioOutput (Component)]] - This is what emits the [[user]]'s voice, many [[fields]] on this [[component]] are [[driven]] by the [[AvatarAudioOutputManager (Component)]].
 +
* [[AvatarVoiceRangeVisualizer (Component)]] - This configures the whisper bubble for the user based off [[AvatarAudioOutputManager (Component)]] provided settings.
 +
* [[VisemeAnalyzer (Component)]] - This computes the values to be routed to [[DirectVisemeDriver (Component)]] elsewhere in the avatar, this [[drives]] [[blendshape]] movements.
 +
* A child [[slot]] named Voice Range Visual - This is the whisper bubble, the slot is inactive unless the equipped user is in the [[whisper]] [[voice mode]]. This slot commonly contains:
 +
** [[MeshRenderer (Component)]] - The visual part of the whisper bubble.
 +
** [[PBS_IntersectMetalic (Component)]] - The material applied to the bubble, this is on the whisper bubble itself as this changes based on the user's audio volume.
 +
 +
==== Centered Root - VRIK specific ====
 +
This slot represents where Neos thinks the center of the avatar is.
 +
 +
 +
 +
== In World Lifecycle ==

Revision as of 08:49, 11 June 2021

An avatar is the form of a user in a given world.

Structure

An avatar is a hierarchy of slots, with an #Avatar Root containing #Avatar Nodes

In general, some components may (and do) appear in multiple places over the hierarchy of an avatar:

Avatar Root

Any slot with an active AvatarRoot (Component) defines the root of an avatar.

Commonly the avatar root also contains:

Avatar roots of avatars created with the Avatar Creator have these additional components

Humanoid avatars also contain:

Most often, an Avatar Root contains the #Avatar Node proxies, #Centered Root, and user defined Logix modules (modules do not need to be defined here, but they often are for ease of access).

Avatar Nodes

Any slot under an #avatar root that contains a AvatarPoseNode (Component) is considered an avatar node. Most often, avatar nodes are direct children of the #avatar root.

Avatar nodes represent a strongly identifiable piece of the avatar, such as LeftHand or Head.

With VRIK (Component) based avatars an Avatar Node is named <pose node name> Proxy by convention, and contains:

  • AvatarObjectComponentProxy (Component) - This copies the global transform of the avatar node, onto a target node (at least it appears to). Scans for the node kind identified by the AvatarPoseNode (Component) will find the target of the proxy as well.
  • A child slot named Target - This is where the part of the avatar model will actually try to go to. - Ex: A proxy moves to exactly where a VR tracker is in space, the Target offsets that tracker back to where that body part should be. - Avatar calibration is done by moving the Target slot under the proxies being calibrated.

The Head of the avatar often contains these additional nodes:

Centered Root - VRIK specific

This slot represents where Neos thinks the center of the avatar is.


In World Lifecycle