Add AacFlState.PoseSpaceEntered(...), PoseSpaceExited, PoseSpaceEnteredPercent, and PoseSpaceExitedPercent:

- Add AadFlState.PoseSpaceEntered(...) with 0-duration default overload.
- Add AadFlState.PoseSpaceExited(...) with 0-duration default overload.
- Add AadFlState.PoseSpaceEnteredPercent(...)
- Add AadFlState.PoseSpaceExitedPercent(...)
This commit is contained in:
Haï~
2022-05-10 20:02:55 +02:00
parent 508b458fba
commit 8bbf482210
2 changed files with 58 additions and 6 deletions
+47 -1
View File
@@ -214,6 +214,7 @@ namespace AnimatorAsCode.V0
private VRCAvatarParameterDriver _driver;
private VRCAnimatorTrackingControl _tracking;
private VRCAnimatorLocomotionControl _locomotionControl;
private VRCAnimatorTemporaryPoseSpace _temporaryPoseSpace;
public AacFlState(AnimatorState state, AnimatorStateMachine machine, IAacDefaultsProvider defaultsProvider)
{
@@ -528,6 +529,46 @@ namespace AnimatorAsCode.V0
return this;
}
public AacFlState PoseSpaceEntered(float delaySeconds = 0f)
{
CreateTemporaryPoseSpaceBehaviorIfNotExists();
_temporaryPoseSpace.enterPoseSpace = true;
_temporaryPoseSpace.fixedDelay = true;
_temporaryPoseSpace.delayTime = delaySeconds;
return this;
}
public AacFlState PoseSpaceExited(float delaySeconds = 0f)
{
CreateTemporaryPoseSpaceBehaviorIfNotExists();
_temporaryPoseSpace.enterPoseSpace = false;
_temporaryPoseSpace.fixedDelay = true;
_temporaryPoseSpace.delayTime = delaySeconds;
return this;
}
public AacFlState PoseSpaceEnteredPercent(float delayNormalized)
{
CreateTemporaryPoseSpaceBehaviorIfNotExists();
_temporaryPoseSpace.enterPoseSpace = true;
_temporaryPoseSpace.fixedDelay = false;
_temporaryPoseSpace.delayTime = delayNormalized;
return this;
}
public AacFlState PoseSpaceExitedPercent(float delayNormalized)
{
CreateTemporaryPoseSpaceBehaviorIfNotExists();
_temporaryPoseSpace.enterPoseSpace = false;
_temporaryPoseSpace.fixedDelay = false;
_temporaryPoseSpace.delayTime = delayNormalized;
return this;
}
public AacFlState MotionTime(AacFlFloatParameter floatParam)
{
State.timeParameterActive = true;
@@ -597,13 +638,18 @@ namespace AnimatorAsCode.V0
_tracking = State.AddStateMachineBehaviour<VRCAnimatorTrackingControl>();
}
private void CreateLocomotionBehaviorIfNotExists()
{
if (_locomotionControl != null) return;
_locomotionControl = State.AddStateMachineBehaviour<VRCAnimatorLocomotionControl>();
}
private void CreateTemporaryPoseSpaceBehaviorIfNotExists()
{
if (_temporaryPoseSpace != null) return;
_temporaryPoseSpace = State.AddStateMachineBehaviour<VRCAnimatorTemporaryPoseSpace>();
}
public enum TrackingElement
{
Head,