Table of Contents

Class CloneContext

Namespace
nadena.dev.ndmf.animator

The CloneContext keeps track of which virtual objects have been cloned from which original objects, and therefore avoids double-cloning. It also keeps track of various context used during cloning, such as virtual layer offsets. Most users shouldn't use CloneContext directly; use the Clone wrappers in VirtualControllerContext instead.

public sealed class CloneContext
Inheritance
CloneContext
Inherited Members

Constructors

CloneContext(IPlatformAnimatorBindings)

public CloneContext(IPlatformAnimatorBindings platformBindings)

Parameters

platformBindings IPlatformAnimatorBindings

Properties

ActiveInnateLayerKey

When cloning an innate animator, this property will be set to the key of the animator. In the case of VRChat, this contains the layer type while cloning.

public object? ActiveInnateLayerKey { get; }

Property Value

object

PlatformBindings

public IPlatformAnimatorBindings PlatformBindings { get; }

Property Value

IPlatformAnimatorBindings

Methods

Clone(AvatarMask)

public VirtualAvatarMask? Clone(AvatarMask layerAvatarMask)

Parameters

layerAvatarMask AvatarMask

Returns

VirtualAvatarMask

Clone(AnimationClip?)

public VirtualClip? Clone(AnimationClip? clip)

Parameters

clip AnimationClip?

Returns

VirtualClip

Clone(AnimatorControllerLayer?, int)

public VirtualLayer? Clone(AnimatorControllerLayer? layer, int index)

Parameters

layer AnimatorControllerLayer?
index int

Returns

VirtualLayer

Clone(AnimatorStateMachine?)

public VirtualStateMachine? Clone(AnimatorStateMachine? stateMachine)

Parameters

stateMachine AnimatorStateMachine?

Returns

VirtualStateMachine

Clone(AnimatorStateTransition?)

public VirtualStateTransition? Clone(AnimatorStateTransition? transition)

Parameters

transition AnimatorStateTransition?

Returns

VirtualStateTransition

Clone(AnimatorState?)

public VirtualState? Clone(AnimatorState? state)

Parameters

state AnimatorState?

Returns

VirtualState

Clone(AnimatorTransition?)

public VirtualTransition? Clone(AnimatorTransition? transition)

Parameters

transition AnimatorTransition?

Returns

VirtualTransition

Clone(Motion?)

public VirtualMotion? Clone(Motion? m)

Parameters

m Motion?

Returns

VirtualMotion

Clone(RuntimeAnimatorController?)

public VirtualAnimatorController? Clone(RuntimeAnimatorController? controller)

Parameters

controller RuntimeAnimatorController?

Returns

VirtualAnimatorController

Clone(RuntimeAnimatorController?, object)

public VirtualAnimatorController? Clone(RuntimeAnimatorController? controller, object layerKey)

Parameters

controller RuntimeAnimatorController?
layerKey object

Returns

VirtualAnimatorController

CloneDistinct(RuntimeAnimatorController?, object?)

Clones an animator controller, without reusing any objects from prior clones.

public VirtualAnimatorController? CloneDistinct(RuntimeAnimatorController? controller, object? layerKey = null)

Parameters

controller RuntimeAnimatorController?
layerKey object

Returns

VirtualAnimatorController

CloneSourceToVirtualLayerIndex(int)

public int CloneSourceToVirtualLayerIndex(int layerIndex)

Parameters

layerIndex int

Returns

int

DeferCall(Action)

public void DeferCall(Action action)

Parameters

action Action

MapClipOnClone(AnimationClip)

Applies any in-scope AnimationOverrideControllers to the given motion to get the effective motion.

public AnimationClip MapClipOnClone(AnimationClip clip)

Parameters

clip AnimationClip

Returns

AnimationClip