Difference between revisions of "Avatar"
(Table-izes component listings with standard component table, corrects misspelled component names) |
|||
Line 2: | Line 2: | ||
== Structure == | == Structure == | ||
− | An avatar is a hierarchy of slots, with an [[#Avatar Root]] containing [[#Avatar Nodes]] | + | An avatar is a hierarchy of slots, with an [[#Avatar Root|Avatar Root]] containing [[#Avatar Nodes|Avatar Nodes]] |
In general, some components may (and do) appear in multiple places over the hierarchy of an avatar: | In general, some components may (and do) appear in multiple places over the hierarchy of an avatar: | ||
− | + | ||
− | + | {{Table ComponentCategoryComponents | |
+ | |AvatarUserReferenceAssigner|| [[#on avatar equip]], this assigns the reference of the user that equipped the avatar to the slot assigned to the assigner's target. | ||
+ | |SimpleAwayIndicator|| This applies the away [[material]] to a mesh target [[MeshRenderer (Component)|MeshRenderer]] or [[SkinnedMeshRenderer (Component)|SkinnedMeshRenderer]] when the [[user]] equipping the avatar goes to [[away]] state. | ||
+ | }} | ||
=== Avatar Root === | === Avatar Root === | ||
Any [[slot]] with an active [[AvatarRoot (Component)]] defines the root of an avatar. | Any [[slot]] with an active [[AvatarRoot (Component)]] defines the root of an avatar. | ||
− | Commonly the avatar root | + | Commonly the avatar root will contain the following [[components]]: |
− | + | ||
− | + | {{Table ComponentCategoryComponents | |
+ | |AvatarRoot|| Indicates that this slot is the root of an avatar. | ||
+ | |Grabbable|| Indicates the avatar can be grabbed. | ||
+ | |ObjectRoot|| Indicates that this slot is the root of an object. | ||
+ | }} | ||
+ | |||
+ | Avatar roots of avatars created with the [[Avatar Creator]] have these additional [[components]]: | ||
− | + | {{Table ComponentCategoryComponents | |
− | + | |AvatarGroup|| | |
− | + | |PBS_RimMetallic|| The [[#away material]] of the avatar. | |
− | + | |SimpleAvatarProtection|| Sets permissions such that only the user bound to the avatar may equip and save it. | |
− | + | |MeshRendererMaterialRelay|| | |
+ | }} | ||
Humanoid avatars also contain: | 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). | + | {{Table ComponentCategoryComponents |
+ | |Rig|| | ||
+ | |BipedRig|| | ||
+ | |VRIK|| Computes the logic to map the input [[#IK Targets]] to [[#IK Proxies]]. | ||
+ | |VRIKAvatar|| Chooses when and how to bind the [[User]]'s controls to the [[#IK Proxies]]. | ||
+ | }} | ||
+ | |||
+ | Most often, an Avatar Root contains the [[#Avatar Node|Avatar Nodes]] 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 === | === Avatar Nodes === | ||
− | Any [[slot]] under an [[#avatar root]] that contains | + | Any [[slot]] under an [[#avatar root]] that contains an [[AvatarPoseNode (Component)]] is considered an avatar node. |
− | Most often, avatar nodes are direct children of the [[# | + | Most often, avatar nodes are direct children of the [[#Avatar Root|Avatar Root]]. |
Avatar nodes represent a strongly identifiable piece of the avatar, such as LeftHand or Head. | 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: | + | With [[VRIK (Component)|VRIK]]-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. | * [[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. | * 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 | + | The [[Head]] of the avatar often contains these additional components: |
− | + | ||
− | + | {{Table ComponentCategoryComponents | |
− | + | |AvatarVoiceSourceAssigner || Assigns the audio stream of the user [[#on avatar equip]]. There may be multiple of these. | |
− | + | |AvatarAudioOutputManager || Configures the avatar's [[AudioOutput (Component)|AudioOutput]] with the configured settings based on the [[user voice setting]]. | |
− | + | |AudioOutput || Emits the [[user]]'s voice. Many [[fields]] on this [[component]] are [[driven]] by the [[AvatarAudioOutputManager (Component)|AvatarAudioOutputManager]]. | |
− | + | |AvatarVoiceRangeVisualizer || Configures the whisper bubble for the user based off [[AvatarAudioOutputManager (Component)|AvatarAudioOutputManager]] provided settings. | |
− | + | |VisemeAnalyzer || Computes the values to be routed to [[DirectVisemeDriver (Component)|DirectVisemeDriver]] elsewhere in the avatar, which [[Drive|drives]] [[blendshape]] movements. | |
− | + | }} | |
+ | |||
+ | In addition, the Head slot contains 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: | ||
+ | |||
+ | {{Table ComponentCategoryComponents | ||
+ | |MeshRenderer || The visual part of the whisper bubble. | ||
+ | |PBS_IntersectMetallic || The material applied to the whisper bubble. Changes based on the user's audio volume. | ||
+ | }} | ||
==== Centered Root - VRIK specific ==== | ==== Centered Root - VRIK specific ==== |
Revision as of 18:30, 21 September 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:
Components | |
---|---|
Component | Summary |
AvatarUserReferenceAssigner | #on avatar equip, this assigns the reference of the user that equipped the avatar to the slot assigned to the assigner's target. |
SimpleAwayIndicator | This applies the away material to a mesh target MeshRenderer or SkinnedMeshRenderer 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 will contain the following components:
Components | |
---|---|
Component | Summary |
AvatarRoot | Indicates that this slot is the root of an avatar. |
Grabbable | Indicates the avatar can be grabbed. |
ObjectRoot | Indicates that this slot is the root of an object. |
Avatar roots of avatars created with the Avatar Creator have these additional components:
Components | |
---|---|
Component | Summary |
AvatarGroup | |
PBS_RimMetallic | The #away material of the avatar. |
SimpleAvatarProtection | Sets permissions such that only the user bound to the avatar may equip and save it. |
MeshRendererMaterialRelay |
Humanoid avatars also contain:
Components | |
---|---|
Component | Summary |
Rig | |
BipedRig | |
VRIK | Computes the logic to map the input #IK Targets to #IK Proxies. |
VRIKAvatar | Chooses when and how to bind the User's controls to the #IK Proxies. |
Most often, an Avatar Root contains the Avatar Nodes 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 an 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-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 components:
Components | |
---|---|
Component | Summary |
AvatarVoiceSourceAssigner | Assigns the audio stream of the user #on avatar equip. There may be multiple of these. |
AvatarAudioOutputManager | Configures the avatar's AudioOutput with the configured settings based on the user voice setting. |
AudioOutput | Emits the user's voice. Many fields on this component are driven by the AvatarAudioOutputManager. |
AvatarVoiceRangeVisualizer | Configures the whisper bubble for the user based off AvatarAudioOutputManager provided settings. |
VisemeAnalyzer | Computes the values to be routed to DirectVisemeDriver elsewhere in the avatar, which drives blendshape movements. |
In addition, the Head slot contains 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:
Components | |
---|---|
Component | Summary |
MeshRenderer | The visual part of the whisper bubble. |
PBS_IntersectMetallic | The material applied to the whisper bubble. Changes based on the user's audio volume. |
Centered Root - VRIK specific
This slot represents where Neos thinks the center of the avatar is.