proposal also I spelled hiearchy wrong I think |
mNo edit summary |
||
(One intermediate revision by one other user not shown) | |||
Line 75: | Line 75: | ||
<code>resrec:///U-1QbdepR26LI/R-7dc75818-8a95-4a6d-b3b8-3a9010cbf0af</code> | <code>resrec:///U-1QbdepR26LI/R-7dc75818-8a95-4a6d-b3b8-3a9010cbf0af</code> | ||
== Standard | == Standard proposals == | ||
=== Avatar2 | === Avatar2 proposal === | ||
Avatar2 is a dynamic variable often used by [[User:989onan|989onan]] that is used specifically for items that like to make slots that "Jump" from inside of it to slots on the avatar. Issue with these items is that they loose their content that is inside when saved via grabbing, due to the jumpiness nature of their slot | |||
Avatar2 is a dynamic variable often used by [[User:989onan|989onan]] that is used specifically for items that like to make slots that "Jump" from inside of it to slots on the avatar. Issue with these items is that they loose their content that is inside when saved via grabbing, due to the jumpiness nature of their slot hierarchy. That is why these would use "Avatar2" with a dynamic variable space of such on the grab anchor slot. The item will place the slots properly when in avatar hierarchy, but put them back when taken out. This helps for items like hats that change color when held, but parent themselves to the head when their driver flux/Component is in avatar hierarchy (A mix use case of Avatar and Avatar2) | |||
[[Category:Community standards{{#translation:}}]] |
Latest revision as of 13:30, 24 August 2025
Standardization is required for collaboration and shared assets. This is a proposal made by Colin The Cat which standardizes a list of Dynamic Variables on the "Avatar" namespace to make avatar systems interoperable and portable and enables artists to create assets which can easily be installed on avatars without using any developer tools.
Avatar systems are anything that goes on top of an avatar base. This includes ProtoFlux logic and other assets such as clothing or body parts.
All variables must be defined including their namespace to avoid them accidentally binding to the wrong namespace: Avatar/VariableName
. The namespace must not rely on non-direct binding of variables.
Name | Type | Purpose |
---|---|---|
Root |
Slot |
Root slot of the avatar. |
User |
User |
The user that has the avatar equipped as assigned by the Avatar User Reference Assigner. |
HasUser |
bool |
If the avatar is currently equipped. |
IsAway |
bool |
If the user of the avatar is shown as away. |
Base |
String |
Name of the avatar base. Examples: Davali , Mayu .
|
Name |
String |
Name of the avatar slot. |
Bone.Name |
Slot |
All bones of the rig using the original bone names. |
BodyNode.Name |
Slot |
All armature body nodes using Body Node names. |
BodyNode.Name.Bone |
Slot |
The associated fake bone, if one is being used. |
BodyNode.Name.Hidden |
bool |
If the body part should be hidden. |
Proxy.Name |
Slot |
Proxies using the Body Node names. |
RigCollidersEnabled |
bool |
As set by Component:VRIKAvatar rigCollidersEnabledStates .
|
Renderers |
Slot |
All renderers are children of this slot. |
Renderer.Mesh |
SkinnedMeshRenderer MeshRenderer |
|
Renderer.Mesh.Enabled |
bool |
Defaults to true .
|
Material.Name |
IAssetProvider<Material> |
|
Material.Name.Away |
IAssetProvider<Material> |
Material version when IsAway is true.
|
Menu |
Slot |
Radial menu items root slot. |
Menu |
colorX |
Avatar menu color. |
Menu |
IAssetProvider<Sprite> |
Avatar menu icon. |
Systems |
Slots |
All systems are children of this slot. |
Voice |
IWorldAudioDataSource |
Assigned by Avatar Voice Source Assigner. |
VisemeAnalyzer |
VisemeAnalyzer |
|
VisemeAnalyzer.Strength |
float |
Defaults to 1. |
VisemeAnalyzer.VoiceOverride |
IWorldAudioDataSource |
Defaults to Voice .
|
Systems
Avatar systems can be installed by moving their root slot under Avatar/Systems
. They can be deleted by moving them out of the avatar and deleting them after at least 5 ticks. This ensures that all driven parents are moved under the system slot.
Systems can install slots anywhere on the avatar by creating a Dynamic Reference Variable Driver for the parent field of the slot that needs to be somewhere outside of the system's hierarchy. The driver needs to stay under the system's hierarchy and the default value needs to be under it as well to ensure that all slots are removed from the avatar when the system is moved out. It is also recommended to add Destroy Proxies for all slots which are moved outside of the system's hierarchy.
A system can be used to store any customizations such as custom materials (including textures), avatar slot name, menu color/icon by creating a dynamic field on an asset loader (for assets) or a dynamic reference variable which have override on link enabled.
Tools
The process of creating the dynamic variables can be partially automated. A tool for creating them and for moving and installing systems can be found at the following record:
resrec:///U-1QbdepR26LI/R-7dc75818-8a95-4a6d-b3b8-3a9010cbf0af
Standard proposals
Avatar2 proposal
Avatar2 is a dynamic variable often used by 989onan that is used specifically for items that like to make slots that "Jump" from inside of it to slots on the avatar. Issue with these items is that they loose their content that is inside when saved via grabbing, due to the jumpiness nature of their slot hierarchy. That is why these would use "Avatar2" with a dynamic variable space of such on the grab anchor slot. The item will place the slots properly when in avatar hierarchy, but put them back when taken out. This helps for items like hats that change color when held, but parent themselves to the head when their driver flux/Component is in avatar hierarchy (A mix use case of Avatar and Avatar2)