The below table captures the scope of each preset type for non-person atoms. Please let me know if you spot any inaccuracies or missing differences.
A similar summary for Person atoms can be found here: https://hub.virtamate.com/resources/preset-definitions.189/
VAM Feature | Atom Types / Categories | Look (Legacy) | Pose (Legacy) | Preset (Legacy) | Preset |
---|---|---|---|---|---|
Atom Name | All | | | | |
Atom Position | All | | | ||
Control Node state | All | | | ||
Physics Control & Object | All except: AudioSource, RhythmAudioSource, ClothGrabSphere, SimpleSign, UIText, VaMLogo, VaMSign, WebBrowser, WebPanel, WebPanelEmissive | | | ||
Physics Material Control (bounciness and friction) | All except: CustomUnityAsset, SimSheet, AudioSource, RhythmAudioSource, ClothGrabSphere, SimpleSign, UIText, VaMLogo, VaMSign, WebBrowser, WebPanel, WebPanelEmissive | | | | |
Parent Atom | All | | | | |
Scale | All except: AudioSource, RhythmAudioSource, SimpleSign | | | | |
Scene Animation | All | | | ||
Collision Triggers | All | | | | |
Plugins | All | | | ||
Plugin Parameters | All | | | ||
Asset | CustomUnityAsset | | | | |
Animation Pattern settings | AnimationPattern, AnimationStep | | | | |
Animation Triggers | AnimationPattern, AnimationStep | | | | |
Child Animation Steps | AnimationPattern | | | ||
Material | FloorsAndWalls, Lights (except InvisibleLight), Props, ReflectiveGlass, Shapes, AptSpeaker, Toys, ImagePanel, SimpleSign, VaMLogo, WebPanel, WebPanelEmissive | | | | |
Cycle Force | CycleForce | | | | |
Grab Point | GrabPoint | | | | |
Rhythm Force | RhythmForce | | | | |
Rhythm Audio | RhythmForce | | | ||
Rhythm Audio Volume Triggers | RhythmForce | | | | |
Sync Force | SyncForce | | | | |
Light | Lights | | | | |
Light Drive | TechnoLight | | | | |
Cloth Physics | SimSheet | | | | |
Reflection | Reflective | | | | |
Audio Source | Sound | | | ||
Audio Volume Triggers | Sound | | | | |
Toy Spring | Dildo | | | | |
Url | ImagePanel, ImagePanelEmissive, ImagePanelTransparent, ImagePanelTransparenEmissive | | | | |
Sign | SimpleSign | | | | |
Text | UIText | | | | |
Motion Animation | SubScene | ||||
SubScene | SubScene | ||||
Browser | WebBrowser | | | | |
Web | WebPanel, WebPanelEmissive | | | |
Notes:
- Legacy Presets
Prior to VAM v1.17 there were only three types of presets (Look, Pose and Preset) and these remain as the 'legacy' preset functions:
In v1.17 a more refined set of 9 Presets (.vap file extension) were introduced for Person atoms and a single equivalent preset for non-person atoms was also added:
- Plugin parameters / data
As of VAM v1.20.1.5, there is a bug in the new preset type (.vap file extensions) that means plugin data is not saved as part of the preset. Meshed has indicated this will be fixed in the next version: https://hub.virtamate.com/threads/1-20-1-6-cua-preset-plugin-storables-missing.4096/ - Plugin parameters & Legacy presets
Plugin authors can determine which data items are stored in each of the 3 legacy preset types. Most commonly this is done by setting the storeType attribute of a JSONStorable object as follows:
C#:
_offsetZ = new JSONStorableFloat("Offset Z", 0f, -maxoffset, +maxoffset);
RegisterFloat(_offsetZ);
_offsetZ.storeType = JSONStorableParam.StoreType.Full;
The storeType can be set to Appearance, Physical, Full or Any which will result in the attribute being stored as follows:
JSONStorableParam.StoreType | Look (Legacy) | Pose (Legacy) | Preset (Legacy) |
---|---|---|---|
Appearance | |||
Physical | |||
Full | |||
Any |
The alternative method for plugin authors to store data is by overriding the GetJSON() and RestoreFromJSON() methods. These methods have Appearance and Physical boolean parameters to allow the plugin author to support similar functionality for legacy preset saving/restoring of plugin data (or not).