.. _CreationConfig: ======================== Creating a configuration ======================== To create a new configuration, create a class that inherits from the AnimationConfig abstract class .. code-block:: c# public abstract class AnimationConfig { public abstract void ApplyConfiguration(AvatarReady avatarReady); public abstract void ResetConfiguration(AvatarReady avatarReady); } Some attributes must be specified in the configuration: - An AvatarReadyName to define the name of the config in the avatar ready inspector - An AvatarReadySupportedSystem to define the system this config applies to A configuration may also have some optional attributes - One or many AvatarReadySupportedTracker if the system requires the use of trackers - One or many AvatarReadyConstOption / AvatarReadyObjectOptionAttribute / AvatarReadyReflectionOptionAttribute if the system requires specific options. .. code-block:: c# :caption: Example of attributes for the Animation Rigging Default configuration [AvatarReadyName("Animation Rigging Default config", "Headset + 2 Hand controllers")] [AvatarReadySupportedSystem(typeof(AnimationRiggingSystem))] [AvatarReadySupportedTracker(0, "Headset", HumanBodyBones.Head, typeof(HeadTracker))] [AvatarReadySupportedTracker(1, "Left Hand Tracker", HumanBodyBones.LeftHand, typeof(HandTracker))] [AvatarReadySupportedTracker(1, "Right Hand Tracker", HumanBodyBones.RightHand, typeof(HandTracker))] public class ARiggingDefaultConfig : AnimationConfig { ... }