From 3790d1ccad3a39be38bdec4eb1d673f36d0bcc5d Mon Sep 17 00:00:00 2001 From: Lena Linke <130255332+lenalinke@users.noreply.github.com> Date: Mon, 9 Sep 2024 17:38:11 +0200 Subject: [PATCH] Change sitting logic --- .../AgentStandardController.controller | 214 +++++++++++----- .../Runtime/Animations/Sitting Idle.anim | 6 +- .../Runtime/Animations/Stand To Sit.anim | 4 +- .../FundamentalAgentTasks/AgentSittingTask.cs | 114 +++++++-- .../Sitting Sample/AgentSittingController.cs | 7 +- .../Sitting Sample/Sitting Sample.unity | 232 ++++++++++++++++-- 6 files changed, 475 insertions(+), 102 deletions(-) diff --git a/Assets/Virtual Agents Framework/Runtime/Animations/AgentStandardController.controller b/Assets/Virtual Agents Framework/Runtime/Animations/AgentStandardController.controller index 3173515..45b1b36 100644 --- a/Assets/Virtual Agents Framework/Runtime/Animations/AgentStandardController.controller +++ b/Assets/Virtual Agents Framework/Runtime/Animations/AgentStandardController.controller @@ -117,7 +117,7 @@ AnimatorState: m_Speed: 1 m_CycleOffset: 0 m_Transitions: - - {fileID: 2843020329401696845} + - {fileID: -585796327191322241} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -191,7 +191,7 @@ AnimatorState: m_Speed: 1 m_CycleOffset: 0 m_Transitions: - - {fileID: -6162378068744182272} + - {fileID: -6800193517117942628} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -201,13 +201,13 @@ AnimatorState: m_MirrorParameterActive: 0 m_CycleOffsetParameterActive: 0 m_TimeParameterActive: 0 - m_Motion: {fileID: -87929016699215547} + m_Motion: {fileID: 7400000, guid: 0d2f0e4a0cc83ed4f9021867629143e7, type: 2} m_Tag: m_SpeedParameter: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: ---- !u!1101 &-6589284151734946509 +--- !u!1101 &-6800193517117942628 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} @@ -215,24 +215,24 @@ AnimatorStateTransition: m_PrefabAsset: {fileID: 0} m_Name: m_Conditions: - - m_ConditionMode: 1 - m_ConditionEvent: WaveRight + - m_ConditionMode: 2 + m_ConditionEvent: Sitting m_EventTreshold: 0 m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: 683016007817646378} + m_DstState: {fileID: -1911321567402028326} m_Solo: 0 m_Mute: 0 m_IsExit: 0 serializedVersion: 3 - m_TransitionDuration: 0.25 + m_TransitionDuration: 0 m_TransitionOffset: 0 - m_ExitTime: 0.75 - m_HasExitTime: 1 + m_ExitTime: 0.9144487 + m_HasExitTime: 0 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 ---- !u!1101 &-6292368172896539893 +--- !u!1101 &-6589284151734946509 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} @@ -241,10 +241,10 @@ AnimatorStateTransition: m_Name: m_Conditions: - m_ConditionMode: 1 - m_ConditionEvent: Wave + m_ConditionEvent: WaveRight m_EventTreshold: 0 m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: 4732113542924680250} + m_DstState: {fileID: 683016007817646378} m_Solo: 0 m_Mute: 0 m_IsExit: 0 @@ -257,7 +257,7 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 ---- !u!1101 &-6262600636166181595 +--- !u!1101 &-6292368172896539893 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} @@ -282,7 +282,7 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 ---- !u!1101 &-6162378068744182272 +--- !u!1101 &-6262600636166181595 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} @@ -290,11 +290,11 @@ AnimatorStateTransition: m_PrefabAsset: {fileID: 0} m_Name: m_Conditions: - - m_ConditionMode: 2 - m_ConditionEvent: Sitting + - m_ConditionMode: 1 + m_ConditionEvent: Wave m_EventTreshold: 0 m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: -7574077162709661804} + m_DstState: {fileID: 4732113542924680250} m_Solo: 0 m_Mute: 0 m_IsExit: 0 @@ -302,7 +302,7 @@ AnimatorStateTransition: m_TransitionDuration: 0.25 m_TransitionOffset: 0 m_ExitTime: 0.75 - m_HasExitTime: 0 + m_HasExitTime: 1 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 @@ -417,6 +417,28 @@ BlendTree: m_UseAutomaticThresholds: 0 m_NormalizedBlendValues: 0 m_BlendType: 0 +--- !u!1101 &-4743300286174424125 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7574077162709661804} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1101 &-3824270642207330442 AnimatorStateTransition: m_ObjectHideFlags: 1 @@ -516,6 +538,33 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1102 &-1911321567402028326 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Stand Up + m_Speed: -1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -4743300286174424125} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 1 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 84613641da5e65542b7a937f385f3fc0, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1107 &-1326744328763939035 AnimatorStateMachine: serializedVersion: 6 @@ -573,6 +622,31 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1101 &-585796327191322241 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Sitting + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 2480726807434242613} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.9473222 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!206 &-87929016699215547 BlendTree: m_ObjectHideFlags: 1 @@ -626,55 +700,55 @@ AnimatorController: m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: ShakeHead m_Type: 9 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: WaveLeft m_Type: 9 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: WaveRight m_Type: 9 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: NoAnimation m_Type: 9 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: PointingLeft m_Type: 9 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: PointingRight m_Type: 9 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: Sitting m_Type: 4 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: SittingDirection m_Type: 1 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer @@ -685,7 +759,7 @@ AnimatorController: m_BlendingMode: 0 m_SyncedLayerIndex: -1 m_DefaultWeight: 0 - m_IKPass: 0 + m_IKPass: 1 m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} - serializedVersion: 5 @@ -947,6 +1021,33 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1102 &2480726807434242613 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sit Down + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 3565014075777175956} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 84613641da5e65542b7a937f385f3fc0, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1102 &2620317177267844173 AnimatorState: serializedVersion: 6 @@ -988,7 +1089,13 @@ AnimatorStateMachine: m_Position: {x: 390, y: 120, z: 0} - serializedVersion: 1 m_State: {fileID: -7272325140375282042} - m_Position: {x: 400, y: 210, z: 0} + m_Position: {x: 390, y: 320, z: 0} + - serializedVersion: 1 + m_State: {fileID: 2480726807434242613} + m_Position: {x: 270, y: 210, z: 0} + - serializedVersion: 1 + m_State: {fileID: -1911321567402028326} + m_Position: {x: 520, y: 210, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] @@ -1024,31 +1131,6 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 ---- !u!1101 &2843020329401696845 -AnimatorStateTransition: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - m_Conditions: - - m_ConditionMode: 1 - m_ConditionEvent: Sitting - m_EventTreshold: 0 - m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: -7272325140375282042} - m_Solo: 0 - m_Mute: 0 - m_IsExit: 0 - serializedVersion: 3 - m_TransitionDuration: 0.25 - m_TransitionOffset: 0 - m_ExitTime: 0.9473222 - m_HasExitTime: 0 - m_HasFixedDuration: 1 - m_InterruptionSource: 0 - m_OrderedInterruption: 1 - m_CanTransitionToSelf: 1 --- !u!1107 &2851728300977627345 AnimatorStateMachine: serializedVersion: 6 @@ -1068,6 +1150,28 @@ AnimatorStateMachine: m_ExitPosition: {x: 800, y: 120, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: 0} +--- !u!1101 &3565014075777175956 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7272325140375282042} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1102 &4732113542924680250 AnimatorState: serializedVersion: 6 diff --git a/Assets/Virtual Agents Framework/Runtime/Animations/Sitting Idle.anim b/Assets/Virtual Agents Framework/Runtime/Animations/Sitting Idle.anim index 04b4ba4..df2f2df 100644 --- a/Assets/Virtual Agents Framework/Runtime/Animations/Sitting Idle.anim +++ b/Assets/Virtual Agents Framework/Runtime/Animations/Sitting Idle.anim @@ -18903,10 +18903,10 @@ AnimationClip: m_Level: 0 m_CycleOffset: 0 m_HasAdditiveReferencePose: 0 - m_LoopTime: 0 - m_LoopBlend: 0 + m_LoopTime: 1 + m_LoopBlend: 1 m_LoopBlendOrientation: 0 - m_LoopBlendPositionY: 0 + m_LoopBlendPositionY: 1 m_LoopBlendPositionXZ: 0 m_KeepOriginalOrientation: 0 m_KeepOriginalPositionY: 0 diff --git a/Assets/Virtual Agents Framework/Runtime/Animations/Stand To Sit.anim b/Assets/Virtual Agents Framework/Runtime/Animations/Stand To Sit.anim index 863eb91..fb35e02 100644 --- a/Assets/Virtual Agents Framework/Runtime/Animations/Stand To Sit.anim +++ b/Assets/Virtual Agents Framework/Runtime/Animations/Stand To Sit.anim @@ -33936,11 +33936,11 @@ AnimationClip: m_LoopTime: 0 m_LoopBlend: 0 m_LoopBlendOrientation: 0 - m_LoopBlendPositionY: 0 + m_LoopBlendPositionY: 1 m_LoopBlendPositionXZ: 0 m_KeepOriginalOrientation: 0 m_KeepOriginalPositionY: 0 - m_KeepOriginalPositionXZ: 0 + m_KeepOriginalPositionXZ: 1 m_HeightFromFeet: 1 m_Mirror: 0 m_EditorCurves: diff --git a/Assets/Virtual Agents Framework/Runtime/Scripts/FundamentalAgentTasks/AgentSittingTask.cs b/Assets/Virtual Agents Framework/Runtime/Scripts/FundamentalAgentTasks/AgentSittingTask.cs index 465bba4..7ce0d29 100644 --- a/Assets/Virtual Agents Framework/Runtime/Scripts/FundamentalAgentTasks/AgentSittingTask.cs +++ b/Assets/Virtual Agents Framework/Runtime/Scripts/FundamentalAgentTasks/AgentSittingTask.cs @@ -1,71 +1,141 @@ using System.Collections; using UnityEngine; using UnityEngine.Animations.Rigging; +using UnityEngine.UIElements; namespace i5.VirtualAgents.AgentTasks { + public enum SittingDirection + { + SITDOWN, + STANDUP, + TOGGLE + } + public class AgentSittingTask: AgentBaseTask, ISerializable { - public bool Toggle { get; set; } + public SittingDirection Direction { get; protected set; } private bool sitting = false; private float animationDuration = 2.233f; + private bool finished = false; public GameObject Chair{ get; protected set; } private RigBuilder rigBuilder; private TwoBoneIKConstraint leftLegIK; private TwoBoneIKConstraint rightLegIK; private MultiAimConstraint spineAim; + private MultiParentConstraint hipConstraint; + private Vector3 prevPosition; + private Vector3 feetPosition; + private Vector3 sitPosition; - public AgentSittingTask(GameObject chair, bool sitDown, bool toggle = true) + public AgentSittingTask(GameObject chair, SittingDirection direction = SittingDirection.TOGGLE) { - // if sitDown is false the agent will stand up or keep standing - Toggle = toggle; + //TODO: replace with toggle + Direction = direction; Chair = chair; + feetPosition = chair.transform.Find("FeetPosition").position; + sitPosition = chair.transform.Find("SitPosition").position; } public override void StartExecution(Agent agent) { - bool oldState = sitting; Animator animator = agent.GetComponent(); - Vector3 sittingPosition = FindSittingSpace(Chair); - agent.transform.position = sittingPosition; - agent.transform.rotation = Chair.transform.rotation; - if (Toggle) + sitting = animator.GetBool("Sitting"); + bool oldState = sitting; + + if (Direction==SittingDirection.TOGGLE) { // toggle the sitting state - animator.SetBool("Sitting", !sitting); + sitting = !sitting; } - else if(!sitting) + else if(Direction==SittingDirection.SITDOWN) { // if no toggle set, sit down if not already sitting - animator.SetBool("Sitting", true); + sitting = true; + } + else + { + // if no toggle set, stand up if not already standing + sitting = false; } - bool currentState = animator.GetBool("Sitting"); + bool currentState = sitting; // check if animation is needed if (oldState != currentState) { + // get all constraints + rigBuilder = agent.transform.Find("AnimationRigging/CharacterRig").GetComponent(); + leftLegIK = agent.transform.Find("AnimationRigging/CharacterRig/Left Leg IK").GetComponent(); + rightLegIK = agent.transform.Find("AnimationRigging/CharacterRig/Right Leg IK").GetComponent(); + spineAim = agent.transform.Find("AnimationRigging/CharacterRig/Spine Aim").GetComponent(); + hipConstraint = agent.transform.Find("AnimationRigging/CharacterRig/Hip Constraint").GetComponent(); + // case: sitting down - if (currentState == true) + if (currentState) { + // move to chair position + Vector3 sittingPosition = FindSittingSpace(Chair); + //agent.transform.position = sittingPosition; + agent.transform.rotation = Chair.transform.rotation; + + // enable constraints + animator.SetBool("Sitting", sitting); animator.SetFloat("SittingDirection", -1); + + leftLegIK.weight = 1; + rightLegIK.weight = 1; + spineAim.weight = 1; + hipConstraint.weight = 1; + + // wait for animation to finish, then set state to sitting idle + agent.StartCoroutine(FadeIkAndPosition(agent, true)); + Debug.Log("Sitting down"); } // case: standing up else { + Debug.Log(animator.GetBool("Sitting")); animator.SetFloat("SittingDirection", 1); + animator.SetBool("Sitting", false); + agent.StartCoroutine(FadeIkAndPosition(agent, false)); + + Debug.Log("Standing up"); } - // wait for animation to finish, then set state to sitting idle - agent.StartCoroutine(WaitForAnimation(animator)); + } + } - private IEnumerator WaitForAnimation(Animator animator) + + private IEnumerator FadeIkAndPosition(Agent agent, bool fadeIn) { - yield return new WaitForSeconds(animationDuration); - animator.SetFloat("SittingDirection", 0); + float duration = animationDuration; + float time = 0; + float startWeight = fadeIn ? 0 : 1; + float endWeight = fadeIn ? 1 : 0; + Vector3 startPosition = agent.transform.position; + Vector3 endPosition = fadeIn ? sitPosition : feetPosition; + while (time < duration) + { + time += Time.deltaTime; + leftLegIK.weight = Mathf.Lerp(startWeight, endWeight, time / duration); + rightLegIK.weight = Mathf.Lerp(startWeight, endWeight, time / duration); + spineAim.weight = Mathf.Lerp(startWeight, endWeight, time / duration); + hipConstraint.weight = Mathf.Lerp(startWeight, endWeight, time / duration); + agent.transform.position = Vector3.Lerp(startPosition, endPosition, time / duration); + yield return null; + } + finished = true; } - + public override TaskState EvaluateTaskState() + { + if (finished) + { + return TaskState.Success; + } + return TaskState.Running; + } private Vector3 FindSittingSpace(GameObject chair) { // Find the sitting space dynamically @@ -87,14 +157,14 @@ private Vector3 FindSittingSpace(GameObject chair) public void Serialize(SerializationDataContainer serializer) { serializer.AddSerializedData("Animation Duration", animationDuration); - serializer.AddSerializedData("Toggle", Toggle); + //serializer.AddSerializedData("Toggle", Toggle); serializer.AddSerializedData("Sitting", sitting); } public void Deserialize(SerializationDataContainer serializer) { animationDuration = serializer.GetSerializedFloat("Animation Duration"); - Toggle = serializer.GetSerializedBool("Toggle"); + //Toggle = serializer.GetSerializedBool("Toggle"); sitting = serializer.GetSerializedBool("Sitting"); } } diff --git a/Assets/Virtual Agents Framework/Samples/Sitting Sample/AgentSittingController.cs b/Assets/Virtual Agents Framework/Samples/Sitting Sample/AgentSittingController.cs index f967c91..be65104 100644 --- a/Assets/Virtual Agents Framework/Samples/Sitting Sample/AgentSittingController.cs +++ b/Assets/Virtual Agents Framework/Samples/Sitting Sample/AgentSittingController.cs @@ -11,11 +11,14 @@ public class AgentSittingController : SampleScheduleController protected override void Start() { base.Start(); - AgentSittingTask sittingTask = new AgentSittingTask(Chair, true); + AgentSittingTask sittingTask = new AgentSittingTask(Chair, SittingDirection.SITDOWN); + AgentSittingTask standingTask = new AgentSittingTask(Chair, SittingDirection.STANDUP); //AgentSittingTask standUpTask = new AgentSittingTask(true); // add a sitting task taskSystem.ScheduleTask(sittingTask); - taskSystem.ScheduleTask(sittingTask); + taskSystem.Tasks.WaitForSeconds(3); + Debug.Log("2nd Sitting Task Scheduled"); + taskSystem.ScheduleTask(standingTask); } } diff --git a/Assets/Virtual Agents Framework/Samples/Sitting Sample/Sitting Sample.unity b/Assets/Virtual Agents Framework/Samples/Sitting Sample/Sitting Sample.unity index a37c460..f5b5213 100644 --- a/Assets/Virtual Agents Framework/Samples/Sitting Sample/Sitting Sample.unity +++ b/Assets/Virtual Agents Framework/Samples/Sitting Sample/Sitting Sample.unity @@ -385,7 +385,7 @@ MonoBehaviour: m_Root: {fileID: 102498708} m_Mid: {fileID: 1624992706} m_Tip: {fileID: 624983266} - m_Target: {fileID: 724669920} + m_Target: {fileID: 471645978} m_Hint: {fileID: 1480420845} m_TargetPositionWeight: 1 m_TargetRotationWeight: 1 @@ -404,7 +404,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 70b342d8ce5c2fd48b8fa3147d48d1d1, type: 3} m_Name: m_EditorClassIdentifier: - m_Weight: 1 + m_Weight: 0 m_Effectors: - m_Transform: {fileID: 771548589} m_Style: @@ -505,43 +505,43 @@ PrefabInstance: m_Modifications: - target: {fileID: -8679921383154817045, guid: 0cdb6d1ca77e8644ba96b04bb986b127, type: 3} propertyPath: m_LocalPosition.x - value: -0 + value: -0.089982 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 0cdb6d1ca77e8644ba96b04bb986b127, type: 3} propertyPath: m_LocalPosition.y - value: 1.32 + value: 1.438 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 0cdb6d1ca77e8644ba96b04bb986b127, type: 3} propertyPath: m_LocalPosition.z - value: -0.576 + value: -0.515 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 0cdb6d1ca77e8644ba96b04bb986b127, type: 3} propertyPath: m_LocalRotation.w - value: 1 + value: 0.99941254 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 0cdb6d1ca77e8644ba96b04bb986b127, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0.021069733 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 0cdb6d1ca77e8644ba96b04bb986b127, type: 3} propertyPath: m_LocalRotation.y - value: -0 + value: 0.013028288 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 0cdb6d1ca77e8644ba96b04bb986b127, type: 3} propertyPath: m_LocalRotation.z - value: -0 + value: 0.023685886 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 0cdb6d1ca77e8644ba96b04bb986b127, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: 0 + value: -2.449 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 0cdb6d1ca77e8644ba96b04bb986b127, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: 0 + value: 1.436 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 0cdb6d1ca77e8644ba96b04bb986b127, type: 3} propertyPath: m_LocalEulerAnglesHint.z - value: 0 + value: 2.685 objectReference: {fileID: 0} - target: {fileID: 919132149155446097, guid: 0cdb6d1ca77e8644ba96b04bb986b127, type: 3} propertyPath: m_Icon @@ -581,9 +581,46 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] - m_AddedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: -8679921383154817045, guid: 0cdb6d1ca77e8644ba96b04bb986b127, type: 3} + insertIndex: -1 + addedObject: {fileID: 471645978} + - targetCorrespondingSourceObject: {fileID: -8679921383154817045, guid: 0cdb6d1ca77e8644ba96b04bb986b127, type: 3} + insertIndex: -1 + addedObject: {fileID: 717296191} m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 0cdb6d1ca77e8644ba96b04bb986b127, type: 3} +--- !u!1 &471645977 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 471645978} + m_Layer: 6 + m_Name: FeetPosition + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &471645978 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 471645977} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.077, y: -1.41, z: 0.401} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 724669920} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &501935480 GameObject: m_ObjectHideFlags: 0 @@ -982,7 +1019,7 @@ MonoBehaviour: m_MinLimit: -180 m_MaxLimit: 180 m_AimAxis: 2 - m_UpAxis: 2 + m_UpAxis: 3 m_WorldUpType: 0 m_WorldUpObject: {fileID: 0} m_WorldUpAxis: 2 @@ -1003,7 +1040,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 70b342d8ce5c2fd48b8fa3147d48d1d1, type: 3} m_Name: m_EditorClassIdentifier: - m_Weight: 1 + m_Weight: 0 m_Effectors: [] --- !u!1 &683335273 GameObject: @@ -1151,7 +1188,7 @@ MonoBehaviour: m_Root: {fileID: 2009383301} m_Mid: {fileID: 108538746} m_Tip: {fileID: 1619963491} - m_Target: {fileID: 724669920} + m_Target: {fileID: 471645978} m_Hint: {fileID: 1358435854} m_TargetPositionWeight: 1 m_TargetRotationWeight: 1 @@ -1170,7 +1207,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 70b342d8ce5c2fd48b8fa3147d48d1d1, type: 3} m_Name: m_EditorClassIdentifier: - m_Weight: 1 + m_Weight: 0 m_Effectors: - m_Transform: {fileID: 1662600180} m_Style: @@ -1188,6 +1225,53 @@ MonoBehaviour: position: {x: 0, y: 0, z: 0} rotation: {x: 0, y: 0, z: 0} m_Visible: 1 + - m_Transform: {fileID: 724669920} + m_Style: + shape: {fileID: 4300000, guid: 687b70eb9c49243639f9379f6965034f, type: 2} + color: {r: 1, g: 0, b: 0, a: 0.5} + size: 0.1 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0} + m_Visible: 1 + - m_Transform: {fileID: 1358435854} + m_Style: + shape: {fileID: 4300000, guid: e050c2b16fe384bd994474655a4b4968, type: 2} + color: {r: 1, g: 0, b: 0, a: 0.5} + size: 0.1 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0} + m_Visible: 1 +--- !u!1 &717296190 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 717296191} + m_Layer: 6 + m_Name: SitPosition + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &717296191 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 717296190} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.043, y: -0.92, z: -0.039} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 724669920} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &717973401 GameObject: m_ObjectHideFlags: 0 @@ -2114,12 +2198,14 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_RigLayers: - - m_Rig: {fileID: 687999932} + - m_Rig: {fileID: 0} m_Active: 1 - m_Rig: {fileID: 71446760} m_Active: 1 - m_Rig: {fileID: 682596411} m_Active: 1 + - m_Rig: {fileID: 2022523804} + m_Active: 1 m_Effectors: [] --- !u!95 &1743031139 Animator: @@ -2294,6 +2380,11 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1812909814 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2260048411347863196, guid: 2962848ab48f0e4459691ff3d6d1eed0, type: 3} + m_PrefabInstance: {fileID: 1023428232005854918} + m_PrefabAsset: {fileID: 0} --- !u!1 &1872182309 GameObject: m_ObjectHideFlags: 0 @@ -2616,6 +2707,104 @@ Transform: - {fileID: 1823996} m_Father: {fileID: 1294797797} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2022523801 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2022523802} + - component: {fileID: 2022523804} + - component: {fileID: 2022523805} + m_Layer: 0 + m_Name: Hip Constraint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2022523802 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2022523801} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1743031137} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2022523804 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2022523801} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70b342d8ce5c2fd48b8fa3147d48d1d1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Weight: 1 + m_Effectors: [] +--- !u!114 &2022523805 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2022523801} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8935e03361a14ec4b8edc872f76bc822, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Weight: 0 + m_Data: + m_ConstrainedObject: {fileID: 1812909814} + m_SourceObjects: + m_Length: 1 + m_Item0: + transform: {fileID: 717296191} + weight: 1 + m_Item1: + transform: {fileID: 0} + weight: 0 + m_Item2: + transform: {fileID: 0} + weight: 0 + m_Item3: + transform: {fileID: 0} + weight: 0 + m_Item4: + transform: {fileID: 0} + weight: 0 + m_Item5: + transform: {fileID: 0} + weight: 0 + m_Item6: + transform: {fileID: 0} + weight: 0 + m_Item7: + transform: {fileID: 0} + weight: 0 + m_ConstrainedPositionAxes: + x: 1 + y: 1 + z: 1 + m_ConstrainedRotationAxes: + x: 1 + y: 1 + z: 1 + m_MaintainPositionOffset: 0 + m_MaintainRotationOffset: 0 --- !u!1 &2046948653 GameObject: m_ObjectHideFlags: 0 @@ -2777,6 +2966,10 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 2054765473159481603, guid: 2962848ab48f0e4459691ff3d6d1eed0, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} - target: {fileID: 6870636111335835452, guid: 2962848ab48f0e4459691ff3d6d1eed0, type: 3} propertyPath: m_WarningMessage value: @@ -2793,6 +2986,9 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 2911690318089215754, guid: 2962848ab48f0e4459691ff3d6d1eed0, type: 3} insertIndex: -1 addedObject: {fileID: 682596409} + - targetCorrespondingSourceObject: {fileID: 2911690318089215754, guid: 2962848ab48f0e4459691ff3d6d1eed0, type: 3} + insertIndex: -1 + addedObject: {fileID: 2022523802} m_AddedComponents: - targetCorrespondingSourceObject: {fileID: 212402951927973884, guid: 2962848ab48f0e4459691ff3d6d1eed0, type: 3} insertIndex: -1