Mint Shock (talk | contribs) Mention Avatar Standard |
Mint Shock (talk | contribs) |
||
(11 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
'''<big>This is a early draft of this proposal. Please don't use anything in here yet. Everything is still subject to change.</big>''' | |||
Standardization is required for collaboration and shared assets. This is a proposal made by [[User:Mint Shock|Mint_Shock]] which standardizes a list of [[Dynamic variables|Dynamic Variables]] on the "System" namespace to make systems interoperable and portable and enables [[User|users]] to create systems which can easily be installed onto other objects like [[tools]], [[Avatar|avatars]], and much more. All without using any developer tools. | Standardization is required for collaboration and shared assets. This is a proposal made by [[User:Mint Shock|Mint_Shock]] which standardizes a list of [[Dynamic variables|Dynamic Variables]] on the "System" namespace to make systems interoperable and portable and enables [[User|users]] to create systems which can easily be installed onto other objects like [[tools]], [[Avatar|avatars]], and much more. All without using any developer tools. | ||
Line 5: | Line 7: | ||
All variables must be defined including their namespace to avoid them accidentally binding to the wrong namespace: <code>System/''VariableName''</code>. The namespace must not rely on non-direct binding of variables. | All variables must be defined including their namespace to avoid them accidentally binding to the wrong namespace: <code>System/''VariableName''</code>. The namespace must not rely on non-direct binding of variables. | ||
== Setup == | |||
The simplest possible system consists of a single slot with all required '''[*]''' variables present. | |||
== Variables == | |||
{| class="wikitable" | |||
|+ | |||
Dynamic Variables | |||
!Name | |||
!Type | |||
!Purpose | |||
|- | |||
|<code>Root</code> * | |||
|{{Template:TypeColorCard|Slot}} | |||
|Root slot of the system. | |||
|- | |||
|<code>Name</code> * | |||
|{{Template:TypeColorCard|String}} | |||
|Name of the system. Use a [[Component:DynamicField|DynamicField]] with the target being the tag on the system <code>root</code> | |||
|- | |||
|<code>Icon</code> | |||
|{{Template:TypeColorCard|Uri}} | |||
|Icon of the system. (resdb link to the icon texture) | |||
|- | |||
|<code>HasSubsystem</code> | |||
|{{Template:TypeColorCard|bool}} | |||
|If this system has subsystems | |||
|- | |||
|<code>IsAway</code> | |||
|{{Template:TypeColorCard|bool}} | |||
|If the user of the avatar is shown as away. | |||
|- | |||
|<code>Base</code> | |||
|{{Template:TypeColorCard|String}} | |||
|Name of the avatar base. Examples: <code>Davali</code>, <code>Mayu</code>. | |||
|- | |||
|<code>Bone.''Name''</code> | |||
|{{Template:TypeColorCard|Slot}} | |||
|All bones of the rig using the original bone names. | |||
|- | |||
|<code>BodyNode.''Name''</code> | |||
|{{Template:TypeColorCard|Slot}} | |||
|All armature body nodes using [[Type:BodyNode|Body Node]] names. | |||
|- | |||
|<code>Menu</code> | |||
|{{Template:TypeColorCard|Slot}} | |||
|Radial menu items root slot. | |||
|} | |||
=== Subsystems === | |||
== Avatar Standard == | == Avatar Standard == | ||
The '''System standard''' is designed primarely as a extension of the [[Avatar standard]]. Both proposals are designed to work together seamlessly. Systems can access variables from the [[Avatar standard]] by reading variables from the Avatar | The '''System standard''' is designed primarely as a extension of the [[Avatar standard]]. Both proposals are designed to work together seamlessly. Systems can access variables from the [[Avatar standard]] by reading variables from the <code>Avatar</code> namespace. | ||
Example: a flight thruster system might need to know the users hand position. Normally you would have to manually find the users hand [[Slot|slots]] using [[ProtoFlux]]. [[Avatar standard]] simplifies this by providing [[Dynamic variable]] <code>Avatar/BodyNode.HandL</code> and <code>Avatar/</code><!-- Check for correct Dynvar names --><code>BodyNode.HandR</code> of type {{Template:TypeColorCard|Slot}} | |||
le | |||
== See also == | == See also == |
Latest revision as of 22:54, 25 September 2025
This is a early draft of this proposal. Please don't use anything in here yet. Everything is still subject to change.
Standardization is required for collaboration and shared assets. This is a proposal made by Mint_Shock which standardizes a list of Dynamic Variables on the "System" namespace to make systems interoperable and portable and enables users to create systems which can easily be installed onto other objects like tools, avatars, and much more. All without using any developer tools.
Systems are anything that goes on top of an base object. This includes ProtoFlux logic and other assets such as slots, meshes, textures and much more.
All variables must be defined including their namespace to avoid them accidentally binding to the wrong namespace: System/VariableName
. The namespace must not rely on non-direct binding of variables.
Setup
The simplest possible system consists of a single slot with all required [*] variables present.
Variables
Name | Type | Purpose |
---|---|---|
Root *
|
Slot
|
Root slot of the system. |
Name *
|
String
|
Name of the system. Use a DynamicField with the target being the tag on the system root
|
Icon
|
Uri
|
Icon of the system. (resdb link to the icon texture) |
HasSubsystem
|
bool
|
If this system has subsystems |
IsAway
|
bool
|
If the user of the avatar is shown as away. |
Base
|
String
|
Name of the avatar base. Examples: Davali , Mayu .
|
Bone.Name
|
Slot
|
All bones of the rig using the original bone names. |
BodyNode.Name
|
Slot
|
All armature body nodes using Body Node names. |
Menu
|
Slot
|
Radial menu items root slot. |
Subsystems
Avatar Standard
The System standard is designed primarely as a extension of the Avatar standard. Both proposals are designed to work together seamlessly. Systems can access variables from the Avatar standard by reading variables from the Avatar
namespace.
Example: a flight thruster system might need to know the users hand position. Normally you would have to manually find the users hand slots using ProtoFlux. Avatar standard simplifies this by providing Dynamic variable Avatar/BodyNode.HandL
and Avatar/
BodyNode.HandR
of type Slot
le