diff --git a/Editor/AnimationRigging/CaptureAnimationConstraintEditor.cs b/Editor/AnimationRigging/CaptureAnimationConstraintEditor.cs new file mode 100644 index 00000000..30932f63 --- /dev/null +++ b/Editor/AnimationRigging/CaptureAnimationConstraintEditor.cs @@ -0,0 +1,46 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEditor; +using UnityEngine; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// Custom editor for the capture animation constraint. + /// + [CustomEditor(typeof(CaptureAnimationConstraint)), CanEditMultipleObjects] + public class CaptureAnimationConstraintEditor : Editor + { + /// + public override void OnInspectorGUI() + { + var constraint = (CaptureAnimationConstraint)target; + ICaptureAnimationData constraintData = constraint.data; + if (constraintData.ConstraintAnimator == null) + { + if (GUILayout.Button("Find Animator")) + { + Undo.RecordObject(constraint, "Find Animator"); + var animator = constraint.GetComponentInParent(); + constraint.data.AssignAnimator(animator); + } + } + + if (constraintData.CurrentPose == null || + constraintData.ReferencePose == null || + constraintData.CurrentPose.Length < (int)HumanBodyBones.LastBone || + constraintData.ReferencePose.Length < (int)HumanBodyBones.LastBone) + { + if (GUILayout.Button("Setup pose arrays")) + { + Undo.RecordObject(constraint, "Setup pose arrays"); + constraint.data.SetupPoseArrays(); + } + } + + GUILayout.Space(EditorGUIUtility.standardVerticalSpacing); + + DrawDefaultInspector(); + } + } +} diff --git a/Editor/AnimationRigging/CaptureAnimationConstraintEditor.cs.meta b/Editor/AnimationRigging/CaptureAnimationConstraintEditor.cs.meta new file mode 100644 index 00000000..0d92470f --- /dev/null +++ b/Editor/AnimationRigging/CaptureAnimationConstraintEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bd79122f455b2774d96a37b354227f9e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/AnimationRigging/DeformationConstraintEditor.cs b/Editor/AnimationRigging/DeformationConstraintEditor.cs index 5cc75607..3e6481fd 100644 --- a/Editor/AnimationRigging/DeformationConstraintEditor.cs +++ b/Editor/AnimationRigging/DeformationConstraintEditor.cs @@ -41,7 +41,17 @@ public override void OnInspectorGUI() if (GUILayout.Button("Find Hips To Head Bones")) { Undo.RecordObject(constraint, "Find Hips To Head Bones"); - constraint.data.SetUpHipsAndHeadBones(); + constraint.data.SetUpHipsToHeadBones(); + EditorUtility.SetDirty(target); + } + } + if (constraintData.HipsToHeadBoneTargets == null || + constraintData.HipsToHeadBoneTargets.Length == 0) + { + if (GUILayout.Button("Find Hips To Head Bone Targets")) + { + Undo.RecordObject(constraint, "Find Hips To Head Bone Targets"); + constraint.data.SetUpHipsToHeadBoneTargets(constraint.transform); EditorUtility.SetDirty(target); } } diff --git a/Editor/AnimationRigging/GroundingConstraintEditor.cs b/Editor/AnimationRigging/GroundingConstraintEditor.cs index 356fa2f3..5a441c32 100644 --- a/Editor/AnimationRigging/GroundingConstraintEditor.cs +++ b/Editor/AnimationRigging/GroundingConstraintEditor.cs @@ -57,17 +57,20 @@ private void FindHips(GroundingConstraint constraint) { IGroundingData groundingData = constraint.data; Transform hipsTransform = null; + bool isFullSkeleton = groundingData.ConstraintSkeleton.GetSkeletonType() == OVRSkeleton.SkeletonType.FullBody; + if (groundingData.ConstraintSkeleton != null) { hipsTransform = RiggingUtilities.FindBoneTransformFromCustomSkeleton( groundingData.ConstraintSkeleton, - OVRSkeleton.BoneId.Body_Hips); + isFullSkeleton ? OVRSkeleton.BoneId.FullBody_Hips : OVRSkeleton.BoneId.Body_Hips); } else { hipsTransform = RiggingUtilities.FindBoneTransformAnimator( groundingData.ConstraintAnimator, - OVRSkeleton.BoneId.Body_Hips); + isFullSkeleton ? OVRSkeleton.BoneId.FullBody_Hips : OVRSkeleton.BoneId.Body_Hips, + groundingData.ConstraintAnimator.GetComponent().GetSkeletonType() == OVRSkeleton.SkeletonType.FullBody); } if (hipsTransform == null) { diff --git a/Editor/AnimationRigging/HipPinningConstraintEditor.cs b/Editor/AnimationRigging/HipPinningConstraintEditor.cs index 381096a1..58f4eb3e 100644 --- a/Editor/AnimationRigging/HipPinningConstraintEditor.cs +++ b/Editor/AnimationRigging/HipPinningConstraintEditor.cs @@ -16,16 +16,44 @@ public override void OnInspectorGUI() { var constraint = (HipPinningConstraint)target; IHipPinningData constraintData = constraint.data; - if (constraintData.ConstraintSkeleton == null) + if (constraintData.ConstraintSkeleton == null && + constraintData.AnimatorComponent == null) { if (GUILayout.Button("Find OVR Skeleton")) { Undo.RecordObject(constraint, "Find OVR Skeleton"); var skeleton = constraint.GetComponentInParent(); constraint.data.AssignOVRSkeleton(skeleton); + EditorUtility.SetDirty(target); + } + if (GUILayout.Button("Find Animator")) + { + Undo.RecordObject(constraint, "Find Animator"); + var animatorComp = constraint.GetComponentInParent(); + constraint.data.AssignAnimator(animatorComp); + EditorUtility.SetDirty(target); + } + } + else if (!constraintData.ObtainedProperReferences) + { + if (GUILayout.Button("Set up data")) + { + Undo.RecordObject(constraint, "Set up data"); + constraint.data.SetUpBoneReferences(); + EditorUtility.SetDirty(target); } - GUILayout.Space(EditorGUIUtility.standardVerticalSpacing); } + else if (constraintData.ObtainedProperReferences) + { + if (GUILayout.Button("Clear data")) + { + Undo.RecordObject(constraint, "Clear data"); + constraint.data.ClearSetupReferences(); + EditorUtility.SetDirty(target); + } + } + + GUILayout.Space(EditorGUIUtility.standardVerticalSpacing); DrawDefaultInspector(); } } diff --git a/Editor/Meta.Movement.Editor.asmdef b/Editor/Meta.Movement.Editor.asmdef index c670b7d1..98afd220 100644 --- a/Editor/Meta.Movement.Editor.asmdef +++ b/Editor/Meta.Movement.Editor.asmdef @@ -3,6 +3,7 @@ "rootNamespace": "", "references": [ "GUID:502e28d01b3ebaf4689df96d8655467c", + "GUID:2a230cb87a1d3ba4a98bdc0ddae76e6c", "GUID:f64c9ebcd7899c3448a08dc9f9ddbe30", "GUID:d2761a0af0f567748a72629d4bb18a26", "GUID:7305c54a43f3814439df347c7519653e", diff --git a/Editor/ThirdParty.meta b/Editor/ThirdParty.meta new file mode 100644 index 00000000..6fd5d01c --- /dev/null +++ b/Editor/ThirdParty.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fe9323a1eb39ae74dba006263149a27d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/ThirdParty/LICENSE.txt b/Editor/ThirdParty/LICENSE.txt new file mode 100644 index 00000000..eccd949f --- /dev/null +++ b/Editor/ThirdParty/LICENSE.txt @@ -0,0 +1,4 @@ +// Developed by Tom Kail at Inkle +// Released under the MIT Licence as held at https://opensource.org/licenses/MIT +// +// From https://gist.github.com/tomkail/ba4136e6aa990f4dc94e0d39ec6a058c diff --git a/Editor/ThirdParty/LICENSE.txt.meta b/Editor/ThirdParty/LICENSE.txt.meta new file mode 100644 index 00000000..b45c8390 --- /dev/null +++ b/Editor/ThirdParty/LICENSE.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d3302a9841dc2ea4bbef8422ef32827c +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/ThirdParty/RetargetingProcessorScriptableObjectDrawer.cs b/Editor/ThirdParty/RetargetingProcessorScriptableObjectDrawer.cs new file mode 100644 index 00000000..7ec462e4 --- /dev/null +++ b/Editor/ThirdParty/RetargetingProcessorScriptableObjectDrawer.cs @@ -0,0 +1,453 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +// Developed by Tom Kail at Inkle +// Released under the MIT Licence as held at https://opensource.org/licenses/MIT + +// Must be placed within a folder named "Editor" +// From https://gist.github.com/tomkail/ba4136e6aa990f4dc94e0d39ec6a058c + +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// Extends how RetargetingProcessorScriptableObject object references are displayed in the inspector + /// Shows you all values under the object reference + /// Also provides a button to create a new ScriptableObject if property is null. + /// + [CustomPropertyDrawer(typeof(RetargetingProcessor), true)] + public class RetargetingProcessorScriptableObjectDrawer : PropertyDrawer + { + private const int buttonWidth = 66; + private static readonly List ignoreClassFullNames = new List { "TMPro.TMP_FontAsset" }; + + /// + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + float totalHeight = EditorGUIUtility.singleLineHeight; + if (property.objectReferenceValue == null || !AreAnySubPropertiesVisible(property)) + { + return totalHeight; + } + + if (property.isExpanded) + { + var data = property.objectReferenceValue as ScriptableObject; + if (data == null) return EditorGUIUtility.singleLineHeight; + SerializedObject serializedObject = new SerializedObject(data); + SerializedProperty prop = serializedObject.GetIterator(); + if (prop.NextVisible(true)) + { + do + { + if (prop.name == "m_Script") + { + continue; + } + var subProp = serializedObject.FindProperty(prop.name); + float height = EditorGUI.GetPropertyHeight(subProp, null, true) + + EditorGUIUtility.standardVerticalSpacing; + totalHeight += height; + } while (prop.NextVisible(false)); + } + + // Add a tiny bit of height if open for the background + totalHeight += EditorGUIUtility.standardVerticalSpacing; + serializedObject.Dispose(); + } + + return totalHeight; + } + + /// + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + EditorGUI.BeginProperty(position, label, property); + var type = GetFieldType(); + + if (type == null || ignoreClassFullNames.Contains(type.FullName)) + { + EditorGUI.PropertyField(position, property, label); + EditorGUI.EndProperty(); + return; + } + + ScriptableObject propertySO = null; + if (!property.hasMultipleDifferentValues && property.serializedObject.targetObject != null && + property.serializedObject.targetObject is ScriptableObject) + { + propertySO = (ScriptableObject)property.serializedObject.targetObject; + } + + var propertyRect = Rect.zero; + var guiContent = new GUIContent(property.displayName); + var foldoutRect = new Rect(position.x, position.y, EditorGUIUtility.labelWidth, + EditorGUIUtility.singleLineHeight); + if (property.objectReferenceValue != null && AreAnySubPropertiesVisible(property)) + { + property.isExpanded = EditorGUI.Foldout(foldoutRect, property.isExpanded, guiContent, true); + } + else + { + // So yeah having a foldout look like a label is a weird hack + // but both code paths seem to need to be a foldout or + // the object field control goes weird when the codepath changes. + // I guess because foldout is an interactable control of its own and throws off the controlID? + foldoutRect.x += 12; + EditorGUI.Foldout(foldoutRect, property.isExpanded, guiContent, true, EditorStyles.label); + } + + var indentedPosition = EditorGUI.IndentedRect(position); + var indentOffset = indentedPosition.x - position.x; + var saveToAssets = false; + var propertyWidth = buttonWidth; + propertyRect = new Rect(position.x + (EditorGUIUtility.labelWidth - indentOffset), position.y, + position.width - (EditorGUIUtility.labelWidth - indentOffset), EditorGUIUtility.singleLineHeight); + + if (property.propertyType == SerializedPropertyType.ObjectReference && + property.objectReferenceValue != null) + { + var data = (ScriptableObject)property.objectReferenceValue; + if (!AssetDatabase.Contains(data)) + { + saveToAssets = true; + propertyWidth = Mathf.RoundToInt(buttonWidth * 1.5f); + } + } + + if (propertySO != null || property.objectReferenceValue == null || saveToAssets) + { + propertyRect.width -= propertyWidth; + } + + EditorGUI.ObjectField(propertyRect, property, type, GUIContent.none); + if (GUI.changed) + { + property.serializedObject.ApplyModifiedProperties(); + } + + var buttonRect = new Rect(position.x + position.width - propertyWidth, position.y, propertyWidth, + EditorGUIUtility.singleLineHeight); + + if (property.propertyType == SerializedPropertyType.ObjectReference && property.objectReferenceValue != null) + { + var data = (ScriptableObject)property.objectReferenceValue; + + if (saveToAssets) + { + if (GUI.Button(buttonRect, "Save to Assets")) + { + string selectedAssetPath = "Assets"; + if (property.serializedObject.targetObject is MonoBehaviour) + { + MonoScript ms = MonoScript.FromMonoBehaviour((MonoBehaviour)property.serializedObject.targetObject); + selectedAssetPath = System.IO.Path.GetDirectoryName(AssetDatabase.GetAssetPath(ms)); + } + + var replacementObject = ReplaceAssetWithSavePrompt(data.GetType(), selectedAssetPath, data as RetargetingProcessor); + if (replacementObject != null) + { + Undo.DestroyObjectImmediate(data); + property.objectReferenceValue = replacementObject; + } + property.serializedObject.ApplyModifiedProperties(); + GUIUtility.ExitGUI(); + return; + } + } + + if (property.isExpanded) + { + // Draw a background that shows us clearly which fields are part of the ScriptableObject + GUI.Box( + new Rect(0, + position.y + EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing - 1, + Screen.width, + position.height - EditorGUIUtility.singleLineHeight - EditorGUIUtility.standardVerticalSpacing), + ""); + + EditorGUI.indentLevel++; + SerializedObject serializedObject = new SerializedObject(data); + + // Iterate over all the values and draw them + SerializedProperty prop = serializedObject.GetIterator(); + float y = position.y + EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + if (prop.NextVisible(true)) + { + do + { + // Don't bother drawing the class file + if (prop.name == "m_Script") + { + continue; + } + float height = EditorGUI.GetPropertyHeight(prop, new GUIContent(prop.displayName), true); + EditorGUI.PropertyField(new Rect(position.x, y, position.width - buttonWidth, height), prop, + true); + y += height + EditorGUIUtility.standardVerticalSpacing; + } while (prop.NextVisible(false)); + } + + if (GUI.changed) + { + serializedObject.ApplyModifiedProperties(); + } + serializedObject.Dispose(); + EditorGUI.indentLevel--; + } + } + else + { + if (GUI.Button(buttonRect, "Create")) + { + string selectedAssetPath = "Assets"; + if (property.serializedObject.targetObject is MonoBehaviour) + { + MonoScript ms = MonoScript.FromMonoBehaviour((MonoBehaviour)property.serializedObject.targetObject); + selectedAssetPath = System.IO.Path.GetDirectoryName(AssetDatabase.GetAssetPath(ms)); + } + + property.objectReferenceValue = CreateAssetWithSavePrompt(type, selectedAssetPath); + property.serializedObject.ApplyModifiedProperties(); + GUIUtility.ExitGUI(); + return; + } + } + + property.serializedObject.ApplyModifiedProperties(); + EditorGUI.EndProperty(); + } + + private static T _GUILayout(string label, T objectReferenceValue, ref bool isExpanded) where T : ScriptableObject + { + return _GUILayout(new GUIContent(label), objectReferenceValue, ref isExpanded); + } + + private static T _GUILayout(GUIContent label, T objectReferenceValue, ref bool isExpanded) + where T : ScriptableObject + { + Rect position = EditorGUILayout.BeginVertical(); + + var propertyRect = Rect.zero; + var guiContent = label; + var foldoutRect = new Rect(position.x, position.y, EditorGUIUtility.labelWidth, + EditorGUIUtility.singleLineHeight); + if (objectReferenceValue != null) + { + isExpanded = EditorGUI.Foldout(foldoutRect, isExpanded, guiContent, true); + + var indentedPosition = EditorGUI.IndentedRect(position); + var indentOffset = indentedPosition.x - position.x; + propertyRect = new Rect(position.x + EditorGUIUtility.labelWidth - indentOffset, position.y, + position.width - EditorGUIUtility.labelWidth - indentOffset, EditorGUIUtility.singleLineHeight); + } + else + { + // So yeah having a foldout look like a label is a weird hack + // but both code paths seem to need to be a foldout or + // the object field control goes weird when the codepath changes. + // I guess because foldout is an interactable control of its own and throws off the controlID? + foldoutRect.x += 12; + EditorGUI.Foldout(foldoutRect, isExpanded, guiContent, true, EditorStyles.label); + + var indentedPosition = EditorGUI.IndentedRect(position); + var indentOffset = indentedPosition.x - position.x; + propertyRect = new Rect(position.x + EditorGUIUtility.labelWidth - indentOffset, position.y, + position.width - EditorGUIUtility.labelWidth - indentOffset - 60, EditorGUIUtility.singleLineHeight); + } + + EditorGUILayout.BeginHorizontal(); + objectReferenceValue = + EditorGUILayout.ObjectField(new GUIContent(" "), objectReferenceValue, typeof(T), false) as T; + + if (objectReferenceValue != null) + { + EditorGUILayout.EndHorizontal(); + if (isExpanded) + { + DrawScriptableObjectChildFields(objectReferenceValue); + } + } + else + { + if (GUILayout.Button("Create", GUILayout.Width(buttonWidth))) + { + string selectedAssetPath = "Assets"; + var newAsset = CreateAssetWithSavePrompt(typeof(T), selectedAssetPath); + if (newAsset != null) + { + objectReferenceValue = (T)newAsset; + } + } + + EditorGUILayout.EndHorizontal(); + } + + EditorGUILayout.EndVertical(); + return objectReferenceValue; + } + + private static void DrawScriptableObjectChildFields(T objectReferenceValue) where T : ScriptableObject + { + // Draw a background that shows us clearly which fields are part of the ScriptableObject + EditorGUI.indentLevel++; + EditorGUILayout.BeginVertical(GUI.skin.box); + + var serializedObject = new SerializedObject(objectReferenceValue); + // Iterate over all the values and draw them + SerializedProperty prop = serializedObject.GetIterator(); + if (prop.NextVisible(true)) + { + do + { + // Don't bother drawing the class file + if (prop.name == "m_Script") continue; + EditorGUILayout.PropertyField(prop, true); + } while (prop.NextVisible(false)); + } + + if (GUI.changed) + { + serializedObject.ApplyModifiedProperties(); + } + serializedObject.Dispose(); + EditorGUILayout.EndVertical(); + EditorGUI.indentLevel--; + } + + private static T DrawScriptableObjectField(GUIContent label, T objectReferenceValue, ref bool isExpanded) + where T : ScriptableObject + { + Rect position = EditorGUILayout.BeginVertical(); + + var propertyRect = Rect.zero; + var guiContent = label; + var foldoutRect = new Rect(position.x, position.y, EditorGUIUtility.labelWidth, + EditorGUIUtility.singleLineHeight); + if (objectReferenceValue != null) + { + isExpanded = EditorGUI.Foldout(foldoutRect, isExpanded, guiContent, true); + + var indentedPosition = EditorGUI.IndentedRect(position); + var indentOffset = indentedPosition.x - position.x; + propertyRect = new Rect(position.x + EditorGUIUtility.labelWidth - indentOffset, position.y, + position.width - EditorGUIUtility.labelWidth - indentOffset, EditorGUIUtility.singleLineHeight); + } + else + { + // So yeah having a foldout look like a label is a weird hack + // but both code paths seem to need to be a foldout or + // the object field control goes weird when the codepath changes. + // I guess because foldout is an interactable control of its own and throws off the controlID? + foldoutRect.x += 12; + EditorGUI.Foldout(foldoutRect, isExpanded, guiContent, true, EditorStyles.label); + + var indentedPosition = EditorGUI.IndentedRect(position); + var indentOffset = indentedPosition.x - position.x; + propertyRect = new Rect(position.x + EditorGUIUtility.labelWidth - indentOffset, position.y, + position.width - EditorGUIUtility.labelWidth - indentOffset - 60, EditorGUIUtility.singleLineHeight); + } + + EditorGUILayout.BeginHorizontal(); + objectReferenceValue = + EditorGUILayout.ObjectField(new GUIContent(" "), objectReferenceValue, typeof(T), false) as T; + + if (objectReferenceValue != null) + { + EditorGUILayout.EndHorizontal(); + if (isExpanded) + { + } + } + else + { + if (GUILayout.Button("Create", GUILayout.Width(buttonWidth))) + { + string selectedAssetPath = "Assets"; + var newAsset = CreateAssetWithSavePrompt(typeof(T), selectedAssetPath); + if (newAsset != null) + { + objectReferenceValue = (T)newAsset; + } + } + + EditorGUILayout.EndHorizontal(); + } + + EditorGUILayout.EndVertical(); + return objectReferenceValue; + } + + // Creates a new ScriptableObject via the default Save File panel + private static ScriptableObject CreateAssetWithSavePrompt(Type type, string path) + { + path = EditorUtility.SaveFilePanelInProject("Save ScriptableObject", type.Name + ".asset", "asset", + "Enter a file name for the ScriptableObject.", path); + if (path == "") + { + return null; + } + ScriptableObject asset = ScriptableObject.CreateInstance(type); + AssetDatabase.CreateAsset(asset, path); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceUpdate); + EditorGUIUtility.PingObject(asset); + return asset; + } + + private static ScriptableObject ReplaceAssetWithSavePrompt(Type type, string path, RetargetingProcessor processor) + { + path = EditorUtility.SaveFilePanelInProject("Save ScriptableObject", processor.name + ".asset", "asset", + "Enter a file name for the ScriptableObject.", path); + if (path == "") + { + return null; + } + ScriptableObject asset = ScriptableObject.CreateInstance(type); + var newProcessor = asset as RetargetingProcessor; + if (newProcessor != null) + { + newProcessor.CopyData(processor); + } + AssetDatabase.CreateAsset(asset, path); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceUpdate); + EditorGUIUtility.PingObject(asset); + return asset; + } + + private Type GetFieldType() + { + Type type = fieldInfo.FieldType; + if (type.IsArray) + { + type = type.GetElementType(); + } + else if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>)) + { + type = type.GetGenericArguments()[0]; + } + return type; + } + + private static bool AreAnySubPropertiesVisible(SerializedProperty property) + { + var data = (ScriptableObject)property.objectReferenceValue; + SerializedObject serializedObject = new SerializedObject(data); + SerializedProperty prop = serializedObject.GetIterator(); + while (prop.NextVisible(true)) + { + if (prop.name == "m_Script") continue; + return true; //if theres any visible property other than m_script + } + + serializedObject.Dispose(); + return false; + } + } +} diff --git a/Editor/ThirdParty/RetargetingProcessorScriptableObjectDrawer.cs.meta b/Editor/ThirdParty/RetargetingProcessorScriptableObjectDrawer.cs.meta new file mode 100644 index 00000000..a31ff463 --- /dev/null +++ b/Editor/ThirdParty/RetargetingProcessorScriptableObjectDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2ca1d7cc685c52247a9138b6cf9e1540 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/Tracking/CorrectivesFaceEditor.cs b/Editor/Tracking/CorrectivesFaceEditor.cs index fd82ff04..b1e1602e 100644 --- a/Editor/Tracking/CorrectivesFaceEditor.cs +++ b/Editor/Tracking/CorrectivesFaceEditor.cs @@ -13,12 +13,18 @@ public class CorrectivesFaceEditor : OVRCustomFaceEditor { private SerializedProperty _blendshapeModifier; private SerializedProperty _combinationShapesTextAsset; + private SerializedProperty _forceJawDropForTongue; + private SerializedProperty _tongueOutThreshold; + private SerializedProperty _minJawDrop; protected override void OnEnable() { base.OnEnable(); _blendshapeModifier = serializedObject.FindProperty("_blendshapeModifier"); _combinationShapesTextAsset = serializedObject.FindProperty("_combinationShapesTextAsset"); + _forceJawDropForTongue = serializedObject.FindProperty("_forceJawDropForTongue"); + _tongueOutThreshold = serializedObject.FindProperty("_tongueOutThreshold"); + _minJawDrop = serializedObject.FindProperty("_minJawDrop"); } /// @@ -29,9 +35,16 @@ public override void OnInspectorGUI() serializedObject.Update(); EditorGUILayout.ObjectField(_blendshapeModifier, - new GUIContent("Blend shape modifiers (optional)")); + new GUIContent("Blendshape Modifiers (Optional)")); EditorGUILayout.ObjectField(_combinationShapesTextAsset, - new GUIContent("Combination shapes text (Optional)")); + new GUIContent("Combination Shapes Text (Optional)")); + + EditorGUILayout.PropertyField(_forceJawDropForTongue); + if (_forceJawDropForTongue.boolValue) + { + EditorGUILayout.PropertyField(_tongueOutThreshold); + EditorGUILayout.PropertyField(_minJawDrop); + } serializedObject.ApplyModifiedProperties(); } diff --git a/Editor/Utils/FullBodyHelperMenus.cs b/Editor/Utils/FullBodyHelperMenus.cs new file mode 100644 index 00000000..ddb1bd01 --- /dev/null +++ b/Editor/Utils/FullBodyHelperMenus.cs @@ -0,0 +1,562 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using Oculus.Interaction.Input; +using Oculus.Movement.AnimationRigging; +using System; +using System.Collections.Generic; +using System.Reflection; +using UnityEditor; +using UnityEngine; +using UnityEngine.Animations.Rigging; +using static Oculus.Movement.AnimationRigging.RetargetedBoneTargets; +using static OVRUnityHumanoidSkeletonRetargeter; + +namespace Oculus.Movement.Utils +{ + /// + /// Provides useful menus to help one set up tracking technologies + /// on characters. + /// + internal static class FullBodyHelperMenus + { + private const string _MOVEMENT_SAMPLES_MENU = + "GameObject/Movement Samples/"; + private const string _MOVEMENT_SAMPLES_BT_MENU = + "Body Tracking/"; + + private const string _ANIM_RIGGING_RETARGETING_FULL_BODY_MENU_CONSTRAINTS = + "Animation Rigging Retargeting (full body) (constraints)"; + + [MenuItem(_MOVEMENT_SAMPLES_MENU + _MOVEMENT_SAMPLES_BT_MENU + _ANIM_RIGGING_RETARGETING_FULL_BODY_MENU_CONSTRAINTS)] + private static void SetupCharacterForAnimationRiggingRetargetingConstraints() + { + var activeGameObject = Selection.activeGameObject; + + try + { + ValidGameObjectForAnimationRigging(activeGameObject); + } + catch (InvalidOperationException e) + { + EditorUtility.DisplayDialog("Retargeting setup error.", e.Message, "Ok"); + return; + } + + Undo.IncrementCurrentGroup(); + + // Add the retargeting and body tracking components at root first. + RetargetingLayer retargetingLayer = AddMainRetargetingComponents(activeGameObject); + + GameObject rigObject; + RigBuilder rigBuilder; + (rigBuilder, rigObject) = AddBasicAnimationRiggingComponents(activeGameObject); + + List constraintMonos = new List(); + RetargetingAnimationConstraint retargetConstraint = + AddRetargetingConstraint(rigObject, retargetingLayer); + retargetingLayer.RetargetingConstraint = retargetConstraint; + constraintMonos.Add(retargetConstraint); + + Animator animatorComp = activeGameObject.GetComponent(); + + // Destroy old components + DestroyBoneTarget(rigObject, "LeftHandTarget"); + DestroyBoneTarget(rigObject, "RightHandTarget"); + DestroyBoneTarget(rigObject, "LeftElbowTarget"); + DestroyBoneTarget(rigObject, "RightElbowTarget"); + DestroyTwoBoneIKConstraint(rigObject, "LeftArmIK"); + DestroyTwoBoneIKConstraint(rigObject, "RightArmIK"); + + // Full body deformation. + RetargetedBoneTarget[] spineBoneTargets = AddSpineBoneTargets(rigObject, animatorComp); + FullBodyDeformationConstraint deformationConstraint = + AddDeformationConstraint(rigObject, animatorComp, spineBoneTargets); + constraintMonos.Add(deformationConstraint); + + // Setup retargeted bone targets. + AddRetargetedBoneTargetComponent(activeGameObject, spineBoneTargets); + + // Hand blend constraints. + AddHandBlendConstraint(activeGameObject, null, + retargetingLayer, OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandWrist, + animatorComp.GetBoneTransform(HumanBodyBones.Head)); + + AddHandBlendConstraint(activeGameObject, null, + retargetingLayer, OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandWrist, + animatorComp.GetBoneTransform(HumanBodyBones.Head)); + + // Add final components to tie everything together. + AddAnimationRiggingLayer(activeGameObject, retargetingLayer, rigBuilder, + constraintMonos.ToArray(), retargetingLayer); + + // Add retargeting processors to the retargeting layer. + AddCorrectBonesRetargetingProcessor(retargetingLayer); + AddCorrectHandRetargetingProcessor(retargetingLayer, Handedness.Left); + AddCorrectHandRetargetingProcessor(retargetingLayer, Handedness.Right); + + // Add full body hand deformation. + AddFullBodyHandDeformation(activeGameObject, animatorComp, retargetingLayer); + + Undo.SetCurrentGroupName("Setup Animation Rigging Retargeting"); + } + private static void AddCorrectBonesRetargetingProcessor(RetargetingLayer retargetingLayer) + { + bool needCorrectBones = true; + foreach (var processor in retargetingLayer.RetargetingProcessors) + { + if (processor as RetargetingProcessorCorrectBones != null) + { + needCorrectBones = false; + } + } + + if (needCorrectBones) + { + var retargetingProcessorCorrectBones = ScriptableObject.CreateInstance(); + Undo.RegisterCreatedObjectUndo(retargetingProcessorCorrectBones, "Create correct bones retargeting processor."); + Undo.RecordObject(retargetingLayer, "Add retargeting processor to retargeting layer."); + retargetingProcessorCorrectBones.name = "CorrectBones"; + retargetingLayer.AddRetargetingProcessor(retargetingProcessorCorrectBones); + } + } + + private static void AddCorrectHandRetargetingProcessor(RetargetingLayer retargetingLayer, Handedness handedness) + { + bool needCorrectHand = true; + foreach (var processor in retargetingLayer.RetargetingProcessors) + { + var correctHand = processor as RetargetingProcessorCorrectHand; + if (correctHand != null) + { + if (correctHand.Handedness == handedness) + { + needCorrectHand = false; + } + } + } + + if (needCorrectHand) + { + var retargetingProcessorCorrectHand = ScriptableObject.CreateInstance(); + var handednessString = handedness == Handedness.Left ? "Left" : "Right"; + Undo.RegisterCreatedObjectUndo(retargetingProcessorCorrectHand, $"Create correct hand ({handednessString}) retargeting processor."); + Undo.RecordObject(retargetingLayer, "Add retargeting processor to retargeting layer."); + retargetingProcessorCorrectHand.Handedness = handedness; + retargetingProcessorCorrectHand.HandIKType = RetargetingProcessorCorrectHand.IKType.CCDIK; + retargetingProcessorCorrectHand.name = $"Correct{handednessString}Hand"; + retargetingLayer.AddRetargetingProcessor(retargetingProcessorCorrectHand); + } + } + + private static RetargetedBoneTarget[] AddSpineBoneTargets(GameObject rigObject, Animator animator) + { + var boneTargets = new List(); + Transform hipsTarget = AddSpineTarget(rigObject, "HipsTarget", + animator.GetBoneTransform(HumanBodyBones.Hips)); + Transform spineLowerTarget = AddSpineTarget(rigObject, "SpineLowerTarget", + animator.GetBoneTransform(HumanBodyBones.Spine)); + Transform spineUpperTarget = AddSpineTarget(rigObject, "SpineUpperTarget", + animator.GetBoneTransform(HumanBodyBones.Chest)); + Transform chestTarget = AddSpineTarget(rigObject, "ChestTarget", + animator.GetBoneTransform(HumanBodyBones.UpperChest)); + Transform neckTarget = AddSpineTarget(rigObject, "NeckTarget", + animator.GetBoneTransform(HumanBodyBones.Neck)); + Transform headTarget = AddSpineTarget(rigObject, "HeadTarget", + animator.GetBoneTransform(HumanBodyBones.Head)); + + Tuple[] bonesToRetarget = + { + new(OVRSkeleton.BoneId.FullBody_Hips, hipsTarget), + new(OVRSkeleton.BoneId.FullBody_SpineLower, spineLowerTarget), + new(OVRSkeleton.BoneId.FullBody_SpineUpper, spineUpperTarget), + new(OVRSkeleton.BoneId.FullBody_Chest, chestTarget), + new(OVRSkeleton.BoneId.FullBody_Neck, neckTarget), + new(OVRSkeleton.BoneId.FullBody_Head, headTarget), + }; + + foreach (var boneToRetarget in bonesToRetarget) + { + RetargetedBoneTarget boneRTTarget = new RetargetedBoneTarget(); + boneRTTarget.BoneId = boneToRetarget.Item1; + boneRTTarget.Target = boneToRetarget.Item2; + boneRTTarget.HumanBodyBone = OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[boneRTTarget.BoneId]; + boneTargets.Add(boneRTTarget); + } + return boneTargets.ToArray(); + } + + private static RetargetingLayer AddMainRetargetingComponents(GameObject mainParent) + { + RetargetingLayer retargetingLayer = mainParent.GetComponent(); + + // Check for old retargeting layer first. + RetargetingLayer baseRetargetingLayer = mainParent.GetComponent(); + if (retargetingLayer == null && baseRetargetingLayer != null) + { + Undo.DestroyObjectImmediate(baseRetargetingLayer); + } + + if (!retargetingLayer) + { + retargetingLayer = mainParent.AddComponent(); + Undo.RegisterCreatedObjectUndo(retargetingLayer, "Add Retargeting Layer"); + } + + var bodySectionToPosition = + typeof(OVRUnityHumanoidSkeletonRetargeter).GetField( + "_fullBodySectionToPosition", + BindingFlags.Instance | BindingFlags.NonPublic); + + if (bodySectionToPosition != null) + { + bodySectionToPosition.SetValue(retargetingLayer, new[] + { + OVRHumanBodyBonesMappings.BodySection.LeftArm, + OVRHumanBodyBonesMappings.BodySection.RightArm, + OVRHumanBodyBonesMappings.BodySection.LeftHand, + OVRHumanBodyBonesMappings.BodySection.RightHand, + OVRHumanBodyBonesMappings.BodySection.Hips, + OVRHumanBodyBonesMappings.BodySection.Back, + OVRHumanBodyBonesMappings.BodySection.Neck, + OVRHumanBodyBonesMappings.BodySection.Head, + OVRHumanBodyBonesMappings.BodySection.LeftLeg, + OVRHumanBodyBonesMappings.BodySection.LeftFoot, + OVRHumanBodyBonesMappings.BodySection.RightLeg, + OVRHumanBodyBonesMappings.BodySection.RightFoot + }); + } + + OVRBody bodyComp = mainParent.GetComponent(); + if (!bodyComp) + { + bodyComp = mainParent.AddComponent(); + Undo.RegisterCreatedObjectUndo(bodyComp, "Add OVRBody component"); + } + + typeof(RetargetingLayer).GetField( + "_skeletonType", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue( + retargetingLayer, OVRSkeleton.SkeletonType.FullBody); + typeof(OVRBody).GetField( + "_providedSkeletonType", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue( + bodyComp, OVRPlugin.BodyJointSet.FullBody); + + retargetingLayer.EnableTrackingByProxy = true; + PrefabUtility.RecordPrefabInstancePropertyModifications(retargetingLayer); + PrefabUtility.RecordPrefabInstancePropertyModifications(bodyComp); + + return retargetingLayer; + } + + private static (RigBuilder, GameObject) AddBasicAnimationRiggingComponents(GameObject mainParent) + { + Rig rigComponent = mainParent.GetComponentInChildren(); + if (!rigComponent) + { + // Create rig for constraints. + GameObject rigObject = new GameObject("Rig"); + rigComponent = rigObject.AddComponent(); + rigComponent.weight = 1.0f; + Undo.RegisterCreatedObjectUndo(rigObject, "Create Rig"); + } + + RigBuilder rigBuilder = mainParent.GetComponent(); + if (!rigBuilder) + { + rigBuilder = mainParent.AddComponent(); + rigBuilder.layers = new System.Collections.Generic.List + { + new RigLayer(rigComponent, true) + }; + Undo.RegisterCreatedObjectUndo(rigBuilder, "Create RigBuilder"); + } + + Undo.SetTransformParent(rigComponent.transform, mainParent.transform, "Add Rig to Main Parent"); + Undo.RegisterCompleteObjectUndo(rigComponent, "Rig Component Transform init"); + rigComponent.transform.localPosition = Vector3.zero; + rigComponent.transform.localRotation = Quaternion.identity; + rigComponent.transform.localScale = Vector3.one; + + return (rigBuilder, rigComponent.gameObject); + } + + private static RetargetingAnimationConstraint AddRetargetingConstraint( + GameObject rigObject, RetargetingLayer retargetingLayer) + { + RetargetingAnimationConstraint retargetConstraint = + rigObject.GetComponentInChildren(true); + if (retargetConstraint == null) + { + GameObject retargetingAnimConstraintObj = + new GameObject("RetargetingConstraint"); + retargetConstraint = + retargetingAnimConstraintObj.AddComponent(); + Undo.RegisterCreatedObjectUndo(retargetingAnimConstraintObj, "Create Retargeting Constraint"); + + Undo.SetTransformParent(retargetingAnimConstraintObj.transform, rigObject.transform, "Add Retarget Constraint to Rig"); + Undo.RegisterCompleteObjectUndo(retargetingAnimConstraintObj, "Retarget Constraint Transform Init"); + retargetConstraint.transform.localPosition = Vector3.zero; + retargetConstraint.transform.localRotation = Quaternion.identity; + retargetConstraint.transform.localScale = Vector3.one; + + // keep retargeter disabled until it initializes properly + retargetConstraint.gameObject.SetActive(false); + } + retargetConstraint.RetargetingLayerComp = retargetingLayer; + PrefabUtility.RecordPrefabInstancePropertyModifications(retargetConstraint); + return retargetConstraint; + } + + private static void AddAnimationRiggingLayer(GameObject mainParent, + OVRSkeleton skeletalComponent, RigBuilder rigBuilder, + MonoBehaviour[] constraintComponents, + RetargetingLayer retargetingLayer) + { + AnimationRigSetup rigSetup = mainParent.GetComponent(); + if (rigSetup) + { + return; + } + rigSetup = mainParent.AddComponent(); + rigSetup.Skeleton = skeletalComponent; + var animatorComponent = mainParent.GetComponent(); + rigSetup.AnimatorComp = animatorComponent; + rigSetup.RigbuilderComp = rigBuilder; + if (constraintComponents != null) + { + foreach (var constraintComponent in constraintComponents) + { + rigSetup.AddSkeletalConstraint(constraintComponent); + } + } + rigSetup.RebindAnimator = true; + rigSetup.ReEnableRig = true; + rigSetup.RetargetingLayerComp = retargetingLayer; + rigSetup.CheckSkeletalUpdatesByProxy = true; + + Undo.RegisterCreatedObjectUndo(rigSetup, "Create Anim Rig Setup"); + } + + private static FullBodyDeformationConstraint AddDeformationConstraint( + GameObject rigObject, Animator animator, RetargetedBoneTarget[] spineBoneTargets) + { + FullBodyDeformationConstraint deformationConstraint = + rigObject.GetComponentInChildren(); + DeformationConstraint baseDeformationConstraint = + rigObject.GetComponentInChildren(); + if (deformationConstraint == null && baseDeformationConstraint != null) + { + Undo.DestroyObjectImmediate(baseDeformationConstraint.gameObject); + } + if (deformationConstraint == null) + { + GameObject deformationConstraintObject = + new GameObject("Deformation"); + deformationConstraint = + deformationConstraintObject.AddComponent(); + + Undo.RegisterCreatedObjectUndo(deformationConstraintObject, "Create Deformation"); + + Undo.SetTransformParent(deformationConstraintObject.transform, rigObject.transform, + $"Add Deformation Constraint to Rig"); + Undo.RegisterCompleteObjectUndo(deformationConstraintObject, + $"Deformation Constraint Transform Init"); + deformationConstraintObject.transform.localPosition = Vector3.zero; + deformationConstraintObject.transform.localRotation = Quaternion.identity; + deformationConstraintObject.transform.localScale = Vector3.one; + + foreach (var spineBoneTarget in spineBoneTargets) + { + Undo.SetTransformParent(spineBoneTarget.Target, deformationConstraintObject.transform, + $"Parent Spine Bone Target {spineBoneTarget.Target.name} to Deformation."); + Undo.RegisterCompleteObjectUndo(spineBoneTarget.Target, + $"Spine Bone Target {spineBoneTarget.Target.name} Init"); + } + } + + deformationConstraint.data.SpineTranslationCorrectionTypeField + = FullBodyDeformationData.SpineTranslationCorrectionType.AccurateHipsAndHead; + deformationConstraint.data.SpineLowerAlignmentWeight = 1.0f; + deformationConstraint.data.SpineUpperAlignmentWeight = 0.5f; + deformationConstraint.data.ChestAlignmentWeight = 0.0f; + deformationConstraint.data.LeftShoulderWeight = 0.75f; + deformationConstraint.data.RightShoulderWeight = 0.75f; + deformationConstraint.data.LeftArmWeight = 1.0f; + deformationConstraint.data.RightArmWeight = 1.0f; + deformationConstraint.data.LeftHandWeight = 1.0f; + deformationConstraint.data.RightHandWeight = 1.0f; + deformationConstraint.data.LeftLegWeight = 1.0f; + deformationConstraint.data.RightLegWeight = 1.0f; + deformationConstraint.data.LeftToesWeight = 1.0f; + deformationConstraint.data.RightToesWeight = 1.0f; + deformationConstraint.data.AlignFeetWeight = 0.75f; + + deformationConstraint.data.AssignAnimator(animator); + deformationConstraint.data.SetUpLeftArmData(); + deformationConstraint.data.SetUpRightArmData(); + deformationConstraint.data.SetUpLeftLegData(); + deformationConstraint.data.SetUpRightLegData(); + deformationConstraint.data.SetUpHipsAndHeadBones(); + deformationConstraint.data.SetUpBonePairs(); + deformationConstraint.data.SetUpBoneTargets(deformationConstraint.transform); + deformationConstraint.data.InitializeStartingScale(); + + PrefabUtility.RecordPrefabInstancePropertyModifications(deformationConstraint); + + return deformationConstraint; + } + + private static Transform AddSpineTarget(GameObject mainParent, + string nameOfTarget, Transform targetTransform = null) + { + Transform spineTarget = + mainParent.transform.FindChildRecursive(nameOfTarget); + if (spineTarget == null) + { + GameObject spineTargetObject = + new GameObject(nameOfTarget); + Undo.RegisterCreatedObjectUndo(spineTargetObject, "Create Spine Target " + nameOfTarget); + + Undo.SetTransformParent(spineTargetObject.transform, mainParent.transform, + $"Add Spine Target {nameOfTarget} To Main Parent"); + Undo.RegisterCompleteObjectUndo(spineTargetObject, + $"Spine Target {nameOfTarget} Transform Init"); + spineTarget = spineTargetObject.transform; + } + + if (targetTransform != null) + { + spineTarget.position = targetTransform.position; + spineTarget.rotation = targetTransform.rotation; + spineTarget.localScale = targetTransform.localScale; + } + else + { + spineTarget.localPosition = Vector3.zero; + spineTarget.localRotation = Quaternion.identity; + spineTarget.localScale = Vector3.one; + } + return spineTarget; + } + + private static FullBodyRetargetedBoneTargets AddRetargetedBoneTargetComponent(GameObject mainParent, + RetargetedBoneTarget[] boneTargetsArray) + { + var boneTargets = mainParent.GetComponent(); + var baseBoneTargets = mainParent.GetComponent(); + if (boneTargets == null && baseBoneTargets != null) + { + Undo.DestroyObjectImmediate(baseBoneTargets); + } + if (boneTargets != null) + { + boneTargets.AutoAdd = mainParent.GetComponent(); + boneTargets.RetargetedBoneTargets = boneTargetsArray; + PrefabUtility.RecordPrefabInstancePropertyModifications(boneTargets); + return boneTargets; + } + FullBodyRetargetedBoneTargets retargetedBoneTargets = + mainParent.AddComponent(); + Undo.RegisterCreatedObjectUndo(retargetedBoneTargets, "Add RT bone targets"); + + retargetedBoneTargets.AutoAdd = mainParent.GetComponent(); + retargetedBoneTargets.RetargetedBoneTargets = boneTargetsArray; + + return retargetedBoneTargets; + } + + private static bool DestroyBoneTarget(GameObject mainParent, string nameOfTarget) + { + Transform handTarget = + mainParent.transform.FindChildRecursive(nameOfTarget); + if (handTarget != null) + { + Undo.DestroyObjectImmediate(handTarget); + return true; + } + return false; + } + + private static bool DestroyTwoBoneIKConstraint(GameObject rigObject, string name) + { + Transform twoBoneIKConstraintObjTransform = rigObject.transform.Find(name); + if (twoBoneIKConstraintObjTransform != null) + { + Undo.DestroyObjectImmediate(twoBoneIKConstraintObjTransform); + return true; + } + return false; + } + + private static BlendHandConstraintsFullBody AddHandBlendConstraint( + GameObject mainParent, MonoBehaviour[] constraints, RetargetingLayer retargetingLayer, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId boneIdToTest, Transform headTransform) + { + var blendHandConstraints = mainParent.GetComponents(); + var baseBlendHandConstraints = mainParent.GetComponents(); + if (blendHandConstraints.Length == 0 && baseBlendHandConstraints.Length > 0) + { + for (int i = 0; i < baseBlendHandConstraints.Length; i++) + { + Undo.DestroyObjectImmediate(baseBlendHandConstraints[i]); + } + } + foreach (var blendHandConstraint in blendHandConstraints) + { + if (blendHandConstraint.BoneIdToTest == boneIdToTest) + { + blendHandConstraint.Constraints = null; + blendHandConstraint.RetargetingLayerComp = retargetingLayer; + blendHandConstraint.BoneIdToTest = boneIdToTest; + blendHandConstraint.HeadTransform = headTransform; + blendHandConstraint.AutoAddTo = mainParent.GetComponent(); + blendHandConstraint.BlendCurve = new AnimationCurve(new Keyframe(0, 0), new Keyframe(1, 1)); + PrefabUtility.RecordPrefabInstancePropertyModifications(blendHandConstraint); + return blendHandConstraint; + } + } + BlendHandConstraintsFullBody blendConstraint = + mainParent.AddComponent(); + Undo.RegisterCreatedObjectUndo(blendConstraint, "Add blend constraint"); + + blendConstraint.Constraints = null; + blendConstraint.RetargetingLayerComp = retargetingLayer; + blendConstraint.BoneIdToTest = boneIdToTest; + blendConstraint.HeadTransform = headTransform; + blendConstraint.AutoAddTo = mainParent.GetComponent(); + blendConstraint.BlendCurve = new AnimationCurve(new Keyframe(0, 0), new Keyframe(1, 1)); + + return blendConstraint; + } + + private static void AddFullBodyHandDeformation(GameObject mainParent, + Animator animatorComp, OVRSkeleton skeletalComponent) + { + FullBodyHandDeformation fullBodyHandDeformation = + mainParent.GetComponent(); + if (fullBodyHandDeformation == null) + { + fullBodyHandDeformation = mainParent.AddComponent(); + Undo.RegisterCreatedObjectUndo(fullBodyHandDeformation, "Add full body hand deformation"); + } + + fullBodyHandDeformation.AnimatorComp = animatorComp; + fullBodyHandDeformation.Skeleton = skeletalComponent; + fullBodyHandDeformation.LeftHand = animatorComp.GetBoneTransform(HumanBodyBones.LeftHand); + fullBodyHandDeformation.RightHand = animatorComp.GetBoneTransform(HumanBodyBones.RightHand); + fullBodyHandDeformation.FingerOffsets = new FullBodyHandDeformation.FingerOffset[0]; + fullBodyHandDeformation.CalculateFingerData(); + } + + private static void ValidGameObjectForAnimationRigging(GameObject go) + { + var animatorComp = go.GetComponent(); + if (animatorComp == null || animatorComp.avatar == null + || !animatorComp.avatar.isHuman) + { + throw new InvalidOperationException( + $"Animation Rigging requires an {nameof(Animator)} " + + $"component with a Humanoid avatar."); + } + } + } +} diff --git a/Editor/Utils/FullBodyHelperMenus.cs.meta b/Editor/Utils/FullBodyHelperMenus.cs.meta new file mode 100644 index 00000000..d09c4cc5 --- /dev/null +++ b/Editor/Utils/FullBodyHelperMenus.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f8cc61b2ce4347047a85631ddf43bd43 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/Utils/HelperMenus.cs b/Editor/Utils/HelperMenus.cs index 692bf2bf..d6c6498e 100644 --- a/Editor/Utils/HelperMenus.cs +++ b/Editor/Utils/HelperMenus.cs @@ -1,14 +1,17 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. +using Oculus.Interaction.Input; using Oculus.Movement.AnimationRigging; using Oculus.Movement.Tracking; using System; using System.Collections.Generic; +using System.Reflection; using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine; using UnityEngine.Animations.Rigging; using static Oculus.Movement.AnimationRigging.RetargetedBoneTargets; +using static OVRUnityHumanoidSkeletonRetargeter; namespace Oculus.Movement.Utils { @@ -37,41 +40,6 @@ internal static class HelperMenus private const string _NO_DUPLICATES_SUFFIX = " (duplicate mapping off)"; - [MenuItem(_MOVEMENT_SAMPLES_MENU + _MOVEMENT_SAMPLES_BT_MENU + _ANIM_RIGGING_RETARGETING_MENU)] - private static void SetupCharacterForAnimationRiggingRetargeting() - { - var activeGameObject = Selection.activeGameObject; - - try - { - ValidGameObjectForAnimationRigging(activeGameObject); - } - catch (InvalidOperationException e) - { - EditorUtility.DisplayDialog("Retargeting setup error.", e.Message, "Ok"); - return; - } - - Undo.IncrementCurrentGroup(); - - // Add the retargeting and body tracking components at root first. - RetargetingLayer retargetingLayer = AddMainRetargetingComponents(activeGameObject); - - GameObject rigObject; - RigBuilder rigBuilder; - (rigBuilder, rigObject) = AddBasicAnimationRiggingComponents(activeGameObject); - - RetargetingAnimationConstraint retargetConstraint = - AddRetargetingConstraint(rigObject, retargetingLayer); - retargetingLayer.RetargetingConstraint = retargetConstraint; - - // Add final components to tie everything together. - AddAnimationRiggingLayer(activeGameObject, retargetingLayer, rigBuilder, - new RetargetingAnimationConstraint[] { retargetConstraint }, retargetingLayer); - - Undo.SetCurrentGroupName("Setup Animation Rigging Retargeting"); - } - [MenuItem(_MOVEMENT_SAMPLES_MENU + _MOVEMENT_SAMPLES_BT_MENU + _ANIM_RIGGING_RETARGETING_MENU + _CONSTRAINTS_SUFFIX)] private static void SetupCharacterForAnimationRiggingRetargetingConstraints() { @@ -104,52 +72,39 @@ private static void SetupCharacterForAnimationRiggingRetargetingConstraints() Animator animatorComp = activeGameObject.GetComponent(); + // Destroy old components + DestroyBoneTarget(rigObject, "LeftHandTarget"); + DestroyBoneTarget(rigObject, "RightHandTarget"); + DestroyBoneTarget(rigObject, "LeftElbowTarget"); + DestroyBoneTarget(rigObject, "RightElbowTarget"); + DestroyTwoBoneIKConstraint(rigObject, "LeftArmIK"); + DestroyTwoBoneIKConstraint(rigObject, "RightArmIK"); + + // Body deformation. + RetargetedBoneTarget[] spineBoneTargets = AddSpineBoneTargets(rigObject, animatorComp); DeformationConstraint deformationConstraint = - AddDeformationConstraint(rigObject, animatorComp); + AddDeformationConstraint(rigObject, animatorComp, spineBoneTargets); constraintMonos.Add(deformationConstraint); - Transform leftHandTarget = AddHandTarget(rigObject, "LeftHandTarget"); - TwoBoneIKConstraint leftTwoBoneIKConstraint = - AddTwoBoneIKConstraint(rigObject, "LeftArmIK", - animatorComp.GetBoneTransform(HumanBodyBones.LeftUpperArm), - animatorComp.GetBoneTransform(HumanBodyBones.LeftLowerArm), - animatorComp.GetBoneTransform(HumanBodyBones.LeftHand), - leftHandTarget); - - Transform rightHandTarget = AddHandTarget(rigObject, "RightHandTarget"); - TwoBoneIKConstraint rightTwoBoneIKConstraint = - AddTwoBoneIKConstraint(rigObject, "RightArmIK", - animatorComp.GetBoneTransform(HumanBodyBones.RightUpperArm), - animatorComp.GetBoneTransform(HumanBodyBones.RightLowerArm), - animatorComp.GetBoneTransform(HumanBodyBones.RightHand), - rightHandTarget); - - RetargetedBoneTarget leftHandRTTarget = new RetargetedBoneTarget(); - leftHandRTTarget.BoneId = OVRSkeleton.BoneId.Body_LeftHandWrist; - leftHandRTTarget.Target = leftHandTarget; - leftHandRTTarget.HumanBodyBone = HumanBodyBones.LeftHand; - RetargetedBoneTarget rightHandRTTarget = new RetargetedBoneTarget(); - rightHandRTTarget.BoneId = OVRSkeleton.BoneId.Body_RightHandWrist; - rightHandRTTarget.Target = rightHandTarget; - rightHandRTTarget.HumanBodyBone = HumanBodyBones.RightHand; - AddRetargetedBoneTargetComponent(activeGameObject, - new RetargetedBoneTarget[] - { - leftHandRTTarget, rightHandRTTarget - }); + AddRetargetedBoneTargetComponent(activeGameObject, spineBoneTargets); - AddHandBlendConstraint(activeGameObject, new MonoBehaviour[] { leftTwoBoneIKConstraint }, - retargetingLayer, CustomMappings.BodyTrackingBoneId.Body_LeftHandWrist, + AddHandBlendConstraint(activeGameObject, + retargetingLayer, OVRHumanBodyBonesMappings.BodyTrackingBoneId.Body_LeftHandWrist, animatorComp.GetBoneTransform(HumanBodyBones.Head)); - AddHandBlendConstraint(activeGameObject, new MonoBehaviour[] { rightTwoBoneIKConstraint }, - retargetingLayer, CustomMappings.BodyTrackingBoneId.Body_RightHandWrist, + AddHandBlendConstraint(activeGameObject, + retargetingLayer, OVRHumanBodyBonesMappings.BodyTrackingBoneId.Body_RightHandWrist, animatorComp.GetBoneTransform(HumanBodyBones.Head)); // Add final components to tie everything together. AddAnimationRiggingLayer(activeGameObject, retargetingLayer, rigBuilder, constraintMonos.ToArray(), retargetingLayer); + // Add retargeting processors to the retargeting layer. + AddCorrectBonesRetargetingProcessor(retargetingLayer); + AddCorrectHandRetargetingProcessor(retargetingLayer, Handedness.Left); + AddCorrectHandRetargetingProcessor(retargetingLayer, Handedness.Right); + Undo.SetCurrentGroupName("Setup Animation Rigging Retargeting"); } @@ -235,6 +190,26 @@ private static RetargetingLayer AddMainRetargetingComponents(GameObject mainPare retargetingLayer = mainParent.AddComponent(); Undo.RegisterCreatedObjectUndo(retargetingLayer, "Add Retargeting Layer"); } + retargetingLayer.EnableTrackingByProxy = true; + + var bodySectionToPosition = + typeof(OVRUnityHumanoidSkeletonRetargeter).GetField( + "_bodySectionToPosition", BindingFlags.Instance | BindingFlags.NonPublic); + if (bodySectionToPosition != null) + { + bodySectionToPosition.SetValue(retargetingLayer, new[] + { + OVRUnityHumanoidSkeletonRetargeter.OVRHumanBodyBonesMappings.BodySection.LeftArm, + OVRUnityHumanoidSkeletonRetargeter.OVRHumanBodyBonesMappings.BodySection.RightArm, + OVRUnityHumanoidSkeletonRetargeter.OVRHumanBodyBonesMappings.BodySection.LeftHand, + OVRUnityHumanoidSkeletonRetargeter.OVRHumanBodyBonesMappings.BodySection.RightHand, + OVRUnityHumanoidSkeletonRetargeter.OVRHumanBodyBonesMappings.BodySection.Hips, + OVRUnityHumanoidSkeletonRetargeter.OVRHumanBodyBonesMappings.BodySection.Back, + OVRUnityHumanoidSkeletonRetargeter.OVRHumanBodyBonesMappings.BodySection.Neck, + OVRUnityHumanoidSkeletonRetargeter.OVRHumanBodyBonesMappings.BodySection.Head + }); + } + EditorUtility.SetDirty(retargetingLayer); OVRBody bodyComp = mainParent.GetComponent(); if (!bodyComp) @@ -262,7 +237,7 @@ private static (RigBuilder, GameObject) AddBasicAnimationRiggingComponents(GameO if (!rigBuilder) { rigBuilder = mainParent.AddComponent(); - rigBuilder.layers = new System.Collections.Generic.List + rigBuilder.layers = new List { new RigLayer(rigComponent, true) }; @@ -282,7 +257,7 @@ private static RetargetingAnimationConstraint AddRetargetingConstraint( GameObject rigObject, RetargetingLayer retargetingLayer) { RetargetingAnimationConstraint retargetConstraint = - rigObject.GetComponentInChildren(); + rigObject.GetComponentInChildren(true); if (retargetConstraint == null) { GameObject retargetingAnimConstraintObj = @@ -298,10 +273,10 @@ private static RetargetingAnimationConstraint AddRetargetingConstraint( retargetConstraint.transform.localPosition = Vector3.zero; retargetConstraint.transform.localRotation = Quaternion.identity; retargetConstraint.transform.localScale = Vector3.one; - - // keep retargeter disabled until it initializes properly - retargetConstraint.gameObject.SetActive(false); } + + // Keep retargeter disabled until it initializes properly. + retargetConstraint.gameObject.SetActive(false); return retargetConstraint; } @@ -315,9 +290,9 @@ private static void AddAnimationRiggingLayer(GameObject mainParent, { return; } + var animatorComponent = mainParent.GetComponent(); rigSetup = mainParent.AddComponent(); rigSetup.Skeleton = skeletalComponent; - var animatorComponent = mainParent.GetComponent(); rigSetup.AnimatorComp = animatorComponent; rigSetup.RigbuilderComp = rigBuilder; if (constraintComponents != null) @@ -330,11 +305,132 @@ private static void AddAnimationRiggingLayer(GameObject mainParent, rigSetup.RebindAnimator = true; rigSetup.ReEnableRig = true; rigSetup.RetargetingLayerComp = retargetingLayer; + rigSetup.CheckSkeletalUpdatesByProxy = true; Undo.RegisterCreatedObjectUndo(rigSetup, "Create Anim Rig Setup"); } + private static void AddCorrectBonesRetargetingProcessor(RetargetingLayer retargetingLayer) + { + bool needCorrectBones = true; + foreach (var processor in retargetingLayer.RetargetingProcessors) + { + if (processor as RetargetingProcessorCorrectBones != null) + { + needCorrectBones = false; + } + } + + if (needCorrectBones) + { + var retargetingProcessorCorrectBones = ScriptableObject.CreateInstance(); + Undo.RegisterCreatedObjectUndo(retargetingProcessorCorrectBones, "Create correct bones retargeting processor."); + Undo.RecordObject (retargetingLayer, "Add retargeting processor to retargeting layer."); + retargetingProcessorCorrectBones.name = "CorrectBones"; + retargetingLayer.AddRetargetingProcessor(retargetingProcessorCorrectBones); + } + } + + private static void AddCorrectHandRetargetingProcessor(RetargetingLayer retargetingLayer, Handedness handedness) + { + bool needCorrectHand = true; + foreach (var processor in retargetingLayer.RetargetingProcessors) + { + var correctHand = processor as RetargetingProcessorCorrectHand; + if (correctHand != null) + { + if (correctHand.Handedness == handedness) + { + needCorrectHand = false; + } + } + } + + if (needCorrectHand) + { + var retargetingProcessorCorrectHand = ScriptableObject.CreateInstance(); + var handednessString = handedness == Handedness.Left ? "Left" : "Right"; + Undo.RegisterCreatedObjectUndo(retargetingProcessorCorrectHand, $"Create correct hand ({handednessString}) retargeting processor."); + Undo.RecordObject (retargetingLayer, "Add retargeting processor to retargeting layer."); + retargetingProcessorCorrectHand.Handedness = handedness; + retargetingProcessorCorrectHand.HandIKType = RetargetingProcessorCorrectHand.IKType.CCDIK; + retargetingProcessorCorrectHand.name = $"Correct{handednessString}Hand"; + retargetingLayer.AddRetargetingProcessor(retargetingProcessorCorrectHand); + } + } + + private static RetargetedBoneTarget[] AddSpineBoneTargets(GameObject rigObject, + Animator animator) + { + var boneTargets = new List(); + Transform hipsTarget = AddSpineTarget(rigObject, "HipsTarget", + animator.GetBoneTransform(HumanBodyBones.Hips)); + Transform spineLowerTarget = AddSpineTarget(rigObject, "SpineLowerTarget", + animator.GetBoneTransform(HumanBodyBones.Spine)); + Transform spineUpperTarget = AddSpineTarget(rigObject, "SpineUpperTarget", + animator.GetBoneTransform(HumanBodyBones.Chest)); + Transform chestTarget = AddSpineTarget(rigObject, "ChestTarget", + animator.GetBoneTransform(HumanBodyBones.UpperChest)); + Transform neckTarget = AddSpineTarget(rigObject, "NeckTarget", + animator.GetBoneTransform(HumanBodyBones.Neck)); + Transform headTarget = AddSpineTarget(rigObject, "HeadTarget", + animator.GetBoneTransform(HumanBodyBones.Head)); + + Tuple[] bonesToRetarget = + { + new(OVRSkeleton.BoneId.Body_Hips, hipsTarget), + new(OVRSkeleton.BoneId.Body_SpineLower, spineLowerTarget), + new(OVRSkeleton.BoneId.Body_SpineUpper, spineUpperTarget), + new(OVRSkeleton.BoneId.Body_Chest, chestTarget), + new(OVRSkeleton.BoneId.Body_Neck, neckTarget), + new(OVRSkeleton.BoneId.Body_Head, headTarget), + }; + + foreach (var boneToRetarget in bonesToRetarget) + { + RetargetedBoneTarget boneRTTarget = new RetargetedBoneTarget(); + boneRTTarget.BoneId = boneToRetarget.Item1; + boneRTTarget.Target = boneToRetarget.Item2; + boneRTTarget.HumanBodyBone = OVRHumanBodyBonesMappings.BoneIdToHumanBodyBone[boneRTTarget.BoneId]; + boneTargets.Add(boneRTTarget); + } + return boneTargets.ToArray(); + } + + private static Transform AddSpineTarget(GameObject mainParent, + string nameOfTarget, Transform targetTransform = null) + { + Transform spineTarget = + mainParent.transform.FindChildRecursive(nameOfTarget); + if (spineTarget == null) + { + GameObject spineTargetObject = + new GameObject(nameOfTarget); + Undo.RegisterCreatedObjectUndo(spineTargetObject, + $"Create Spine Target {nameOfTarget}"); + Undo.SetTransformParent(spineTargetObject.transform, mainParent.transform, + $"Add Spine Target {nameOfTarget} To Main Parent"); + Undo.RegisterCompleteObjectUndo(spineTargetObject, + $"Spine Target {nameOfTarget} Transform Init"); + spineTarget = spineTargetObject.transform; + } + + if (targetTransform != null) + { + spineTarget.position = targetTransform.position; + spineTarget.rotation = targetTransform.rotation; + spineTarget.localScale = targetTransform.localScale; + } + else + { + spineTarget.localPosition = Vector3.zero; + spineTarget.localRotation = Quaternion.identity; + spineTarget.localScale = Vector3.one; + } + return spineTarget; + } + private static DeformationConstraint AddDeformationConstraint( - GameObject rigObject, Animator animator) + GameObject rigObject, Animator animator, RetargetedBoneTarget[] spineBoneTargets) { DeformationConstraint deformationConstraint = rigObject.GetComponentInChildren(); @@ -346,7 +442,6 @@ private static DeformationConstraint AddDeformationConstraint( deformationConstraintObject.AddComponent(); Undo.RegisterCreatedObjectUndo(deformationConstraintObject, "Create Deformation"); - Undo.SetTransformParent(deformationConstraintObject.transform, rigObject.transform, $"Add Deformation Constraint to Rig"); Undo.RegisterCompleteObjectUndo(deformationConstraintObject, @@ -354,105 +449,106 @@ private static DeformationConstraint AddDeformationConstraint( deformationConstraintObject.transform.localPosition = Vector3.zero; deformationConstraintObject.transform.localRotation = Quaternion.identity; deformationConstraintObject.transform.localScale = Vector3.one; + } - deformationConstraint.data.SpineTranslationCorrectionTypeField - = DeformationData.SpineTranslationCorrectionType.SkipHips; - deformationConstraint.data.ApplyToArms = true; - deformationConstraint.data.ApplyToHands = true; - deformationConstraint.data.ArmWeight = 1.0f; - deformationConstraint.data.HandWeight = 1; - - deformationConstraint.data.AssignAnimator(animator); - deformationConstraint.data.SetUpHipsAndHeadBones(); - deformationConstraint.data.SetUpLeftArmData(); - deformationConstraint.data.SetUpRightArmData(); - deformationConstraint.data.SetUpBonePairs(); - deformationConstraint.data.InitializeStartingScale(); + foreach (var spineBoneTarget in spineBoneTargets) + { + Undo.SetTransformParent(spineBoneTarget.Target, deformationConstraint.transform, + $"Parent Spine Bone Target {spineBoneTarget.Target.name} to Deformation."); + Undo.RegisterCompleteObjectUndo(spineBoneTarget.Target, + $"Spine Bone Target {spineBoneTarget.Target.name} Init"); } + + deformationConstraint.data.SpineTranslationCorrectionTypeField + = DeformationData.SpineTranslationCorrectionType.AccurateHipsAndHead; + deformationConstraint.data.SpineLowerAlignmentWeight = 1.0f; + deformationConstraint.data.SpineUpperAlignmentWeight = 0.5f; + deformationConstraint.data.ChestAlignmentWeight = 0.0f; + deformationConstraint.data.LeftShoulderWeight = 0.75f; + deformationConstraint.data.RightShoulderWeight = 0.75f; + deformationConstraint.data.LeftArmWeight = 1.0f; + deformationConstraint.data.RightArmWeight = 1.0f; + deformationConstraint.data.LeftHandWeight = 1.0f; + deformationConstraint.data.RightHandWeight = 1.0f; + + deformationConstraint.data.AssignAnimator(animator); + deformationConstraint.data.SetUpLeftArmData(); + deformationConstraint.data.SetUpRightArmData(); + deformationConstraint.data.SetUpHipsToHeadBones(); + deformationConstraint.data.SetUpHipsToHeadBoneTargets(deformationConstraint.transform); + deformationConstraint.data.SetUpBonePairs(); + deformationConstraint.data.InitializeStartingScale(); + + PrefabUtility.RecordPrefabInstancePropertyModifications(deformationConstraint); return deformationConstraint; } - private static Transform AddHandTarget(GameObject mainParent, string nameOfTarget) + private static bool DestroyBoneTarget(GameObject mainParent, string nameOfTarget) { Transform handTarget = - mainParent.transform.Find(nameOfTarget); - if (handTarget == null) + mainParent.transform.FindChildRecursive(nameOfTarget); + if (handTarget != null) { - GameObject handTargetObject = - new GameObject(nameOfTarget); - Undo.RegisterCreatedObjectUndo(handTargetObject, "Create Hand Target " + nameOfTarget); - - Undo.SetTransformParent(handTargetObject.transform, mainParent.transform, - $"Add Hand Target {nameOfTarget} To Main Parent"); - Undo.RegisterCompleteObjectUndo(handTargetObject, - $"Hand Target {nameOfTarget} Transform Init"); - handTarget = handTargetObject.transform; - handTarget.transform.localPosition = Vector3.zero; - handTarget.transform.localRotation = Quaternion.identity; - handTarget.transform.localScale = Vector3.one; - } - return handTarget; + Undo.DestroyObjectImmediate(handTarget); + return true; + } + return false; } private static RetargetedBoneTargets AddRetargetedBoneTargetComponent(GameObject mainParent, RetargetedBoneTarget[] boneTargetsArray) { - RetargetedBoneTargets retargetedBoneTargets = - mainParent.AddComponent(); - Undo.RegisterCreatedObjectUndo(retargetedBoneTargets, "Add RT bone targets"); + RetargetedBoneTargets retargetedBoneTargets = mainParent.GetComponent(); + if (retargetedBoneTargets == null) + { + retargetedBoneTargets = + mainParent.AddComponent(); + Undo.RegisterCreatedObjectUndo(retargetedBoneTargets, "Add RT bone targets"); + } - retargetedBoneTargets.AutoAddTo = mainParent.GetComponent(); + retargetedBoneTargets.AutoAddTo = mainParent.GetComponent(); retargetedBoneTargets.RetargetedBoneTargetsArray = boneTargetsArray; + PrefabUtility.RecordPrefabInstancePropertyModifications(retargetedBoneTargets); return retargetedBoneTargets; } - private static TwoBoneIKConstraint AddTwoBoneIKConstraint( - GameObject rigObject, string name, Transform root, - Transform mid, Transform tip, Transform target) + private static bool DestroyTwoBoneIKConstraint(GameObject rigObject, string name) { - TwoBoneIKConstraint twoBoneIKConstraint = null; Transform twoBoneIKConstraintObjTransform = rigObject.transform.Find(name); - if (twoBoneIKConstraintObjTransform == null) - { - GameObject twoBoneIKConstraintObj = - new GameObject(name); - twoBoneIKConstraint = - twoBoneIKConstraintObj.AddComponent(); - twoBoneIKConstraint.data.root = root; - twoBoneIKConstraint.data.mid = mid; - twoBoneIKConstraint.data.tip = tip; - twoBoneIKConstraint.data.target = target; - twoBoneIKConstraint.data.maintainTargetPositionOffset = false; - twoBoneIKConstraint.data.maintainTargetRotationOffset = false; - twoBoneIKConstraint.data.targetRotationWeight = 0.0f; - twoBoneIKConstraint.data.targetPositionWeight = 1.0f; - twoBoneIKConstraint.data.hintWeight = 1.0f; - Undo.RegisterCreatedObjectUndo(twoBoneIKConstraintObj, "Create Two Bone IK " + name); - - Undo.SetTransformParent(twoBoneIKConstraintObj.transform, rigObject.transform, - $"Add TwoBone IK {name} Constraint to Rig"); - Undo.RegisterCompleteObjectUndo(twoBoneIKConstraintObj, - $"TwoBone IK Constraint {name} Transform Init"); - twoBoneIKConstraintObj.transform.localPosition = Vector3.zero; - twoBoneIKConstraintObj.transform.localRotation = Quaternion.identity; - twoBoneIKConstraintObj.transform.localScale = Vector3.one; - } - return twoBoneIKConstraint; + if (twoBoneIKConstraintObjTransform != null) + { + Undo.DestroyObjectImmediate(twoBoneIKConstraintObjTransform); + return true; + } + return false; } private static BlendHandConstraints AddHandBlendConstraint( - GameObject mainParent, MonoBehaviour[] constraints, RetargetingLayer retargetingLayer, - CustomMappings.BodyTrackingBoneId boneIdToTest, Transform headTransform) + GameObject mainParent, RetargetingLayer retargetingLayer, + OVRHumanBodyBonesMappings.BodyTrackingBoneId boneIdToTest, Transform headTransform) { + var blendHandConstraints = mainParent.GetComponentsInChildren(); + foreach (var blendHandConstraint in blendHandConstraints) + { + if (blendHandConstraint.BoneIdToTest == boneIdToTest) + { + blendHandConstraint.Constraints = null; + blendHandConstraint.RetargetingLayerComp = retargetingLayer; + blendHandConstraint.BoneIdToTest = boneIdToTest; + blendHandConstraint.HeadTransform = headTransform; + blendHandConstraint.AutoAddTo = mainParent.GetComponent(); + blendHandConstraint.BlendCurve = new AnimationCurve(new Keyframe(0, 0), new Keyframe(1, 1)); + PrefabUtility.RecordPrefabInstancePropertyModifications(blendHandConstraint); + return blendHandConstraint; + } + } + BlendHandConstraints blendConstraint = mainParent.AddComponent(); Undo.RegisterCreatedObjectUndo(blendConstraint, "Add blend constraint"); - foreach (MonoBehaviour constraint in constraints) - { - blendConstraint.AddSkeletalConstraint(constraint); - } + blendConstraint.Constraints = null; blendConstraint.RetargetingLayerComp = retargetingLayer; blendConstraint.BoneIdToTest = boneIdToTest; blendConstraint.HeadTransform = headTransform; @@ -474,6 +570,11 @@ private static void ValidGameObjectForAnimationRigging(GameObject go) } } + /// + /// Validates GameObject for face mapping. + /// + /// GameObject to check. + /// Exception thrown if GameObject fails check. public static void ValidateGameObjectForFaceMapping(GameObject go) { var renderer = go.GetComponent(); diff --git a/Editor/Utils/IntAsEnumDrawer.cs b/Editor/Utils/IntAsEnumDrawer.cs new file mode 100644 index 00000000..9346cfd9 --- /dev/null +++ b/Editor/Utils/IntAsEnumDrawer.cs @@ -0,0 +1,41 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEditor; +using UnityEngine; + +namespace Oculus.Movement.Utils +{ + /// + /// Int drawer that allows displaying an int like an enum. This is used for displaying ints that are bound + /// to an AnimationStream but are functionally used as an enum. + /// + [CustomPropertyDrawer(typeof(IntAsEnumAttribute))] + public class DisplayIntAsEnumDrawer : PropertyDrawer + { + /// + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + IntAsEnumAttribute intAsEnumAttribute = (IntAsEnumAttribute)attribute; + + if (property.propertyType == SerializedPropertyType.Integer) + { + var names = System.Enum.GetNames(intAsEnumAttribute.Type); + var values = new int[names.Length]; + for (int i = 0; i < values.Length; i++) + { + values[i] = i; + names[i] = FormatName(names[i]); + } + EditorGUI.BeginProperty(position, GUIContent.none, property); + property.intValue = EditorGUI.IntPopup(position, + FormatName(intAsEnumAttribute.Type.Name), property.intValue, names, values); + EditorGUI.EndProperty(); + } + } + + private string FormatName(string name) + { + return System.Text.RegularExpressions.Regex.Replace(name, @"([a-z])([A-Z])", "$1 $2");; + } + } +} diff --git a/Editor/Utils/IntAsEnumDrawer.cs.meta b/Editor/Utils/IntAsEnumDrawer.cs.meta new file mode 100644 index 00000000..95c98152 --- /dev/null +++ b/Editor/Utils/IntAsEnumDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fbf36ff54320f2842907781f6a06eb34 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/Utils/OVRProjectSetupMovementSDKSamples.cs b/Editor/Utils/OVRProjectSetupMovementSDKSamples.cs new file mode 100644 index 00000000..ba66ddf9 --- /dev/null +++ b/Editor/Utils/OVRProjectSetupMovementSDKSamples.cs @@ -0,0 +1,141 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEditor; +using UnityEngine; + +namespace Oculus.Movement.Utils +{ + /// + /// Add project setup validation tasks for MovementSDK Samples. + /// + [InitializeOnLoad] + internal static class OVRProjectSetupMovementSDKSamplesTasks + { + /// + /// All character and mirrored character layers should exist based on their indices. + /// That is because the scene assets are assigned based on layer index. + /// + private static readonly int[] _expectedLayersIndices = + { + 10, 11 + }; + + /// + /// The HiddenMesh layer is required for RecalculateNormals to function correctly. + /// + private static readonly string _hiddenMeshLayerName = "HiddenMesh"; + + private const OVRProjectSetup.TaskGroup _group = OVRProjectSetup.TaskGroup.Features; + + static OVRProjectSetupMovementSDKSamplesTasks() + { + // Body tracking settings. + OVRProjectSetup.AddTask( + level: OVRProjectSetup.TaskLevel.Required, + group: _group, + platform: BuildTargetGroup.Android, + isDone: group => OVRRuntimeSettings.Instance.BodyTrackingFidelity == OVRPlugin.BodyTrackingFidelity2.High, + message: "Body Tracking Fidelity should be set to High.", + fix: group => + { + OVRRuntimeSettings.Instance.BodyTrackingFidelity = OVRPlugin.BodyTrackingFidelity2.High; + OVRRuntimeSettings.CommitRuntimeSettings(OVRRuntimeSettings.Instance); + }, + fixMessage: "Set OVRRuntimeSettings.BodyTrackingFidelity = High" + ); + + OVRProjectSetup.AddTask( + level: OVRProjectSetup.TaskLevel.Required, + group: _group, + platform: BuildTargetGroup.Android, + isDone: group => OVRRuntimeSettings.GetRuntimeSettings().BodyTrackingJointSet == OVRPlugin.BodyJointSet.FullBody, + message: "Body Tracking Joint Set should be set to Full Body.", + fix: group => + { + OVRRuntimeSettings.Instance.BodyTrackingJointSet = OVRPlugin.BodyJointSet.FullBody; + OVRRuntimeSettings.CommitRuntimeSettings(OVRRuntimeSettings.Instance); + }, + fixMessage: "Set OVRRuntimeSettings.BodyTrackingJointSet = FullBody" + ); + + // Test layers. + OVRProjectSetup.AddTask( + level: OVRProjectSetup.TaskLevel.Recommended, + group: _group, + platform: BuildTargetGroup.Android, + isDone: group => LayerMask.NameToLayer(_hiddenMeshLayerName) != -1, + message: $"The layer '{_hiddenMeshLayerName}' needs to exist for Recalculate Normals to function properly.", + fix: group => + { + int unusedLayer = -1; + for (int i = 0; i < 32; i++) + { + if (string.IsNullOrEmpty(LayerMask.LayerToName(i))) + { + unusedLayer = i; + break; + } + } + if (LayerMask.NameToLayer(_hiddenMeshLayerName) == -1) + { + if (unusedLayer == -1) + { + Debug.LogError("All Layers are Used!"); + } + else + { + SetLayerName(unusedLayer, "HiddenMesh"); + } + } + }, + fixMessage: $"Set an unused layer to '{_hiddenMeshLayerName}'." + ); + OVRProjectSetup.AddTask( + level: OVRProjectSetup.TaskLevel.Recommended, + group: _group, + platform: BuildTargetGroup.Android, + isDone: group => + { + foreach (var layerIndex in _expectedLayersIndices) + { + if (string.IsNullOrEmpty(LayerMask.LayerToName(layerIndex))) + { + return false; + } + } + return true; + }, + message: "Layers 10 and 11 must be indexed for the samples to display correctly.", + fix: group => + { + foreach (var expectedLayerIndex in _expectedLayersIndices) + { + if (string.IsNullOrEmpty(LayerMask.LayerToName(expectedLayerIndex))) + { + // Default layer names. + string newLayerName = expectedLayerIndex == 10 ? "Character" : "MirroredCharacter"; + SetLayerName(expectedLayerIndex, newLayerName); + } + } + }, + fixMessage: "Set layers 10 and 11 to be valid layers." + ); + } + + private static void SetLayerName(int layer, string name) + { + SerializedObject tagManager = new SerializedObject(AssetDatabase.LoadAssetAtPath("ProjectSettings/TagManager.asset")); + + SerializedProperty it = tagManager.GetIterator(); + while (it.NextVisible(true)) + { + if (it.name == "layers") + { + it.GetArrayElementAtIndex(layer).stringValue = name; + break; + } + } + tagManager.ApplyModifiedProperties(); + } + } +} diff --git a/Editor/Utils/OVRProjectSetupMovementSDKSamples.cs.meta b/Editor/Utils/OVRProjectSetupMovementSDKSamples.cs.meta new file mode 100644 index 00000000..b32019e4 --- /dev/null +++ b/Editor/Utils/OVRProjectSetupMovementSDKSamples.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f7408ecc7fe859645b16f03c3c5fe4bf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/Utils/ProjectValidation.cs b/Editor/Utils/ProjectValidation.cs index 5531061c..4597be18 100644 --- a/Editor/Utils/ProjectValidation.cs +++ b/Editor/Utils/ProjectValidation.cs @@ -2,6 +2,7 @@ using UnityEditor; using UnityEngine; +using UnityEngine.SceneManagement; namespace Oculus.Movement.Utils { @@ -11,54 +12,6 @@ namespace Oculus.Movement.Utils [InitializeOnLoad] public class ProjectValidation { - /// - /// All character and mirrored character layers should exist based on their indices. - /// That is because the scene assets are assigned based on layer index. - /// - private static readonly int[] _expectedLayersIndices = - { 10, 11 }; - private static readonly string[] _expectedLayersNotIndexed = { "HiddenMesh" }; - - static ProjectValidation() - { - if (!ShouldShowWindow()) - { - return; - } - - ProjectValidationWindow.ShowProjectValidationWindow(); - } - - /// - /// If all expected layers are in the project, returns true. - /// - /// True if all expected layers are in the project. - public static bool TestLayers() - { - foreach (var expectedLayer in _expectedLayersNotIndexed) - { - if (LayerMask.NameToLayer(expectedLayer) == -1) - { - return false; - } - } - - foreach (var layerIndex in _expectedLayersIndices) - { - if (LayerMask.LayerToName(layerIndex) == null) - { - return false; - } - } - - return true; - } - - private static bool ShouldShowWindow() - { - return !TestLayers(); - } - [MenuItem("Movement/Check Project Settings", priority = 100)] public static void BuildProjectAndroid64() { diff --git a/README.md b/README.md index 6951556b..fec276e3 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ Unity-Movement is a package that uses OpenXR’s tracking layer APIs to expose Meta Quest Pro’s Body Tracking (BT), Eye Tracking (ET), and Face Tracking (FT) capabilities. With this package, developers can leverage tracking to populate VR environments with custom avatars that bring the expressiveness of users into the virtual environments that they create. ### Requirements -- Unity 2021.3.21f1 (2021 LTS) or newer installed -- v56.0 or newer of the Oculus Integration SDK with OVRPlugin set to use OpenXR as backend. Make sure to include the VR and Interaction folders when importing into your project. +- Unity 2021.3.26f1 (2021 LTS) or newer installed +- v60.0 or newer of the Meta XR SDK. You will need the Meta XR Core SDK, Meta XR Interaction SDK and Meta XR Interaction SDK OVR Samples packages found [on this page](https://assetstore.unity.com/publishers/25353). - A project set up with these [configuration settings](https://developer.oculus.com/documentation/unity/unity-conf-settings/) ### Licenses @@ -29,6 +29,8 @@ If the new scene or an existing scene doesn’t have a GameObject with the OVRCa 5. In the General tab, there are options to enable body, face, and eye tracking support. Select Supported or Required for the type of tracking support you wish to add. 6. Under OVRManager's "Permission Requests On Startup" section, enable Body, Face and Eye Tracking. 7. Ensure that OVRManager's "Tracking Origin Type" is set to "Floor Level". +8. In OVRManager's "Movement Tracking" section select "High" for "Body Tracking Fidelity." +9. In OVRManager's "Movement Tracking" section select "Full Body" for "Body Tracking Joint Set." Layer index 10, layer index 11, and the HiddenMesh layer must be present in the project for RecalculateNormals to work correctly. @@ -63,6 +65,8 @@ In order for the SceneSelectMenu buttons to work, add the scenes located in the ## Samples The project contains several sample scenes. To test the samples, add the scenes located in the **Packages/com.meta.movement/Samples/Scenes** folder to the project's Assets folder. +For more information about body tracking, please refer to [this page](https://developer.oculus.com/documentation/unity/move-body-tracking/). + For more information about the samples, read [Aura Sample](https://developer.oculus.com/documentation/unity/move-samples/#face-and-eye-tracking-with-aura), [Blendshape Mapping Example Sample](https://developer.oculus.com/documentation/unity/move-samples/#arkit-mapping-with-blendshape-mapping-example), [Hip Pinning Sample](https://developer.oculus.com/documentation/unity/move-samples/#high-fidelity-with-hip-pinning), [High Fidelity Sample](https://developer.oculus.com/documentation/unity/move-samples/#high-fidelity-sample), and [Retargeting Sample](https://developer.oculus.com/documentation/unity/move-samples/#retargeting-with-blue-robot). ## Documentation diff --git a/Runtime/Scripts/AnimationRigging/AnimationRigSetup.cs b/Runtime/Scripts/AnimationRigging/AnimationRigSetup.cs index b5b578fa..930fb3fb 100644 --- a/Runtime/Scripts/AnimationRigging/AnimationRigSetup.cs +++ b/Runtime/Scripts/AnimationRigging/AnimationRigSetup.cs @@ -96,7 +96,7 @@ public bool ReEnableRig /// [SerializeField] [Tooltip(AnimationRigSetupTooltips.RigToggleOnFocus)] - protected bool _rigToggleOnFocus = true; + protected bool _rigToggleOnFocus = false; /// public bool RigToggleOnFocus diff --git a/Runtime/Scripts/AnimationRigging/AnimationUtilities.cs b/Runtime/Scripts/AnimationRigging/AnimationUtilities.cs new file mode 100644 index 00000000..c3ac639b --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/AnimationUtilities.cs @@ -0,0 +1,76 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEngine; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// Provides convenient algorithms to assist + /// with animation rigging work. + /// + public static class AnimationUtilities + { + /// + /// Cyclic Coordinate Descent IK algorithm implementation. This rotates each bone in the chain so + /// that the effector bone will reach the target position. An example of this usage is rotating the entire arm + /// so that the specified hand can match the tracked hand position. + /// + /// The bones in the chain. + /// The target position. + /// The maximum distance allowed between the effector and target position. + /// The maximum number of iterations + /// True if the IK was successful at positioning the effector at the target position. + public static bool SolveCCDIK( + Transform[] bones, + Vector3 targetPosition, + float tolerance, + float maxIterations) + { + float sqrTolerance = float.MaxValue; + var effector = bones[0]; + + int iterations = 1; + while (sqrTolerance > tolerance && iterations <= maxIterations) + { + for (int i = 2; i < bones.Length; i++) + { + for (int j = 1; j <= i; j++) + { + bones[j].rotation = GetBoneRotationWithEffectorTowardGoal(effector, bones[j], targetPosition); + + sqrTolerance = (effector.position - targetPosition).sqrMagnitude; + + if (sqrTolerance <= tolerance) + { + return true; + } + } + } + + sqrTolerance = (effector.position - targetPosition).sqrMagnitude; + iterations++; + } + + return false; + } + + /// + /// Gets the rotation of a bone toward the goal with an effector. + /// + /// The effector transform. + /// The bone transform. + /// The goal position. + /// The desired bone rotation. + public static Quaternion GetBoneRotationWithEffectorTowardGoal(Transform effector, Transform bone, Vector3 goalPosition) + { + var effectorPosition = effector.position; + var bonePosition = bone.position; + var boneRotation = bone.rotation; + + var boneToEffector = effectorPosition - bonePosition; + var boneToGoal = goalPosition - bonePosition; + + return Quaternion.FromToRotation(boneToEffector, boneToGoal) * boneRotation; + } + } +} diff --git a/Runtime/Scripts/AnimationRigging/AnimationUtilities.cs.meta b/Runtime/Scripts/AnimationRigging/AnimationUtilities.cs.meta new file mode 100644 index 00000000..9e8a8dc9 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/AnimationUtilities.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a4e70b008c9efb34c8535797a76d19b6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/BlendHandConstraints.cs b/Runtime/Scripts/AnimationRigging/BlendHandConstraints.cs index 31455445..04e769f6 100644 --- a/Runtime/Scripts/AnimationRigging/BlendHandConstraints.cs +++ b/Runtime/Scripts/AnimationRigging/BlendHandConstraints.cs @@ -1,9 +1,11 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. using Oculus.Interaction; +using Oculus.Interaction.Input; using UnityEngine; using UnityEngine.Animations.Rigging; using UnityEngine.Assertions; +using static OVRUnityHumanoidSkeletonRetargeter; namespace Oculus.Movement.AnimationRigging { @@ -17,7 +19,11 @@ namespace Oculus.Movement.AnimationRigging public class BlendHandConstraints : MonoBehaviour, IOVRSkeletonProcessor { /// - public bool EnableSkeletonProcessing { get; set; } + public bool EnableSkeletonProcessing + { + get => enabled; + set => enabled = value; + } /// public string SkeletonProcessorLabel => "Blend Hands"; @@ -27,12 +33,20 @@ public class BlendHandConstraints : MonoBehaviour, IOVRSkeletonProcessor [SerializeField, Interface(typeof(IRigConstraint))] [Tooltip(BlendHandConstraintsTooltips.Constraints)] private MonoBehaviour[] _constraints; + /// + public MonoBehaviour[] Constraints + { + get => _constraints; + set => _constraints = value; + } /// /// The character's retargeting layer. /// [SerializeField] + [Tooltip(BlendHandConstraintsTooltips.RetargetingLayer)] private RetargetingLayer _retargetingLayer; + /// public RetargetingLayer RetargetingLayerComp { get => _retargetingLayer; @@ -45,9 +59,9 @@ public RetargetingLayer RetargetingLayerComp /// [SerializeField] [Tooltip(BlendHandConstraintsTooltips.BoneIdToTest)] - private CustomMappings.BodyTrackingBoneId _boneIdToTest = - CustomMappings.BodyTrackingBoneId.Body_LeftHandWrist; - public CustomMappings.BodyTrackingBoneId BoneIdToTest + private OVRHumanBodyBonesMappings.BodyTrackingBoneId _boneIdToTest = + OVRHumanBodyBonesMappings.BodyTrackingBoneId.Body_LeftHandWrist; + public OVRHumanBodyBonesMappings.BodyTrackingBoneId BoneIdToTest { get => _boneIdToTest; set => _boneIdToTest = value; @@ -68,7 +82,7 @@ public Transform HeadTransform /// /// MonoBehaviour to add to. /// - [SerializeField] + [Optional, SerializeField] [Interface(typeof(IOVRSkeletonProcessorAggregator))] [Tooltip(BlendHandConstraintsTooltips.AutoAddTo)] protected MonoBehaviour _autoAddTo; @@ -128,7 +142,9 @@ public float MaxWeight private IRigConstraint[] _iRigConstraints; private Transform _cachedTransform; - private float _cachedConstraintWeight = 0.0f; + private float _cachedConstraintWeight; + private RetargetingProcessorCorrectBones _retargetingProcessorCorrectBones; + private RetargetingProcessorCorrectHand _retargetingProcessorCorrectHand; /// /// Adds constraint. Valid for use via editor scripts only. @@ -160,12 +176,13 @@ public void AddSkeletalConstraint(MonoBehaviour newConstraint) private void Awake() { - Assert.IsTrue(_constraints != null && _constraints.Length > 0); - UpdateSkeletalConstraintInterfaceReferences(); + if (_constraints != null && _constraints.Length > 0) + { + UpdateSkeletalConstraintInterfaceReferences(); + } Assert.IsNotNull(_retargetingLayer); Assert.IsNotNull(_headTransform); - Assert.IsNotNull(_autoAddTo); Assert.IsNotNull(_blendCurve); Assert.IsTrue(_constraintsMinDistance < _constraintsMaxDistance); @@ -190,6 +207,28 @@ private void Start() { aggregator.AddProcessor(this); } + + foreach (var retargetingProcessor in _retargetingLayer.RetargetingProcessors) + { + var correctBonesProcessor = retargetingProcessor as RetargetingProcessorCorrectBones; + if (correctBonesProcessor != null) + { + _retargetingProcessorCorrectBones = correctBonesProcessor; + } + + var correctHandProcessor = retargetingProcessor as RetargetingProcessorCorrectHand; + if (correctHandProcessor != null) + { + if (correctHandProcessor.Handedness == Handedness.Left && IsLeftSideOfBody()) + { + _retargetingProcessorCorrectHand = correctHandProcessor; + } + else if (correctHandProcessor.Handedness == Handedness.Right && !IsLeftSideOfBody()) + { + _retargetingProcessorCorrectHand = correctHandProcessor; + } + } + } } /// @@ -216,23 +255,31 @@ public void ProcessSkeleton(OVRSkeleton skeleton) } float constraintWeight = ComputeCurrentConstraintWeight(skeleton); - foreach (var constraint in _iRigConstraints) + if (_iRigConstraints != null) { - constraint.weight = Mathf.Min(constraintWeight, _maxWeight); + foreach (var constraint in _iRigConstraints) + { + constraint.weight = Mathf.Min(constraintWeight, _maxWeight); + } } + if (IsLeftSideOfBody()) { - _retargetingLayer.LeftHandCorrectionWeightLateUpdate = constraintWeight; + _retargetingProcessorCorrectBones.LeftHandCorrectionWeightLateUpdate = constraintWeight; } else { - _retargetingLayer.RightHandCorrectionWeightLateUpdate = constraintWeight; + _retargetingProcessorCorrectBones.RightHandCorrectionWeightLateUpdate = constraintWeight; + } + if (_retargetingProcessorCorrectHand != null) + { + _retargetingProcessorCorrectHand.Weight = constraintWeight; } } private bool IsLeftSideOfBody() { - return _boneIdToTest < CustomMappings.BodyTrackingBoneId.Body_RightHandPalm; + return _boneIdToTest < OVRHumanBodyBonesMappings.BodyTrackingBoneId.Body_RightHandPalm; } private bool BonesAreValid(OVRSkeleton skeleton) diff --git a/Runtime/Scripts/AnimationRigging/BlendHandConstraintsFullBody.cs b/Runtime/Scripts/AnimationRigging/BlendHandConstraintsFullBody.cs new file mode 100644 index 00000000..56764f5e --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/BlendHandConstraintsFullBody.cs @@ -0,0 +1,353 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using Oculus.Interaction; +using UnityEngine; +using UnityEngine.Animations.Rigging; +using UnityEngine.Assertions; +using static OVRUnityHumanoidSkeletonRetargeter; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// Allows disabling TwoBoneIK constraints when the hands move far away, + /// which would mitigate issues with the elbows looking incorrect when the hands + /// are away. While the hands will look more accurate when further away, that + /// might be ok because they are far from the body. + /// + [DefaultExecutionOrder(225)] + public class BlendHandConstraintsFullBody : MonoBehaviour, IOVRSkeletonProcessor + { + /// + public bool EnableSkeletonProcessing + { + get => enabled; + set => enabled = value; + } + + /// + public string SkeletonProcessorLabel => "Blend Hands" + (IsLeftSideOfBody() ? " Left" : " Right"); + + /// + /// Constraints to control the weight of. + /// + [SerializeField, Interface(typeof(IRigConstraint))] + [Tooltip(BlendHandConstraintsFullBodyTooltips.Constraints)] + protected MonoBehaviour[] _constraints; + public MonoBehaviour[] Constraints + { + get => _constraints; + set => _constraints = value; + } + + /// + /// The character's retargeting layer. + /// + [SerializeField] + [Tooltip(BlendHandConstraintsFullBodyTooltips.RetargetingLayer)] + protected RetargetingLayer _retargetingLayer; + public RetargetingLayer RetargetingLayerComp + { + get => _retargetingLayer; + set => _retargetingLayer = value; + } + + /// + /// Bone ID, usually the wrist. Can be modified depending + /// on the skeleton used. + /// + [SerializeField] + [Tooltip(BlendHandConstraintsFullBodyTooltips.BoneIdToTest)] + protected OVRHumanBodyBonesMappings.FullBodyTrackingBoneId _boneIdToTest = + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandWrist; + public OVRHumanBodyBonesMappings.FullBodyTrackingBoneId BoneIdToTest + { + get => _boneIdToTest; + set => _boneIdToTest = value; + } + + /// + /// Head transform to do distance checks against. + /// + [SerializeField] + [Tooltip(BlendHandConstraintsFullBodyTooltips.HeadTransform)] + protected Transform _headTransform; + public Transform HeadTransform + { + get => _headTransform; + set => _headTransform = value; + } + + /// + /// MonoBehaviour to add to. + /// + [SerializeField] + [Interface(typeof(IOVRSkeletonProcessorAggregator))] + [Tooltip(BlendHandConstraintsFullBodyTooltips.AutoAddTo)] + protected MonoBehaviour _autoAddTo; + public MonoBehaviour AutoAddTo + { + get => _autoAddTo; + set => _autoAddTo = value; + } + + /// + /// Distance where constraints are set to 1.0. + /// + [SerializeField] + [Tooltip(BlendHandConstraintsFullBodyTooltips.ConstraintsMinDistance)] + protected float _constraintsMinDistance = 0.2f; + public float ConstraintsMinDistance + { + get => _constraintsMinDistance; + set => _constraintsMinDistance = value; + } + + /// + /// Distance where constraints are set to 0.0. + /// + [SerializeField] + [Tooltip(BlendHandConstraintsFullBodyTooltips.ConstraintsMaxDistance)] + protected float _constraintsMaxDistance = 0.5f; + public float ConstraintsMaxDistance + { + get => _constraintsMaxDistance; + set => _constraintsMaxDistance = value; + } + + /// + /// Multiplier that influences weight interpolation based on distance. + /// + [SerializeField] + [Tooltip(BlendHandConstraintsFullBodyTooltips.BlendCurve)] + protected AnimationCurve _blendCurve; + public AnimationCurve BlendCurve + { + get => _blendCurve; + set => _blendCurve = value; + } + + /// + /// Max constraint weight. + /// + [SerializeField] + [Tooltip(BlendHandConstraintsFullBodyTooltips.MaxWeight)] + protected float _maxWeight = 1.0f; + public float MaxWeight + { + get => _maxWeight; + set => _maxWeight = value; + } + + private IRigConstraint[] _iRigConstraints; + private Transform _cachedTransform; + private float _cachedConstraintWeight = 0.0f; + private RetargetingProcessorCorrectBones _retargetingProcessorCorrectBones; + + /// + /// Adds constraint. Valid for use via editor scripts only. + /// + /// New constraint to add. + public void AddSkeletalConstraint(MonoBehaviour newConstraint) + { + if (_constraints == null) + { + _constraints = new MonoBehaviour[1]; + _constraints[0] = newConstraint; + } + else + { + var oldConstraints = _constraints; + _constraints = + new MonoBehaviour[oldConstraints.Length + 1]; + for (int i = 0; i < oldConstraints.Length; i++) + { + _constraints[i] = oldConstraints[i]; + } + _constraints[oldConstraints.Length] = + newConstraint; + } + + // Update the interface references in case this was called after awake, but before Update + UpdateSkeletalConstraintInterfaceReferences(); + } + + private void Awake() + { + if (_constraints != null && _constraints.Length > 0) + { + UpdateSkeletalConstraintInterfaceReferences(); + } + + Assert.IsNotNull(_retargetingLayer); + Assert.IsNotNull(_headTransform); + Assert.IsNotNull(_blendCurve); + + Assert.IsTrue(_constraintsMinDistance < _constraintsMaxDistance); + } + + private void UpdateSkeletalConstraintInterfaceReferences() + { + _iRigConstraints = new IRigConstraint[_constraints.Length]; + for (int i = 0; i < _constraints.Length; i++) + { + _iRigConstraints[i] = _constraints[i] as IRigConstraint; + Assert.IsNotNull(_iRigConstraints[i]); + } + } + + /// + /// Will add self to + /// + private void Start() + { + if (_autoAddTo != null && _autoAddTo is IOVRSkeletonProcessorAggregator aggregator) + { + aggregator.AddProcessor(this); + } + + foreach (var retargetingProcessor in _retargetingLayer.RetargetingProcessors) + { + var correctBonesProcessor = retargetingProcessor as RetargetingProcessorCorrectBones; + if (correctBonesProcessor != null) + { + _retargetingProcessorCorrectBones = correctBonesProcessor; + break; + } + } + } + + /// + /// Sets max constraint weight. + /// + /// New max value. + public void SetMaxWeight(float max) + { + _maxWeight = max; + } + + /// + public void ProcessSkeleton(OVRSkeleton skeleton) + { + if (!enabled) + { + return; + } + + var bones = skeleton.Bones; + if (!BonesAreValid(skeleton)) + { + return; + } + + float constraintWeight = ComputeCurrentConstraintWeight(skeleton); + if (_iRigConstraints != null) + { + foreach (var constraint in _iRigConstraints) + { + constraint.weight = Mathf.Min(constraintWeight, _maxWeight); + } + } + + if (IsLeftSideOfBody()) + { + _retargetingProcessorCorrectBones.LeftHandCorrectionWeightLateUpdate = constraintWeight; + } + else + { + _retargetingProcessorCorrectBones.RightHandCorrectionWeightLateUpdate = constraintWeight; + } + } + + private bool IsLeftSideOfBody() + { + return _boneIdToTest < OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandPalm; + } + + private bool BonesAreValid(OVRSkeleton skeleton) + { + return skeleton.Bones.Count >= (int)_boneIdToTest; + } + + private void OnDrawGizmos() + { + if (_cachedTransform == null) + { + return; + } + var viewVector = GetViewVector(); + var viewOriginToPointVector = GetViewOriginToPointVector(_cachedTransform.position); + + Gizmos.color = new UnityEngine.Color(_cachedConstraintWeight, _cachedConstraintWeight, + _cachedConstraintWeight); + Gizmos.DrawRay(_headTransform.position, viewOriginToPointVector); + + Gizmos.color = UnityEngine.Color.white; + Gizmos.DrawRay(_headTransform.transform.position, 0.7f * viewVector); + } + + private float ComputeCurrentConstraintWeight(OVRSkeleton skeleton) + { + var bones = skeleton.Bones; + var boneToTest = bones[(int)_boneIdToTest].Transform; + _cachedTransform = boneToTest; + var boneDistanceToViewVector = GetDistanceToViewVector(boneToTest.position); + + _cachedConstraintWeight = 0.0f; + var scaledMaxDistanceForConstraints = _constraintsMaxDistance * transform.lossyScale.x; + var scaledMinDistanceForConstraints = _constraintsMinDistance * transform.lossyScale.x; + // If the hand is close enough to the view vector, start to increase the + // weight of the constraint. + if (boneDistanceToViewVector <= scaledMaxDistanceForConstraints) + { + if (boneDistanceToViewVector <= scaledMinDistanceForConstraints) + { + _cachedConstraintWeight = 1.0f; + } + else + { + float lerpValue = (scaledMaxDistanceForConstraints - boneDistanceToViewVector) / + (scaledMaxDistanceForConstraints - scaledMinDistanceForConstraints); + float curveValue = _blendCurve.Evaluate(lerpValue); + // amplify lerping before clamping it + _cachedConstraintWeight = Mathf.Clamp01(curveValue); + } + } + + return _cachedConstraintWeight; + } + + /// + /// This is solved via the cross product method, as seen here: + /// https://qc.edu.hk/math/Advanced%20Level/Point_to_line.htm. + /// What this function does is create a parallelogram that is located + /// at the view origin, and has two properties: the base (view vector) + /// and height (distance from view vector to point passed as an + /// argument). The magnitude of the cross product of the view vector + /// and (point - viewOrigin) gives us the area of the parallelogram. + /// To solve for the height, we divide the area by the magnitude of the base + /// vector. + /// + /// + /// + private float GetDistanceToViewVector(Vector3 point) + { + var viewVector = GetViewVector(); + var viewOriginToPointVector = GetViewOriginToPointVector(point); + + var parallelogramArea = Vector3.Cross(viewVector, viewOriginToPointVector).magnitude; + var parallelogramBaseLength = viewVector.magnitude; + return parallelogramArea / parallelogramBaseLength; + } + + private Vector3 GetViewVector() + { + return _headTransform.forward; + } + + private Vector3 GetViewOriginToPointVector(Vector3 point) + { + var viewOrigin = _headTransform.position; + return point - viewOrigin; + } + } +} diff --git a/Runtime/Scripts/AnimationRigging/BlendHandConstraintsFullBody.cs.meta b/Runtime/Scripts/AnimationRigging/BlendHandConstraintsFullBody.cs.meta new file mode 100644 index 00000000..5188cae1 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/BlendHandConstraintsFullBody.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8359a52c8182ca247b2064624e74dffb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/BoneMappingsExtension.cs b/Runtime/Scripts/AnimationRigging/BoneMappingsExtension.cs new file mode 100644 index 00000000..21187dbc --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/BoneMappingsExtension.cs @@ -0,0 +1,268 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using System.Collections.Generic; +using UnityEngine; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// Contains extra mappins not yet available in the SDK. + /// + public class BoneMappingsExtension + { + /// + /// Maps HumanBodyBones to avatar mask body part. Includes legs as well. + /// + public static readonly Dictionary + HumanBoneToAvatarBodyPart = new Dictionary() + { + { HumanBodyBones.Neck, AvatarMaskBodyPart.Head }, + + { HumanBodyBones.Head, AvatarMaskBodyPart.Head }, + { HumanBodyBones.LeftEye, AvatarMaskBodyPart.Head }, + { HumanBodyBones.RightEye, AvatarMaskBodyPart.Head }, + { HumanBodyBones.Jaw, AvatarMaskBodyPart.Head }, + + { HumanBodyBones.Hips, AvatarMaskBodyPart.Body }, + + { HumanBodyBones.Spine, AvatarMaskBodyPart.Body }, + { HumanBodyBones.Chest, AvatarMaskBodyPart.Body }, + { HumanBodyBones.UpperChest, AvatarMaskBodyPart.Body }, + + { HumanBodyBones.RightShoulder, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightUpperArm, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightLowerArm, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightHand, AvatarMaskBodyPart.RightArm }, + + { HumanBodyBones.LeftShoulder, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftUpperArm, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftLowerArm, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftHand, AvatarMaskBodyPart.LeftArm }, + + { HumanBodyBones.LeftUpperLeg, AvatarMaskBodyPart.LeftLeg }, + { HumanBodyBones.LeftLowerLeg, AvatarMaskBodyPart.LeftLeg }, + + { HumanBodyBones.LeftFoot, AvatarMaskBodyPart.LeftLeg }, + { HumanBodyBones.LeftToes, AvatarMaskBodyPart.LeftLeg }, + + { HumanBodyBones.RightUpperLeg, AvatarMaskBodyPart.RightLeg }, + { HumanBodyBones.RightLowerLeg, AvatarMaskBodyPart.RightLeg }, + + { HumanBodyBones.RightFoot, AvatarMaskBodyPart.RightLeg }, + { HumanBodyBones.RightToes, AvatarMaskBodyPart.RightLeg }, + + { HumanBodyBones.LeftThumbProximal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftThumbIntermediate, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftThumbDistal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftIndexProximal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftIndexIntermediate, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftIndexDistal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftMiddleProximal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftMiddleIntermediate, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftMiddleDistal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftRingProximal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftRingIntermediate, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftRingDistal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftLittleProximal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftLittleIntermediate, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftLittleDistal, AvatarMaskBodyPart.LeftArm }, + + { HumanBodyBones.RightThumbProximal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightThumbIntermediate, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightThumbDistal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightIndexProximal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightIndexIntermediate, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightIndexDistal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightMiddleProximal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightMiddleIntermediate, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightMiddleDistal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightRingProximal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightRingIntermediate, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightRingDistal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightLittleProximal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightLittleIntermediate, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightLittleDistal, AvatarMaskBodyPart.RightArm } + }; + + /// + /// Maps OVRSkeletonBoneId to avatar mask body part. + /// + public static readonly Dictionary + OVRSkeletonBoneIdToAvatarBodyPart = new Dictionary() + { + { OVRSkeleton.BoneId.Body_Neck, AvatarMaskBodyPart.Head }, + { OVRSkeleton.BoneId.Body_Head, AvatarMaskBodyPart.Head }, + + { OVRSkeleton.BoneId.Body_Root, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.Body_Hips, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.Body_SpineLower, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.Body_SpineMiddle, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.Body_SpineUpper, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.Body_Chest, AvatarMaskBodyPart.Body }, + + { OVRSkeleton.BoneId.Body_RightShoulder, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightScapula, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightArmUpper, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightArmLower, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandWristTwist, AvatarMaskBodyPart.RightArm }, + + { OVRSkeleton.BoneId.Body_LeftShoulder, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftScapula, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftArmUpper, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftArmLower, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandWristTwist, AvatarMaskBodyPart.LeftArm }, + + { OVRSkeleton.BoneId.Body_LeftHandPalm, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandWrist, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandThumbMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandThumbProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandThumbDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandThumbTip, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandIndexMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandIndexProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandIndexIntermediate, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandIndexDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandIndexTip, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandMiddleMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandMiddleProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandMiddleIntermediate, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandMiddleDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandMiddleTip, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandRingMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandRingProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandRingIntermediate, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandRingDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandRingTip, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandLittleMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandLittleProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandLittleIntermediate, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandLittleDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandLittleTip, AvatarMaskBodyPart.LeftArm }, + + { OVRSkeleton.BoneId.Body_RightHandPalm, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandWrist, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandThumbMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandThumbProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandThumbDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandThumbTip, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandIndexMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandIndexProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandIndexIntermediate, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandIndexDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandIndexTip, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandMiddleMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandMiddleProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandMiddleIntermediate, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandMiddleDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandMiddleTip, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandRingMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandRingProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandRingIntermediate, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandRingDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandRingTip, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandLittleMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandLittleProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandLittleIntermediate, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandLittleDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandLittleTip, AvatarMaskBodyPart.RightArm }, + }; + + /// + /// Maps OVRSkeleton.BoneId.FullBody* to avatar mask body part. + /// + public static readonly Dictionary + OVRSkeletonFullBodyBoneIdToAvatarBodyPart = new Dictionary() + { + { OVRSkeleton.BoneId.FullBody_Start, AvatarMaskBodyPart.Root }, + { OVRSkeleton.BoneId.FullBody_Hips, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.FullBody_SpineLower, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.FullBody_SpineMiddle, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.FullBody_SpineUpper, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.FullBody_Chest, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.FullBody_Neck, AvatarMaskBodyPart.Head }, + { OVRSkeleton.BoneId.FullBody_Head, AvatarMaskBodyPart.Head }, + + { OVRSkeleton.BoneId.FullBody_LeftShoulder, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftScapula, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftArmUpper, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftArmLower, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandWristTwist, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandPalm, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandWrist, AvatarMaskBodyPart.LeftArm }, + + { OVRSkeleton.BoneId.FullBody_RightShoulder, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightScapula, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightArmUpper, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightArmLower, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandWristTwist, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandPalm, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandWrist, AvatarMaskBodyPart.RightArm }, + + { OVRSkeleton.BoneId.FullBody_LeftHandThumbMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandThumbProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandThumbDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandThumbTip, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandIndexMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandIndexProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandIndexIntermediate, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandIndexDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandIndexTip, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandMiddleMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandMiddleProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandMiddleIntermediate, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandMiddleDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandMiddleTip, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandRingMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandRingProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandRingIntermediate, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandRingDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandRingTip, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandLittleMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandLittleProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandLittleIntermediate, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandLittleDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandLittleTip, AvatarMaskBodyPart.LeftArm }, + + { OVRSkeleton.BoneId.FullBody_RightHandThumbMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandThumbProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandThumbDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandThumbTip, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandIndexMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandIndexProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandIndexIntermediate, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandIndexDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandIndexTip, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandMiddleMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandMiddleProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandMiddleIntermediate, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandMiddleDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandMiddleTip, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandRingMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandRingProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandRingIntermediate, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandRingDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandRingTip, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandLittleMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandLittleProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandLittleIntermediate, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandLittleDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.FullBody_RightHandLittleTip, AvatarMaskBodyPart.RightArm }, + + { OVRSkeleton.BoneId.FullBody_LeftUpperLeg, AvatarMaskBodyPart.LeftLeg }, + { OVRSkeleton.BoneId.FullBody_LeftLowerLeg, AvatarMaskBodyPart.LeftLeg }, + { OVRSkeleton.BoneId.FullBody_LeftFootAnkleTwist, AvatarMaskBodyPart.LeftLeg }, + { OVRSkeleton.BoneId.FullBody_LeftFootAnkle, AvatarMaskBodyPart.LeftLeg }, + { OVRSkeleton.BoneId.FullBody_LeftFootSubtalar, AvatarMaskBodyPart.LeftLeg }, + { OVRSkeleton.BoneId.FullBody_LeftFootTransverse, AvatarMaskBodyPart.LeftLeg }, + { OVRSkeleton.BoneId.FullBody_LeftFootBall, AvatarMaskBodyPart.LeftLeg }, + + { OVRSkeleton.BoneId.FullBody_RightUpperLeg, AvatarMaskBodyPart.RightLeg }, + { OVRSkeleton.BoneId.FullBody_RightLowerLeg, AvatarMaskBodyPart.RightLeg }, + { OVRSkeleton.BoneId.FullBody_RightFootAnkleTwist, AvatarMaskBodyPart.RightLeg }, + { OVRSkeleton.BoneId.FullBody_RightFootAnkle, AvatarMaskBodyPart.RightLeg }, + { OVRSkeleton.BoneId.FullBody_RightFootSubtalar, AvatarMaskBodyPart.RightLeg }, + { OVRSkeleton.BoneId.FullBody_RightFootTransverse, AvatarMaskBodyPart.RightLeg }, + { OVRSkeleton.BoneId.FullBody_RightFootBall, AvatarMaskBodyPart.RightLeg }, + }; + } +} diff --git a/Runtime/Scripts/AnimationRigging/BoneMappingsExtension.cs.meta b/Runtime/Scripts/AnimationRigging/BoneMappingsExtension.cs.meta new file mode 100644 index 00000000..8dff9335 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/BoneMappingsExtension.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d660b627f102a3848a8024e00fa09fcf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/CaptureAnimationConstraint.cs b/Runtime/Scripts/AnimationRigging/CaptureAnimationConstraint.cs new file mode 100644 index 00000000..36b0ea19 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/CaptureAnimationConstraint.cs @@ -0,0 +1,219 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using Oculus.Interaction; +using System; +using UnityEngine; +using UnityEngine.Animations.Rigging; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// Interface for capture animation data. + /// + public interface ICaptureAnimationData + { + /// + /// The animator used by the constraint. + /// + public Animator ConstraintAnimator { get; } + + /// + /// The target animator layer to capture animations on. + /// + public int TargetAnimatorLayer { get; } + + /// + /// The normalized time from which the reference pose should be captured from. + /// + public float ReferencePoseTime { get; } + + /// + /// The bone data for the reference pose. + /// + public CaptureAnimationData.PoseBone[] ReferencePose { get; } + + /// + /// The bone data for the current pose. + /// + public CaptureAnimationData.PoseBone[] CurrentPose { get; } + + /// + /// The current animator state info hash. + /// + public int CurrentAnimatorStateInfoHash { get; set; } + } + + /// + /// Data to store captured bone data from the current animation. + /// + [Serializable] + public struct CaptureAnimationData : IAnimationJobData, ICaptureAnimationData + { + /// + /// The bone information for a bone in a pose. + /// + [Serializable] + public class PoseBone + { + /// + /// The bone in the pose. + /// + public HumanBodyBones Bone = HumanBodyBones.LastBone; + + /// + /// The local position of the bone. + /// + public Vector3 LocalPosition = Vector3.zero; + + /// + /// The local rotation of the bone. + /// + public Quaternion LocalRotation = Quaternion.identity; + } + + /// + Animator ICaptureAnimationData.ConstraintAnimator => _animator; + + /// + int ICaptureAnimationData.TargetAnimatorLayer => _targetAnimatorLayer; + + /// + float ICaptureAnimationData.ReferencePoseTime => _referencePoseTime; + + /// + PoseBone[] ICaptureAnimationData.ReferencePose => _referencePose; + + /// + PoseBone[] ICaptureAnimationData.CurrentPose => _currentPose; + + /// + int ICaptureAnimationData.CurrentAnimatorStateInfoHash + { + get => _currentAnimatorStateInfoHash; + set => _currentAnimatorStateInfoHash = value; + } + + /// + [SerializeField] + [Tooltip(CaptureAnimationDataTooltips.ConstraintAnimator)] + private Animator _animator; + + /// + [SyncSceneToStream, SerializeField] + [Tooltip(CaptureAnimationDataTooltips.TargetAnimatorLayer)] + private int _targetAnimatorLayer; + + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(CaptureAnimationDataTooltips.ReferencePoseTime)] + private float _referencePoseTime; + + /// + [SerializeField] + [Tooltip(CaptureAnimationDataTooltips.ReferencePose)] + private PoseBone[] _referencePose; + + /// + [SerializeField] + [Tooltip(CaptureAnimationDataTooltips.CurrentPose)] + private PoseBone[] _currentPose; + + private int _currentAnimatorStateInfoHash; + + /// + /// Assign the animator. + /// + /// The animator to be assigned. + public void AssignAnimator(Animator animator) + { + _animator = animator; + } + + /// + /// Setup the reference and current pose arrays. + /// + public void SetupPoseArrays() + { + _referencePose = new PoseBone[(int)HumanBodyBones.LastBone]; + _currentPose = new PoseBone[(int)HumanBodyBones.LastBone]; + + for (HumanBodyBones i = HumanBodyBones.Hips; i < HumanBodyBones.LastBone; i++) + { + _referencePose[(int)i] = new PoseBone + { + Bone = i, + LocalPosition = Vector3.zero, + LocalRotation = Quaternion.identity + }; + } + for (HumanBodyBones i = HumanBodyBones.Hips; i < HumanBodyBones.LastBone; i++) + { + _currentPose[(int)i] = new PoseBone + { + Bone = i, + LocalPosition = Vector3.zero, + LocalRotation = Quaternion.identity + }; + } + } + + /// + /// Return the position delta for a bone between the reference and current pose. + /// + /// The bone to check. + /// The position delta for a bone between the reference and current pose. + public Vector3 GetBonePositionDelta(HumanBodyBones humanBodyBones) + { + var referencePoseBone = _referencePose[(int)humanBodyBones]; + var currentPoseBone = _currentPose[(int)humanBodyBones]; + return currentPoseBone.LocalPosition - + referencePoseBone.LocalPosition; + } + + /// + /// Return the rotation delta for a bone between the reference and current pose. + /// + /// The bone to check. + /// The rotation delta for a bone between the reference and current pose. + public Quaternion GetBoneRotationDelta(HumanBodyBones humanBodyBones) + { + var referencePoseBone = _referencePose[(int)humanBodyBones]; + var currentPoseBone = _currentPose[(int)humanBodyBones]; + return Quaternion.Inverse(referencePoseBone.LocalRotation) * + currentPoseBone.LocalRotation; + } + + bool IAnimationJobData.IsValid() + { + if (_animator == null || _referencePose == null || _currentPose == null) + { + return false; + } + return true; + } + + void IAnimationJobData.SetDefaultValues() + { + _referencePose = null; + _currentPose = null; + _referencePoseTime = 0f; + } + } + + /// + /// Capture animation constraint. Captures the current animator's reference pose and current pose, + /// to be used to blend animation playback and tracking in another animation job. + /// + [DisallowMultipleComponent, AddComponentMenu("Movement Animation Rigging/Capture Animation Constraint")] + public class CaptureAnimationConstraint : RigConstraint< + CaptureAnimationJob, + CaptureAnimationData, + CaptureAnimationJobBinder>, + IOVRSkeletonConstraint + { + /// + public void RegenerateData() + { + } + } +} diff --git a/Runtime/Scripts/AnimationRigging/CaptureAnimationConstraint.cs.meta b/Runtime/Scripts/AnimationRigging/CaptureAnimationConstraint.cs.meta new file mode 100644 index 00000000..7e2f6577 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/CaptureAnimationConstraint.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d0e49d877e5db8344aea414f59493991 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/CaptureAnimationJob.cs b/Runtime/Scripts/AnimationRigging/CaptureAnimationJob.cs new file mode 100644 index 00000000..d506d5fe --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/CaptureAnimationJob.cs @@ -0,0 +1,158 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using Unity.Collections; +using UnityEngine; +using UnityEngine.Animations; +using UnityEngine.Animations.Rigging; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// The capture animation job, which will write bone local position and rotation data + /// into accessible native arrays. + /// + [Unity.Burst.BurstCompile] + public struct CaptureAnimationJob : IWeightedAnimationJob + { + /// + /// The array of read write transform handles for animator bones. + /// + public NativeArray Bones; + + /// + /// The array of bone local positions to write to. + /// + public NativeArray BoneLocalPositions; + + /// + /// The array of bone local rotations to write to. + /// + public NativeArray BoneLocalRotations; + + /// + /// Job weight. + /// + public FloatProperty jobWeight { get; set; } + + /// + /// Defines what to do when processing the root motion. + /// + /// The animation stream to work on. + public void ProcessRootMotion(AnimationStream stream) { } + + /// + /// Defines what to do when processing the animation. + /// + /// The animation stream to work on. + public void ProcessAnimation(AnimationStream stream) + { + float weight = jobWeight.Get(stream); + if (weight > 0) + { + for (int i = 0; i < Bones.Length; i++) + { + if (!Bones[i].IsValid(stream)) + { + continue; + } + + var bonePosition = Bones[i].GetLocalPosition(stream); + var boneRotation = Bones[i].GetLocalRotation(stream); + BoneLocalPositions[i] = bonePosition; + BoneLocalRotations[i] = boneRotation; + } + } + else + { + for (int i = 0; i < Bones.Length; i++) + { + if (!Bones[i].IsValid(stream)) + { + continue; + } + AnimationRuntimeUtils.PassThrough(stream, Bones[i]); + } + } + } + } + + /// + /// The capture animation job binder. + /// + /// Type to be used for the job. + public class CaptureAnimationJobBinder : AnimationJobBinder + where T : struct, IAnimationJobData, ICaptureAnimationData + { + /// + public override CaptureAnimationJob Create(Animator animator, ref T data, Component component) + { + var job = new CaptureAnimationJob(); + + job.Bones = new NativeArray(data.CurrentPose.Length, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.BoneLocalPositions = new NativeArray(data.CurrentPose.Length, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.BoneLocalRotations = new NativeArray(data.CurrentPose.Length, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + + for (var i = HumanBodyBones.Hips; i < HumanBodyBones.LastBone; i++) + { + var bone = animator.GetBoneTransform(i); + job.Bones[(int)i] = bone != null ? + ReadWriteTransformHandle.Bind(animator, bone) : + new ReadWriteTransformHandle(); + job.BoneLocalPositions[(int)i] = Vector3.zero; + job.BoneLocalRotations[(int)i] = Quaternion.identity; + } + + return job; + } + + /// + public override void Update(CaptureAnimationJob job, ref T data) + { + base.Update(job, ref data); + + var currentAnimatorStateInfo = + data.ConstraintAnimator.GetCurrentAnimatorStateInfo(data.TargetAnimatorLayer); + + // Store the reference pose data, if the current animator state is different. + if (currentAnimatorStateInfo.normalizedTime >= data.ReferencePoseTime && + currentAnimatorStateInfo.normalizedTime > 0.0f) + { + if (data.CurrentAnimatorStateInfoHash != currentAnimatorStateInfo.fullPathHash) + { + data.CurrentAnimatorStateInfoHash = currentAnimatorStateInfo.fullPathHash; + for (var i = HumanBodyBones.Hips; i < HumanBodyBones.LastBone; i++) + { + var referencePoseBone = data.ReferencePose[(int)i]; + var bonePosition = job.BoneLocalPositions[(int)i]; + var boneRotation = job.BoneLocalRotations[(int)i]; + referencePoseBone.LocalPosition = bonePosition; + referencePoseBone.LocalRotation = boneRotation; + data.ReferencePose[(int)i] = referencePoseBone; + } + } + } + + // Store the current pose data. + for (var i = HumanBodyBones.Hips; i < HumanBodyBones.LastBone; i++) + { + var currentPoseBone = data.CurrentPose[(int)i]; + var bonePosition = job.BoneLocalPositions[(int)i]; + var boneRotation = job.BoneLocalRotations[(int)i]; + currentPoseBone.LocalPosition = bonePosition; + currentPoseBone.LocalRotation = boneRotation; + data.CurrentPose[(int)i] = currentPoseBone; + } + } + + /// + public override void Destroy(CaptureAnimationJob job) + { + job.Bones.Dispose(); + job.BoneLocalPositions.Dispose(); + job.BoneLocalRotations.Dispose(); + } + } +} diff --git a/Runtime/Scripts/AnimationRigging/CaptureAnimationJob.cs.meta b/Runtime/Scripts/AnimationRigging/CaptureAnimationJob.cs.meta new file mode 100644 index 00000000..4704b10b --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/CaptureAnimationJob.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c9d282ecafed15740849866dfd8449fe +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/CopyPoseConstraint.cs b/Runtime/Scripts/AnimationRigging/CopyPoseConstraint.cs index 105a784c..de292916 100644 --- a/Runtime/Scripts/AnimationRigging/CopyPoseConstraint.cs +++ b/Runtime/Scripts/AnimationRigging/CopyPoseConstraint.cs @@ -111,7 +111,7 @@ void IAnimationJobData.SetDefaultValues() /// The CopyPose constraint, used to copy the current humanoid animator pose information to be used /// when correcting positions in RetargetingLayer. /// - [DisallowMultipleComponent] + [DisallowMultipleComponent, AddComponentMenu("Movement Animation Rigging/Copy Pose Constraint")] public class CopyPoseConstraint : RigConstraint< CopyPoseJob, CopyPoseData, diff --git a/Runtime/Scripts/AnimationRigging/DeformationCommon.cs b/Runtime/Scripts/AnimationRigging/DeformationCommon.cs new file mode 100644 index 00000000..c1ff9770 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/DeformationCommon.cs @@ -0,0 +1,106 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using System; +using UnityEngine; +using UnityEngine.Animations.Rigging; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// Data types common to all deformation classes. + /// + public static class DeformationCommon + { + /// + /// Information about the distance between two bone transforms. + /// + [Serializable] + public struct BonePairData + { + /// + /// The start bone transform. + /// + [SyncSceneToStream] + public Transform StartBone; + + /// + /// The end bone transform. + /// + [SyncSceneToStream] + public Transform EndBone; + + /// + /// The distance between the start and end bones. + /// + public float Distance; + + /// + /// The proportion of this bone relative to the height. + /// + public float HeightProportion; + + /// + /// The proportion of this bone relative to its limb. + /// + public float LimbProportion; + } + + /// + /// Information about the positioning of an arm. + /// + [Serializable] + public struct ArmPosData + { + /// + /// The shoulder transform. + /// + public Transform ShoulderBone; + + /// + /// The upper arm transform. + /// + public Transform UpperArmBone; + + /// + /// The lower arm transform. + /// + public Transform LowerArmBone; + + /// + /// The hand transform. + /// + public Transform HandBone; + + /// + /// The local position of the shoulder. + /// + public Vector3 ShoulderLocalPos; + + /// + /// The axis of the lower arm to the hand. + /// + public Vector3 LowerArmToHandAxis; + + /// + /// Indicates if initialized or not. + /// + /// + public bool IsInitialized => + UpperArmBone != null && + LowerArmBone != null && + HandBone != null && + LowerArmToHandAxis != Vector3.zero; + + /// + /// Resets all tracked transforms to null. + /// + public void ClearTransformData() + { + ShoulderBone = null; + UpperArmBone = null; + LowerArmBone = null; + HandBone = null; + } + } + } +} diff --git a/Runtime/Scripts/AnimationRigging/DeformationCommon.cs.meta b/Runtime/Scripts/AnimationRigging/DeformationCommon.cs.meta new file mode 100644 index 00000000..cd1bd82c --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/DeformationCommon.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 37efbd77c67da2846a36163d36f46eb7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/DeformationConstraint.cs b/Runtime/Scripts/AnimationRigging/DeformationConstraint.cs index 04a492d4..b45543b7 100644 --- a/Runtime/Scripts/AnimationRigging/DeformationConstraint.cs +++ b/Runtime/Scripts/AnimationRigging/DeformationConstraint.cs @@ -1,180 +1,130 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. using Oculus.Interaction; +using Oculus.Movement.Utils; using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.Animations; using UnityEngine.Animations.Rigging; +using static Oculus.Movement.AnimationRigging.DeformationCommon; namespace Oculus.Movement.AnimationRigging { /// - /// Information about the distance between two bone transforms. + /// Interface for deformation data. /// - [Serializable] - public struct BonePairData + public interface IDeformationData { /// - /// The start bone transform. - /// - [SyncSceneToStream] - public Transform StartBone; - - /// - /// The end bone transform. + /// The OVRCustomSkeleton component for the character. /// - [SyncSceneToStream] - public Transform EndBone; + public OVRCustomSkeleton ConstraintCustomSkeleton { get; } /// - /// The distance between the target and current position before the end bone snaps to the target position. + /// The Animator component for the character. /// - public float SnapThreshold; + public Animator ConstraintAnimator { get; } /// - /// The speed of the bone move towards if enabled. + /// If true, update this job. /// - public float MoveTowardsSpeed; + public bool ShouldUpdate { get; set; } /// - /// The distance between the start and end bones. + /// The array of transforms from the hips to the head bones. /// - public float Distance; + public Transform[] HipsToHeadBones { get; } /// - /// If true, the end bone will move towards the deformation target position. + /// The array of transform targets from the hips to the head bones. /// - public bool IsMoveTowards; - } + public Transform[] HipsToHeadBoneTargets { get; } - /// - /// Information about the positioning of an arm. - /// - [Serializable] - public struct ArmPosData - { /// - /// The shoulder transform. + /// The position info for the bone pairs used for Deformation. /// - public Transform ShoulderBone; + public BonePairData[] BonePairs { get; } /// - /// The upper arm transform. + /// The position info for the left arm. /// - public Transform UpperArmBone; + public ArmPosData LeftArm { get; } /// - /// The lower arm transform. + /// The position info for the right arm. /// - public Transform LowerArmBone; + public ArmPosData RightArm { get; } /// - /// The hand transform. + /// Indicates if left arm data was initialized or not. /// - public Transform HandBone; + public bool LeftArmDataInitialized { get; } /// - /// The weight for the deformation on arms. + /// Indicates if left arm data was initialized or not. /// - public float ArmWeight; + public bool RightArmDataInitialized { get; } /// - /// The weight for the deformation on hands. + /// The type of spine translation correction that should be applied. /// - public float HandWeight; + public int SpineCorrectionType { get; } /// - /// The move towards speed for the arms. + /// The starting scale of the character, taken from the animator transform. /// - public float MoveSpeed; + public Vector3 StartingScale { get; } /// - /// Indicates if initialized or not. + /// The spine correction type int property. /// - /// - public bool IsInitialized - { - get - { - return ShoulderBone != null && - UpperArmBone != null && - LowerArmBone != null && - HandBone != null; - } - } + public string SpineCorrectionTypeIntProperty { get; } /// - /// Resets all tracked transforms to null. + /// The spine alignment weight float property. /// - public void ClearTransformData() - { - ShoulderBone = null; - UpperArmBone = null; - LowerArmBone = null; - HandBone = null; - } - } + public string SpineLowerAlignmentWeightFloatProperty { get; } - /// - /// Interface for deformation data. - /// - public interface IDeformationData - { /// - /// The OVRCustomSkeleton component for the character. + /// The spine upper alignment weight float property. /// - public OVRCustomSkeleton ConstraintCustomSkeleton { get; } + public string SpineUpperAlignmentWeightFloatProperty { get; } /// - /// The Animator component for the character. + /// The chest alignment weight float property. /// - public Animator ConstraintAnimator { get; } + public string ChestAlignmentWeightFloatProperty { get; } /// - /// If true, update this job. + /// The left shoulder weight float property. /// - public bool ShouldUpdate { get; set; } + public string LeftShoulderWeightFloatProperty { get; } /// - /// The array of transforms from the hips to the head bones. + /// The right shoulder weight float property. /// - public Transform[] HipsToHeadBones { get; } + public string RightShoulderWeightFloatProperty { get; } /// - /// The position info for the bone pairs used for deformation. + /// The left arm weight float property. /// - public BonePairData[] BonePairs { get; } + public string LeftArmWeightFloatProperty { get; } /// - /// The position info for the left arm. + /// The right arm weight float property. /// - public ArmPosData LeftArm { get; } + public string RightArmWeightFloatProperty { get; } /// - /// Indicates if left arm data was initialized or not. + /// The left hand weight float property. /// - public bool LeftArmDataInitialized { get; } + public string LeftHandWeightFloatProperty { get; } /// - /// The position info for the right arm. + /// The right hand weight float property. /// - public ArmPosData RightArm { get; } - - /// - /// Indicates if left arm data was initialized or not. - /// - public bool RightArmDataInitialized { get; } - - /// - /// The type of spine translation correction that should be applied. - /// - public DeformationData.SpineTranslationCorrectionType SpineCorrectionType { get; } - - /// - /// The starting scale of the character, taken from the animator transform. - /// - public Vector3 StartingScale { get; } + public string RightHandWeightFloatProperty { get; } /// /// The distance between the hips and head bones. @@ -182,14 +132,14 @@ public interface IDeformationData public float HipsToHeadDistance { get; } /// - /// Allows the spine correction to run only once, assuming the skeleton's positions don't get updated multiple times. + /// Sets up hips to head bones. /// - public bool CorrectSpineOnce { get; } + public void SetUpHipsToHeadBones(); /// - /// Sets up hips and head bones. + /// Sets up hips to head bone targets. /// - public void SetUpHipsAndHeadBones(); + public void SetUpHipsToHeadBoneTargets(Transform setupParent); /// /// Sets up left arm data. @@ -226,9 +176,8 @@ public interface IDeformationData /// /// Deformation data used by the deformation job. /// Implements the deformation data interface. - /// TODO: allow for case where rig can be enabled, this means sync transform arrays must not be null by default /// - [System.Serializable] + [Serializable] public struct DeformationData : IAnimationJobData, IDeformationData { /// @@ -237,13 +186,13 @@ public struct DeformationData : IAnimationJobData, IDeformationData public enum SpineTranslationCorrectionType { /// No spine translation correction applied. - None, - /// Skip the head bone for applying spine translation correction. - SkipHead, - /// Skip the hips bone for applying spine translation correction. - SkipHips, - /// Skip both the head bone and hips bone for applying spine translation correction. - SkipHipsAndHead + None = 0, + /// Accurately place the head bone when applying spine translation correction. + AccurateHead = 1, + /// Accurately place the hips bone when applying spine translation correction. + AccurateHips = 2, + /// Accurately place the hips and head bone when applying spine translation correction. + AccurateHipsAndHead = 3, } /// @@ -260,10 +209,14 @@ bool IDeformationData.ShouldUpdate } /// - SpineTranslationCorrectionType IDeformationData.SpineCorrectionType => _spineTranslationCorrectionType; + int IDeformationData.SpineCorrectionType => _spineTranslationCorrectionType; /// Transform[] IDeformationData.HipsToHeadBones => _hipsToHeadBones; + + /// + Transform[] IDeformationData.HipsToHeadBoneTargets => _hipsToHeadBoneTargets; + /// BonePairData[] IDeformationData.BonePairs => _bonePairData; @@ -271,10 +224,10 @@ bool IDeformationData.ShouldUpdate ArmPosData IDeformationData.LeftArm => _leftArmData; /// - bool IDeformationData.LeftArmDataInitialized => _leftArmData.IsInitialized; + ArmPosData IDeformationData.RightArm => _rightArmData; /// - ArmPosData IDeformationData.RightArm => _rightArmData; + bool IDeformationData.LeftArmDataInitialized => _leftArmData.IsInitialized; /// bool IDeformationData.RightArmDataInitialized => _rightArmData.IsInitialized; @@ -283,109 +236,175 @@ bool IDeformationData.ShouldUpdate Vector3 IDeformationData.StartingScale => _startingScale; /// - float IDeformationData.HipsToHeadDistance => _hipsToHeadDistance; + string IDeformationData.SpineCorrectionTypeIntProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_spineTranslationCorrectionType)); + + /// + string IDeformationData.SpineLowerAlignmentWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_spineLowerAlignmentWeight)); + + /// + string IDeformationData.SpineUpperAlignmentWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_spineUpperAlignmentWeight)); + + /// + string IDeformationData.ChestAlignmentWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_chestAlignmentWeight)); /// - bool IDeformationData.CorrectSpineOnce => _correctSpineOnce; + string IDeformationData.LeftShoulderWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_leftShoulderWeight)); + + /// + string IDeformationData.RightShoulderWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_rightShoulderWeight)); + + /// + string IDeformationData.LeftArmWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_leftArmWeight)); + + /// + string IDeformationData.RightArmWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_rightArmWeight)); + + /// + string IDeformationData.LeftHandWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_leftHandWeight)); + + /// + string IDeformationData.RightHandWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_rightHandWeight)); + + /// + float IDeformationData.HipsToHeadDistance => _hipsToHeadDistance; /// - [NotKeyable, SerializeField] + [NotKeyable, SerializeField, ConditionalHide("_animator", null)] [Tooltip(DeformationDataTooltips.CustomSkeleton)] private OVRCustomSkeleton _customSkeleton; /// - [NotKeyable, SerializeField] + [NotKeyable, SerializeField, ConditionalHide("_customSkeleton", null)] [Tooltip(DeformationDataTooltips.Animator)] private Animator _animator; /// - [NotKeyable, SerializeField] + [SyncSceneToStream, SerializeField, IntAsEnum(typeof(SpineTranslationCorrectionType))] [Tooltip(DeformationDataTooltips.SpineTranslationCorrectionType)] - private SpineTranslationCorrectionType _spineTranslationCorrectionType; + private int _spineTranslationCorrectionType; public SpineTranslationCorrectionType SpineTranslationCorrectionTypeField { - get => _spineTranslationCorrectionType; - set => _spineTranslationCorrectionType = value; + get => (SpineTranslationCorrectionType)_spineTranslationCorrectionType; + set => _spineTranslationCorrectionType = (int)value; } - /// - [NotKeyable, SerializeField] - [Tooltip(DeformationDataTooltips.CorrectSpineOnce)] - private bool _correctSpineOnce; + /// + /// The weight for the spine lower alignment. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.SpineAlignmentWeight)] + private float _spineLowerAlignmentWeight; + public float SpineLowerAlignmentWeight + { + get => _spineLowerAlignmentWeight; + set => _spineLowerAlignmentWeight = value; + } /// - /// Apply deformation on arms. + /// The weight for the spine upper alignment. /// - [NotKeyable, SerializeField] - [Tooltip(DeformationDataTooltips.ApplyToArms)] - private bool _applyToArms; - public bool ApplyToArms + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.SpineAlignmentWeight)] + private float _spineUpperAlignmentWeight; + public float SpineUpperAlignmentWeight { - get => _applyToArms; - set => _applyToArms = value; + get => _spineUpperAlignmentWeight; + set => _spineUpperAlignmentWeight = value; } /// - /// Apply deformation on hands. + /// The weight for the chest alignment. /// - [NotKeyable, SerializeField] - [Tooltip(DeformationDataTooltips.ApplyToHands)] - private bool _applyToHands; - public bool ApplyToHands + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.SpineAlignmentWeight)] + private float _chestAlignmentWeight; + public float ChestAlignmentWeight { - get => _applyToHands; - set => _applyToHands = value; + get => _chestAlignmentWeight; + set => _chestAlignmentWeight = value; } /// - /// If true, the arms will move towards the deformation target position. + /// The weight for the left shoulder deformation. /// - [NotKeyable, SerializeField] - [Tooltip(DeformationDataTooltips.MoveTowardsArms)] - [ConditionalHide("_useMoveTowardsArms", true)] - private bool _useMoveTowardsArms; + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.LeftShoulderWeight)] + private float _leftShoulderWeight; + public float LeftShoulderWeight + { + get => _leftShoulderWeight; + set => _leftShoulderWeight = value; + } /// - /// The distance between the target and current position before the bone snaps to the target position. + /// The weight for the right shoulder deformation. /// - [NotKeyable, SerializeField] - [Tooltip(DeformationDataTooltips.SnapThreshold)] - [ConditionalHide("_useMoveTowardsArms", true)] - private float _snapThreshold; + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.RightShoulderWeight)] + private float _rightShoulderWeight; + public float RightShoulderWeight + { + get => _rightShoulderWeight; + set => _rightShoulderWeight = value; + } /// - /// The weight for the deformation on arms. + /// The weight for the deformation on the left arm. /// - [NotKeyable, SerializeField] - [Tooltip(DeformationDataTooltips.ArmWeight)] - [ConditionalHide("_applyToArms", true)] - private float _armWeight; - public float ArmWeight + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.LeftArmWeight)] + private float _leftArmWeight; + public float LeftArmWeight { - get => _armWeight; - set => _armWeight = value; + get => _leftArmWeight; + set => _leftArmWeight = value; } /// - /// The weight for the deformation on hands. + /// The weight for the deformation on the right arm. /// - [NotKeyable, SerializeField] - [Tooltip(DeformationDataTooltips.HandWeight)] - [ConditionalHide("_applyToHands", true)] - private int _handWeight; - public int HandWeight + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.RightArmWeight)] + private float _rightArmWeight; + public float RightArmWeight { - get => _handWeight; - set => _handWeight = value; + get => _rightArmWeight; + set => _rightArmWeight = value; } /// - /// The move towards speed for the arms. + /// The weight for the deformation on the left hand. /// - [NotKeyable, SerializeField] - [Tooltip(DeformationDataTooltips.ArmMoveSpeed)] - [ConditionalHide("_useMoveTowardsArms", true)] - private float _armMoveSpeed; + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.LeftHandWeight)] + private float _leftHandWeight; + public float LeftHandWeight + { + get => _leftHandWeight; + set => _leftHandWeight = value; + } + + /// + /// The weight for the deformation on the right hand. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.RightHandWeight)] + private float _rightHandWeight; + public float RightHandWeight + { + get => _rightHandWeight; + set => _rightHandWeight = value; + } /// /// Array of transform bones from hips to head. @@ -394,6 +413,13 @@ public int HandWeight [Tooltip(DeformationDataTooltips.HipsToHeadBones)] private Transform[] _hipsToHeadBones; + /// + /// Array of transform bone targets from hips to head. + /// + [SyncSceneToStream, SerializeField] + [Tooltip(DeformationDataTooltips.HipsToHeadBoneTargets)] + private Transform[] _hipsToHeadBoneTargets; + /// /// Left arm data. /// @@ -456,25 +482,11 @@ public bool IsBoneTransformsDataValid() (_animator != null); } - private Transform FindBoneTransform(OVRSkeleton.BoneId boneId) - { - if (_customSkeleton != null) - { - return RiggingUtilities.FindBoneTransformFromCustomSkeleton(_customSkeleton, boneId); - } - - if (_animator != null) - { - return RiggingUtilities.FindBoneTransformAnimator(_animator, boneId); - } - - return null; - } - /// - public void SetUpHipsAndHeadBones() + public void SetUpHipsToHeadBones() { - var hipToHeadBones = new List(); + var hipsToHeadBones = new List(); + _hipsToHeadDistance = 0.0f; for (int boneId = (int)OVRSkeleton.BoneId.Body_Hips; boneId <= (int)OVRSkeleton.BoneId.Body_Head; boneId++) { @@ -483,41 +495,81 @@ public void SetUpHipsAndHeadBones() { continue; } - hipToHeadBones.Add(foundBoneTransform.transform); + hipsToHeadBones.Add(foundBoneTransform.transform); + if (hipsToHeadBones.Count > 1) + { + _hipsToHeadDistance += + Vector3.Distance(hipsToHeadBones[^1].position, hipsToHeadBones[^2].position); + } } + _hipsToHeadBones = hipsToHeadBones.ToArray(); + } + + /// + public void SetUpHipsToHeadBoneTargets(Transform setupParent) + { + var hipsTarget = setupParent.FindChildRecursive("Hips"); + var spineLowerTarget = setupParent.FindChildRecursive("SpineLower"); + var spineUpperTarget = setupParent.FindChildRecursive("SpineUpper"); + var chestTarget = setupParent.FindChildRecursive("Chest"); + var neckTarget = setupParent.FindChildRecursive("Neck"); + var headTarget = setupParent.FindChildRecursive("Head"); + + var hipsToHeadBoneTargets = new List + { + hipsTarget, spineLowerTarget + }; - _hipsToHeadDistance = - Vector3.Distance(hipToHeadBones[0].position, hipToHeadBones[^1].position); - _hipsToHeadBones = hipToHeadBones.ToArray(); + // Add optional bones, based on the length of the original array. + if (_hipsToHeadBones.Length > 4) + { + hipsToHeadBoneTargets.Add(spineUpperTarget); + } + if (_hipsToHeadBones.Length > 5) + { + hipsToHeadBoneTargets.Add(chestTarget); + } + hipsToHeadBoneTargets.Add(neckTarget); + hipsToHeadBoneTargets.Add(headTarget); + + _hipsToHeadBoneTargets = hipsToHeadBoneTargets.ToArray(); } /// public void SetUpLeftArmData() { + var shoulder = FindBoneTransform(OVRSkeleton.BoneId.Body_LeftShoulder); + var upperArmBone = FindBoneTransform(OVRSkeleton.BoneId.Body_LeftArmUpper); + var lowerArmBone = FindBoneTransform(OVRSkeleton.BoneId.Body_LeftArmLower); + var handBone = FindBoneTransform(OVRSkeleton.BoneId.Body_LeftHandWrist); _leftArmData = new ArmPosData() { - ArmWeight = _applyToArms ? _armWeight : 0, - HandWeight = _applyToHands ? _handWeight : 0, - MoveSpeed = _armMoveSpeed, - ShoulderBone = FindBoneTransform(OVRSkeleton.BoneId.Body_LeftShoulder), - UpperArmBone = FindBoneTransform(OVRSkeleton.BoneId.Body_LeftArmUpper), - LowerArmBone = FindBoneTransform(OVRSkeleton.BoneId.Body_LeftArmLower), - HandBone = FindBoneTransform(OVRSkeleton.BoneId.Body_LeftHandWrist) + ShoulderBone = shoulder, + UpperArmBone = upperArmBone, + LowerArmBone = lowerArmBone, + HandBone = handBone, + ShoulderLocalPos = shoulder != null ? shoulder.localPosition : Vector3.zero, + LowerArmToHandAxis = + lowerArmBone.InverseTransformDirection(handBone.position - lowerArmBone.position).normalized }; } /// public void SetUpRightArmData() { + var shoulder = FindBoneTransform(OVRSkeleton.BoneId.Body_RightShoulder); + var upperArmBone = FindBoneTransform(OVRSkeleton.BoneId.Body_RightArmUpper); + var lowerArmBone = FindBoneTransform(OVRSkeleton.BoneId.Body_RightArmLower); + var handBone = FindBoneTransform(OVRSkeleton.BoneId.Body_RightHandWrist); _rightArmData = new ArmPosData() { - ArmWeight = _applyToArms ? _armWeight : 0, - HandWeight = _applyToHands ? _handWeight : 0, - MoveSpeed = _armMoveSpeed, - ShoulderBone = FindBoneTransform(OVRSkeleton.BoneId.Body_RightShoulder), - UpperArmBone = FindBoneTransform(OVRSkeleton.BoneId.Body_RightArmUpper), - LowerArmBone = FindBoneTransform(OVRSkeleton.BoneId.Body_RightArmLower), - HandBone = FindBoneTransform(OVRSkeleton.BoneId.Body_RightHandWrist) + ShoulderBone = shoulder, + UpperArmBone = upperArmBone, + LowerArmBone = lowerArmBone, + HandBone = handBone, + ShoulderLocalPos = shoulder != null ? shoulder.localPosition : Vector3.zero, + LowerArmToHandAxis = + lowerArmBone.InverseTransformDirection(handBone.position - lowerArmBone.position).normalized }; } @@ -533,142 +585,125 @@ public void SetUpBonePairs() if (!_leftArmData.IsInitialized) { Debug.LogError("Please set up left arm data before trying to " + - "set up bone pairs"); + "set up bone pairs"); return; } if (!_rightArmData.IsInitialized) { Debug.LogError("Please set up right arm data before trying to " + - "set up bone pairs"); + "set up bone pairs"); return; } - // Setup bone pairs + + // Setup bone pairs for hips to head bones. var bonePairs = new List(); for (int i = 0; i < _hipsToHeadBones.Length - 1; i++) { var bonePair = new BonePairData { StartBone = _hipsToHeadBones[i], - EndBone = _hipsToHeadBones[i + 1], - SnapThreshold = 0, - MoveTowardsSpeed = 0, - Distance = Vector3.Distance( - _hipsToHeadBones[i + 1].position, - _hipsToHeadBones[i].position), - IsMoveTowards = false + EndBone = _hipsToHeadBones[i + 1] }; bonePairs.Add(bonePair); } + // Check for optional bones and update accordingly. var chestBone = FindBoneTransform(OVRSkeleton.BoneId.Body_Chest); - var chestBonePos = chestBone.position; - var leftShoulderBonePos = _leftArmData.ShoulderBone.position; - var rightShoulderBonePos = _rightArmData.ShoulderBone.position; - var leftUpperArmBonePos = _leftArmData.UpperArmBone.position; - var rightUpperArmBonePos = _rightArmData.UpperArmBone.position; - var leftLowerArmBonePos = _leftArmData.LowerArmBone.position; - var rightLowerArmBonePos = _rightArmData.LowerArmBone.position; + var spineUpperBone = FindBoneTransform(OVRSkeleton.BoneId.Body_SpineUpper); + var spineLowerBone = FindBoneTransform(OVRSkeleton.BoneId.Body_SpineLower); + var highestSpineBone = chestBone; + if (chestBone == null) + { + Debug.LogWarning($"Did not find the {HumanBodyBones.UpperChest} bone in {_animator}. The deformation job result will be affected."); + highestSpineBone = spineUpperBone; + } + if (spineUpperBone == null) + { + Debug.LogWarning($"Did not find the {HumanBodyBones.Chest} bone in {_animator}. The deformation job result will be affected."); + highestSpineBone = spineLowerBone; + } + var leftShoulderBone = _leftArmData.ShoulderBone; + var rightShoulderBone = _rightArmData.ShoulderBone; - if (_applyToArms) + // Chest to shoulder bones. + if (leftShoulderBone != null) { - // Chest to shoulder bones. - bonePairs.Add(new BonePairData - { - StartBone = chestBone, - EndBone = _leftArmData.ShoulderBone, - SnapThreshold = _snapThreshold, - MoveTowardsSpeed = _leftArmData.MoveSpeed, - Distance = Vector3.Distance( - leftShoulderBonePos, - chestBonePos), - IsMoveTowards = false - }); bonePairs.Add(new BonePairData { - StartBone = chestBone, - EndBone = _rightArmData.ShoulderBone, - SnapThreshold = _snapThreshold, - MoveTowardsSpeed = _rightArmData.MoveSpeed, - Distance = Vector3.Distance( - rightShoulderBonePos, - chestBonePos), - IsMoveTowards = false + StartBone = highestSpineBone, EndBone = leftShoulderBone, }); + } + else + { + Debug.LogWarning($"Did not find the {HumanBodyBones.LeftShoulder} bone in {_animator}. The deformation job result will be affected."); + } - // Shoulder to upper arm bones. - bonePairs.Add(new BonePairData - { - StartBone = _leftArmData.ShoulderBone, - EndBone = _leftArmData.UpperArmBone, - SnapThreshold = _snapThreshold, - MoveTowardsSpeed = _leftArmData.MoveSpeed, - Distance = Vector3.Distance( - leftUpperArmBonePos, - leftShoulderBonePos), - IsMoveTowards = _useMoveTowardsArms - }); + if (rightShoulderBone != null) + { bonePairs.Add(new BonePairData { - StartBone = _rightArmData.ShoulderBone, - EndBone = _rightArmData.UpperArmBone, - SnapThreshold = _snapThreshold, - MoveTowardsSpeed = _rightArmData.MoveSpeed, - Distance = Vector3.Distance( - rightUpperArmBonePos, - rightShoulderBonePos), - IsMoveTowards = _useMoveTowardsArms + StartBone = highestSpineBone, EndBone = rightShoulderBone, }); + } + else + { + Debug.LogWarning($"Did not find the {HumanBodyBones.RightShoulder} bone in {_animator}. The deformation job result will be affected."); + } - // Upper arm to lower arm bones. - bonePairs.Add(new BonePairData + // Shoulder to upper arm bones. + bonePairs.Add(new BonePairData + { + StartBone = leftShoulderBone != null ? leftShoulderBone : highestSpineBone, + EndBone = _leftArmData.UpperArmBone + }); + bonePairs.Add(new BonePairData + { + StartBone = rightShoulderBone != null ? rightShoulderBone : highestSpineBone, + EndBone = _rightArmData.UpperArmBone + }); + + // Upper arm to lower arm bones. + bonePairs.Add(new BonePairData + { + StartBone = _leftArmData.UpperArmBone, EndBone = _leftArmData.LowerArmBone + }); + bonePairs.Add(new BonePairData + { + StartBone = _rightArmData.UpperArmBone, EndBone = _rightArmData.LowerArmBone + }); + + // Lower arm to hand bones. + bonePairs.Add(new BonePairData + { + StartBone = _leftArmData.LowerArmBone, EndBone = _leftArmData.HandBone + }); + bonePairs.Add(new BonePairData + { + StartBone = _rightArmData.LowerArmBone, EndBone = _rightArmData.HandBone + }); + + // Calculate original bone pair lengths. + for (int i = 0; i < bonePairs.Count; i++) + { + var bonePair = bonePairs[i]; + if (bonePair.StartBone != null && bonePair.EndBone != null) { - StartBone = _leftArmData.UpperArmBone, - EndBone = _leftArmData.LowerArmBone, - SnapThreshold = _snapThreshold, - MoveTowardsSpeed = _leftArmData.MoveSpeed, - Distance = Vector3.Distance( - leftLowerArmBonePos, - leftUpperArmBonePos), - IsMoveTowards = _useMoveTowardsArms - }); - bonePairs.Add(new BonePairData + bonePair.Distance = Vector3.Distance(bonePair.EndBone.position, bonePair.StartBone.position); + } + else { - StartBone = _rightArmData.UpperArmBone, - EndBone = _rightArmData.LowerArmBone, - SnapThreshold = _snapThreshold, - MoveTowardsSpeed = _rightArmData.MoveSpeed, - Distance = Vector3.Distance( - rightLowerArmBonePos, - rightUpperArmBonePos), - IsMoveTowards = _useMoveTowardsArms - }); + Debug.LogWarning($"Missing bones in bone pair! Start Bone: {bonePair.StartBone}, End Bone: {bonePair.EndBone}"); + } + bonePairs[i] = bonePair; } - if (_applyToHands) + // Calculate proportions for spine. + for (int i = 0; i < _hipsToHeadBones.Length - 1; i++) { - // Lower arm to hand bones. - bonePairs.Add(new BonePairData - { - StartBone = _leftArmData.LowerArmBone, - EndBone = _leftArmData.HandBone, - SnapThreshold = _snapThreshold, - MoveTowardsSpeed = _leftArmData.MoveSpeed, - Distance = Vector3.Distance( - _leftArmData.HandBone.position, - leftLowerArmBonePos), - IsMoveTowards = _useMoveTowardsArms - }); - bonePairs.Add(new BonePairData - { - StartBone = _rightArmData.LowerArmBone, - EndBone = _rightArmData.HandBone, - SnapThreshold = _snapThreshold, - MoveTowardsSpeed = _rightArmData.MoveSpeed, - Distance = Vector3.Distance( - _rightArmData.HandBone.position, - rightLowerArmBonePos), - IsMoveTowards = _useMoveTowardsArms - }); + var bonePair = bonePairs[i]; + bonePair.HeightProportion = bonePair.Distance / _hipsToHeadDistance; + bonePair.LimbProportion = bonePair.Distance / _hipsToHeadDistance; + bonePairs[i] = bonePair; } _bonePairData = bonePairs.ToArray(); @@ -695,10 +730,31 @@ public void InitializeStartingScale() /// public void ClearTransformData() { + _bonePairData = null; _hipsToHeadBones = null; + _hipsToHeadBoneTargets = null; _leftArmData.ClearTransformData(); _rightArmData.ClearTransformData(); - _bonePairData = null; + } + + /// + /// Find the transform for a specific boneId. + /// + /// The boneId to be found. + /// The bone transform. + private Transform FindBoneTransform(OVRSkeleton.BoneId boneId) + { + if (_customSkeleton != null) + { + return RiggingUtilities.FindBoneTransformFromCustomSkeleton(_customSkeleton, boneId); + } + + if (_animator != null) + { + return RiggingUtilities.FindBoneTransformAnimator(_animator, boneId, false); + } + + return null; } bool IAnimationJobData.IsValid() @@ -715,20 +771,16 @@ bool IAnimationJobData.IsValid() return false; } - if (_hipsToHeadBones == null || _hipsToHeadBones.Length == 0) + if (_hipsToHeadBones == null || _hipsToHeadBones.Length == 0 || _hipsToHeadBoneTargets.Length == 0) { Debug.LogError("Hips to head bones not set up."); return false; } - if (_applyToArms) + if (!_leftArmData.IsInitialized || !_rightArmData.IsInitialized) { - if (_leftArmData.ShoulderBone == null || _leftArmData.UpperArmBone == null || _leftArmData.LowerArmBone == null || - _rightArmData.ShoulderBone == null || _rightArmData.UpperArmBone == null || _rightArmData.LowerArmBone == null) - { - Debug.LogError("Arm data not set up."); - return false; - } + Debug.LogError("Arm data not set up."); + return false; } return true; @@ -737,33 +789,40 @@ bool IAnimationJobData.IsValid() void IAnimationJobData.SetDefaultValues() { _animator = null; - _spineTranslationCorrectionType = SpineTranslationCorrectionType.None; - _applyToArms = false; - _useMoveTowardsArms = false; - _correctSpineOnce = false; - _snapThreshold = 0.1f; - _startingScale = Vector3.one; + _customSkeleton = null; + _spineTranslationCorrectionType = (int)SpineTranslationCorrectionType.None; + + _spineLowerAlignmentWeight = 0.0f; + _spineUpperAlignmentWeight = 0.0f; + _chestAlignmentWeight = 0.0f; + _leftShoulderWeight = 0.0f; + _rightShoulderWeight = 0.0f; + _leftArmWeight = 0.0f; + _rightArmWeight = 0.0f; + _leftHandWeight = 0.0f; + _rightHandWeight = 0.0f; + + _hipsToHeadBones = null; + _hipsToHeadBoneTargets = null; _leftArmData = new ArmPosData(); _rightArmData = new ArmPosData(); _bonePairData = null; - _hipsToHeadBones = null; + + _startingScale = Vector3.one; + _hipsToHeadDistance = 0.0f; } } /// /// Deformation constraint. /// - [DisallowMultipleComponent] + [DisallowMultipleComponent, AddComponentMenu("Movement Animation Rigging/Deformation Constraint")] public class DeformationConstraint : RigConstraint< DeformationJob, DeformationData, DeformationJobBinder>, IOVRSkeletonConstraint { - private void Start() - { - } - /// public void RegenerateData() { diff --git a/Runtime/Scripts/AnimationRigging/DeformationJob.cs b/Runtime/Scripts/AnimationRigging/DeformationJob.cs index b2363c1d..e023642e 100644 --- a/Runtime/Scripts/AnimationRigging/DeformationJob.cs +++ b/Runtime/Scripts/AnimationRigging/DeformationJob.cs @@ -8,7 +8,7 @@ namespace Oculus.Movement.AnimationRigging { /// - /// The Deformation job. + /// The deformation job. /// [Unity.Burst.BurstCompile] public struct DeformationJob : IWeightedAnimationJob @@ -24,22 +24,26 @@ public struct BoneAnimationData public float Distance; /// - /// The distance between the target and current position before - /// the current position snaps to the target. + /// The proportion of this bone relative to the height. /// - public float SnapThreshold; + public float HeightProportion; /// - /// The speed to move towards the target position + /// The proportion of this bone relative to its limb. /// - public float MoveTowardsSpeed; - - /// - /// True if it should be moving towards the target position. - /// - public bool IsMoveTowards; + public float LimbProportion; } + /// + /// The ReadWrite transform handle for the left shoulder bone. + /// + public ReadWriteTransformHandle LeftShoulderBone; + + /// + /// The ReadWrite transform handle for the right shoulder bone. + /// + public ReadWriteTransformHandle RightShoulderBone; + /// /// The ReadWrite transform handle for the left upper arm bone. /// @@ -70,11 +74,36 @@ public struct BoneAnimationData /// public ReadWriteTransformHandle RightHandBone; + /// + /// The ReadWrite transform handle for the hips bone. + /// + public ReadWriteTransformHandle HipsBone; + + /// + /// The ReadWrite transform handle for the head bone. + /// + public ReadWriteTransformHandle HeadBone; + /// /// The inclusive array of bones from the hips to the head. /// public NativeArray HipsToHeadBones; + /// + /// The inclusive array of bone targets from the hips to the head. + /// + public NativeArray HipsToHeadBoneTargets; + + /// + /// The array of upper body offsets. + /// + public NativeArray UpperBodyOffsets; + + /// + /// The array of upper body target positions. + /// + public NativeArray UpperBodyTargetPositions; + /// /// The array of start bones for deformation. /// @@ -95,75 +124,114 @@ public struct BoneAnimationData /// public NativeArray BoneDirections; - /// - /// The array of current animated bone positions. - /// - public NativeArray BonePositions; - /// /// The array containing 1 element for the current scale ratio. /// public NativeArray ScaleFactor; /// - /// The array containing 1 element for the current delta time. + /// The spine correction type. /// - public NativeArray DeltaTime; + public IntProperty SpineCorrectionType; /// - /// The spine correction type. + /// The weight for the spine lower fixup. /// - public DeformationData.SpineTranslationCorrectionType SpineCorrectionType; + public FloatProperty SpineLowerAlignmentWeight; /// - /// Allows the spine correction to run only once, assuming the skeleton's - /// positions don't get updated multiple times. + /// The weight for the spine upper fixup. /// - public bool CorrectSpineOnce; + public FloatProperty SpineUpperAlignmentWeight; /// - /// The index of the hip bone in the hips to head bones array. + /// The weight for the chest fixup. /// - public int HipsBonesIndex; + public FloatProperty ChestAlignmentWeight; /// - /// The index of the head bone in the hips to head bones array. + /// The weight of the left shoulder offset. /// - public int HeadBonesIndex; + public FloatProperty LeftShoulderOffsetWeight; /// - /// The distance of the hip bone to the head bone. + /// The weight of the right shoulder offset. /// - public float HipsToHeadDistance; + public FloatProperty RightShoulderOffsetWeight; /// /// The weight for the left arm offset. /// - public float LeftArmOffsetWeight; + public FloatProperty LeftArmOffsetWeight; /// /// The weight for the right arm offset. /// - public float RightArmOffsetWeight; + public FloatProperty RightArmOffsetWeight; /// /// The weight for the left hand offset. /// - public float LeftHandOffsetWeight; + public FloatProperty LeftHandOffsetWeight; /// /// The weight for the right hand offset. /// - public float RightHandOffsetWeight; + public FloatProperty RightHandOffsetWeight; + + /// + /// The local position of the left shoulder. + /// + public Vector3 LeftShoulderOriginalLocalPos; + + /// + /// The local position of the right shoulder. + /// + public Vector3 RightShoulderOriginalLocalPos; + + /// + /// The lower arm to hand axis for the left arm. + /// + public Vector3 LeftLowerArmToHandAxis; + + /// + /// The lower arm to hand axis for the right arm. + /// + public Vector3 RightLowerArmToHandAxis; + + /// + /// The hips index in the bone pair data. + /// + public int HipsIndex; + + /// + /// The spine index in the bone pair data. + /// + public int SpineLowerIndex; + + /// + /// The spine upper index in the bone pair data. + /// + public int SpineUpperIndex; + + /// + /// The chest index in the bone pair data. + /// + public int ChestIndex; + + /// + /// The head index in the bone pair data. + /// + public int HeadIndex; - private Vector3 _originalLeftUpperArmPos; - private Vector3 _originalRightUpperArmPos; - private Vector3 _originalLeftLowerArmPos; - private Vector3 _originalRightLowerArmPos; - private Vector3 _originalLeftHandPos; - private Vector3 _originalRightHandPos; - private bool _correctedSpine; - private bool _initializedBonePositions; + private Vector3 _targetHipsPos; + private Vector3 _targetHeadPos; + private Vector3 _preDeformationLeftUpperArmPos; + private Vector3 _preDeformationRightUpperArmPos; + private Vector3 _preDeformationLeftLowerArmPos; + private Vector3 _preDeformationRightLowerArmPos; + private Vector3 _preDeformationLeftHandPos; + private Vector3 _preDeformationRightHandPos; /// public FloatProperty jobWeight { get; set; } @@ -175,36 +243,34 @@ public void ProcessRootMotion(AnimationStream stream) { } public void ProcessAnimation(AnimationStream stream) { float weight = jobWeight.Get(stream); - if (weight > 0f && DeltaTime[0] > 0f) + if (weight > 0f) { if (StartBones.Length == 0 || EndBones.Length == 0) { return; } - _originalLeftUpperArmPos = LeftUpperArmBone.GetPosition(stream); - _originalRightUpperArmPos = RightUpperArmBone.GetPosition(stream); - _originalLeftLowerArmPos = LeftLowerArmBone.GetPosition(stream); - _originalRightLowerArmPos = RightLowerArmBone.GetPosition(stream); - _originalLeftHandPos = LeftHandBone.GetPosition(stream); - _originalRightHandPos = RightHandBone.GetPosition(stream); - for (int i = 0; i < BoneDirections.Length; i++) + _preDeformationLeftUpperArmPos = LeftUpperArmBone.GetPosition(stream); + _preDeformationRightUpperArmPos = RightUpperArmBone.GetPosition(stream); + _preDeformationLeftLowerArmPos = LeftLowerArmBone.GetPosition(stream); + _preDeformationRightLowerArmPos = RightLowerArmBone.GetPosition(stream); + _preDeformationLeftHandPos = LeftHandBone.GetPosition(stream); + _preDeformationRightHandPos = RightHandBone.GetPosition(stream); + + _targetHipsPos = HipsToHeadBoneTargets[HipsIndex].GetPosition(stream); + _targetHeadPos = HipsToHeadBoneTargets[^1].GetPosition(stream); + if (SpineLowerAlignmentWeight.Get(stream) != 0.0f || + SpineUpperAlignmentWeight.Get(stream) != 0.0f || + ChestAlignmentWeight.Get(stream) != 0.0f) { - var startBone = StartBones[i]; - var endBone = EndBones[i]; - BoneDirections[i] = (endBone.GetPosition(stream) - startBone.GetPosition(stream)).normalized; - StartBones[i] = startBone; - EndBones[i] = endBone; + AlignSpine(stream, weight); } - if (SpineCorrectionType != DeformationData.SpineTranslationCorrectionType.None && - (!CorrectSpineOnce || (CorrectSpineOnce && !_correctedSpine))) - { - ProcessSpineCorrection(stream, weight); - _correctedSpine = true; - } - ProcessDeformation(stream, weight); - ProcessArms(stream, weight); - ProcessHands(stream, weight); + InterpolateShoulders(stream, weight); + UpdateBoneDirections(stream); + EnforceOriginalSkeletalProportions(stream, weight); + ApplySpineCorrection(stream, weight); + InterpolateArms(stream, weight); + InterpolateHands(stream, weight); } else { @@ -212,10 +278,12 @@ public void ProcessAnimation(AnimationStream stream) { AnimationRuntimeUtils.PassThrough(stream, HipsToHeadBones[i]); } + for (int i = 0; i < StartBones.Length; ++i) { AnimationRuntimeUtils.PassThrough(stream, StartBones[i]); } + for (int i = 0; i < EndBones.Length; ++i) { AnimationRuntimeUtils.PassThrough(stream, EndBones[i]); @@ -223,32 +291,237 @@ public void ProcessAnimation(AnimationStream stream) } } - private void ProcessSpineCorrection(AnimationStream stream, float weight) + /// + /// Align the spine positions with the tracked spine positions, + /// adding an offset on spine bones to align with the hips. + /// + /// + /// + private void AlignSpine(AnimationStream stream, float weight) { - var currentDirection = HipsToHeadBones[HipsBonesIndex].GetPosition(stream) - - HipsToHeadBones[HeadBonesIndex].GetPosition(stream); - var offset = currentDirection.normalized * - (HipsToHeadDistance - currentDirection.magnitude) / - HipsToHeadBones.Length; - for (int i = 0; i < HipsToHeadBones.Length; i++) + var spineLowerOffset = Vector3.zero; + var spineUpperOffset = Vector3.zero; + var chestOffset = Vector3.zero; + + if (HipsToHeadBoneTargets[SpineLowerIndex].IsValid(stream)) { - if ((SpineCorrectionType == DeformationData.SpineTranslationCorrectionType.SkipHead && i == HeadBonesIndex) || - (SpineCorrectionType == DeformationData.SpineTranslationCorrectionType.SkipHips && i == HipsBonesIndex) || - (SpineCorrectionType == DeformationData.SpineTranslationCorrectionType.SkipHipsAndHead && - (i == HeadBonesIndex || i == HipsBonesIndex))) + spineLowerOffset = HipsToHeadBoneTargets[HipsIndex].GetPosition(stream) - + HipsToHeadBoneTargets[SpineLowerIndex].GetPosition(stream); + spineLowerOffset.y = 0.0f; + } + + if (SpineUpperIndex > 0 && HipsToHeadBoneTargets[SpineUpperIndex].IsValid(stream)) + { + spineUpperOffset = (HipsToHeadBoneTargets[HipsIndex].GetPosition(stream) - + HipsToHeadBoneTargets[SpineUpperIndex].GetPosition(stream)) * 0.5f + + (HipsToHeadBones[HeadIndex - 1].GetPosition(stream) - + HipsToHeadBoneTargets[SpineUpperIndex].GetPosition(stream)) * 0.5f; + spineUpperOffset.y = 0.0f; + } + + if (ChestIndex > 0 && HipsToHeadBoneTargets[ChestIndex].IsValid(stream)) + { + chestOffset = (HipsToHeadBoneTargets[HipsIndex].GetPosition(stream) - + HipsToHeadBoneTargets[ChestIndex].GetPosition(stream)) * 0.25f + + (HipsToHeadBones[HeadIndex - 1].GetPosition(stream) - + HipsToHeadBoneTargets[ChestIndex].GetPosition(stream)) * 0.75f; + chestOffset.y = 0.0f; + } + + for (int i = SpineLowerIndex; i <= HeadIndex; i++) + { + var targetBone = HipsToHeadBoneTargets[i]; + var originalBone = HipsToHeadBones[i]; + if (targetBone.IsValid(stream)) { - continue; + var spineCorrectionWeight = weight; + var spineOffset = Vector3.zero; + + if (i == SpineLowerIndex) + { + spineOffset = Vector3.Lerp(Vector3.zero, spineLowerOffset, SpineLowerAlignmentWeight.Get(stream) * weight);; + } + if (i == SpineUpperIndex) + { + spineOffset = Vector3.Lerp(Vector3.zero, spineUpperOffset, SpineUpperAlignmentWeight.Get(stream) * weight); + } + if (i == ChestIndex) + { + spineOffset = Vector3.Lerp(Vector3.zero, chestOffset, ChestAlignmentWeight.Get(stream) * weight); + } + + var targetPos = targetBone.GetPosition(stream) + spineOffset; + var originalPos = originalBone.GetPosition(stream); + targetPos.y = originalPos.y; + targetPos = Vector3.Lerp(originalPos, targetPos, spineCorrectionWeight); + originalBone.SetPosition(stream, targetPos); } + HipsToHeadBoneTargets[i] = targetBone; + HipsToHeadBones[i] = originalBone; + } + } + + /// + /// Optionally interpolate from the current position to the original local position of the shoulders, + /// as the tracked positions may be mismatched. + /// + /// + /// + private void InterpolateShoulders(AnimationStream stream, float weight) + { + if (LeftShoulderBone.IsValid(stream)) + { + var leftShoulderLocalPos = LeftShoulderBone.GetLocalPosition(stream); + var leftShoulderOffset = Vector3.Lerp(Vector3.zero, + LeftShoulderOriginalLocalPos - leftShoulderLocalPos, weight * LeftShoulderOffsetWeight.Get(stream)); + LeftShoulderBone.SetLocalPosition(stream, leftShoulderLocalPos + leftShoulderOffset); + } + + if (RightShoulderBone.IsValid(stream)) + { + var rightShoulderLocalPos = RightShoulderBone.GetLocalPosition(stream); + var rightShoulderOffset = Vector3.Lerp(Vector3.zero, + RightShoulderOriginalLocalPos - rightShoulderLocalPos, weight * RightShoulderOffsetWeight.Get(stream)); + RightShoulderBone.SetLocalPosition(stream, rightShoulderLocalPos + rightShoulderOffset); + } + } + + /// + /// Update the bone directions between each bone pair. + /// + /// + private void UpdateBoneDirections(AnimationStream stream) + { + for (int i = 0; i < BoneDirections.Length; i++) + { + var startBone = StartBones[i]; + var endBone = EndBones[i]; + BoneDirections[i] = (endBone.GetPosition(stream) - startBone.GetPosition(stream)).normalized; + StartBones[i] = startBone; + EndBones[i] = endBone; + } + } + + /// + /// Applies spine correction, depending on the type picked. + /// + /// + /// + private void ApplySpineCorrection(AnimationStream stream, float weight) + { + // First, adjust the positions of the body based on the correction type. + var spineCorrectionType = (DeformationData.SpineTranslationCorrectionType) + SpineCorrectionType.Get(stream); + + if (spineCorrectionType == DeformationData.SpineTranslationCorrectionType.None) + { + ApplyNoSpineCorrection(stream, weight); + } + + if (spineCorrectionType == DeformationData.SpineTranslationCorrectionType.AccurateHead) + { + ApplyAccurateHeadSpineCorrection(stream, weight); + } + + if (spineCorrectionType == DeformationData.SpineTranslationCorrectionType.AccurateHips || + spineCorrectionType == DeformationData.SpineTranslationCorrectionType.AccurateHipsAndHead) + { + ApplyAccurateHipsSpineCorrection(stream, weight); + } + + if (spineCorrectionType == DeformationData.SpineTranslationCorrectionType.AccurateHipsAndHead) + { + ApplyAccurateHipsAndHeadSpineCorrection(stream, weight); + } + } + + /// + /// Apply no spine correction. + /// + /// + /// + private void ApplyNoSpineCorrection(AnimationStream stream, float weight) + { + } + + /// + /// Keep the head accurate, adjusting the proportions of the body. + /// + /// + /// + private void ApplyAccurateHeadSpineCorrection(AnimationStream stream, float weight) + { + var headOffset = _targetHeadPos - HeadBone.GetPosition(stream); + + // Upper body. + UpperBodyOffsets[HipsIndex] = headOffset; + UpperBodyTargetPositions[HipsIndex] = HipsBone.GetPosition(stream) + + Vector3.Lerp(Vector3.zero, UpperBodyOffsets[HipsIndex], weight); + for (int i = SpineLowerIndex; i <= HeadIndex; i++) + { + var bone = HipsToHeadBones[i]; + UpperBodyOffsets[i] = headOffset; + UpperBodyTargetPositions[i] = bone.GetPosition(stream) + + Vector3.Lerp(Vector3.zero, UpperBodyOffsets[i], weight); + } + + // Set bone positions. + for (int i = HipsIndex; i <= HeadIndex; i++) + { + var bone = HipsToHeadBones[i]; + bone.SetPosition(stream, UpperBodyTargetPositions[i]); + HipsToHeadBones[i] = bone; + } + HeadBone.SetPosition(stream, _targetHeadPos); + } + + /// + /// Keep the hips accurate. + /// + /// + /// + private void ApplyAccurateHipsSpineCorrection(AnimationStream stream, float weight) + { + HipsBone.SetPosition(stream, _targetHipsPos); + } + + /// + /// Keep the hips and head accurate, adjusting the proportions of the upper body. + /// + /// + /// + private void ApplyAccurateHipsAndHeadSpineCorrection(AnimationStream stream, float weight) + { + // Calculate the offset between the current head and the tracked head to be undone by the hips + // and the rest of the spine. + var headOffset = _targetHeadPos - HeadBone.GetPosition(stream); + + UpperBodyOffsets[HipsIndex] = headOffset * BoneAnimData[HipsIndex].LimbProportion; + for (int i = SpineLowerIndex; i <= HeadIndex; i++) + { + var bone = HipsToHeadBones[i]; + UpperBodyOffsets[i] = UpperBodyOffsets[i - 1] + headOffset * BoneAnimData[i].LimbProportion; + UpperBodyTargetPositions[i] = bone.GetPosition(stream) + + Vector3.Lerp(Vector3.zero, UpperBodyOffsets[i], weight); + } + HipsBone.SetPosition(stream, _targetHipsPos); + for (int i = SpineLowerIndex; i <= HeadIndex; i++) + { var bone = HipsToHeadBones[i]; - var currentPosition = bone.GetPosition(stream); - var targetPosition = currentPosition + Vector3.Scale(offset, ScaleFactor[0]); - bone.SetPosition(stream, Vector3.Lerp(currentPosition, targetPosition, weight)); + bone.SetPosition(stream, UpperBodyTargetPositions[i]); HipsToHeadBones[i] = bone; } + HeadBone.SetPosition(stream, _targetHeadPos); } - private void ProcessDeformation(AnimationStream stream, float weight) + /// + /// For each bone pair, where a bone pair has a start and end bone, enforce its original proportion by using + /// the tracked direction of the bone, but the original size. + /// + /// The animation stream. + /// The weight of this operation. + private void EnforceOriginalSkeletalProportions(AnimationStream stream, float weight) { for (int i = 0; i < StartBones.Length; i++) { @@ -257,65 +530,69 @@ private void ProcessDeformation(AnimationStream stream, float weight) var startPos = startBone.GetPosition(stream); var endPos = endBone.GetPosition(stream); var data = BoneAnimData[i]; - var targetPos = startPos + Vector3.Scale(BoneDirections[i] * data.Distance, ScaleFactor[0]); - - // Bone positions are invalid on initialization, which would cause - // MoveTowards to fail. Initialize to proper values on first frame. - if (!_initializedBonePositions) - { - BonePositions[i] = startPos; - } - if (Vector3.Distance(targetPos, BonePositions[i]) >= data.SnapThreshold) - { - BonePositions[i] = targetPos; - } - if (data.IsMoveTowards) - { - BonePositions[i] = Vector3.MoveTowards(BonePositions[i], targetPos, - DeltaTime[0] * data.MoveTowardsSpeed); - } - else - { - BonePositions[i] = targetPos; - } - endBone.SetPosition(stream, Vector3.Lerp(endPos, BonePositions[i], weight)); + var targetPos = startPos + Vector3.Scale(BoneDirections[i] * data.Distance, ScaleFactor[0]); + endBone.SetPosition(stream, Vector3.Lerp(endPos, targetPos, weight)); StartBones[i] = startBone; EndBones[i] = endBone; } - - _initializedBonePositions = true; } - private void ProcessArms(AnimationStream stream, float weight) + /// + /// Interpolates the arm positions from the pre-deformation positions to the positions after skeletal + /// proportions are enforced. The hand positions can be incorrect after this function. + /// + /// The animation stream. + /// The weight of this operation. + private void InterpolateArms(AnimationStream stream, float weight) { var leftLowerArmPos = LeftLowerArmBone.GetPosition(stream); var rightLowerArmPos = RightLowerArmBone.GetPosition(stream); var leftUpperArmPos = LeftUpperArmBone.GetPosition(stream); var rightUpperArmPos = RightUpperArmBone.GetPosition(stream); + var leftArmOffsetWeight = weight * LeftArmOffsetWeight.Get(stream); + var rightArmOffsetWeight = weight * RightArmOffsetWeight.Get(stream); + LeftUpperArmBone.SetPosition(stream, - Vector3.Lerp(_originalLeftUpperArmPos, leftUpperArmPos, weight * LeftArmOffsetWeight)); + Vector3.Lerp(_preDeformationLeftUpperArmPos, leftUpperArmPos, leftArmOffsetWeight)); RightUpperArmBone.SetPosition(stream, - Vector3.Lerp(_originalRightUpperArmPos,rightUpperArmPos, weight * RightArmOffsetWeight)); + Vector3.Lerp(_preDeformationRightUpperArmPos, rightUpperArmPos, rightArmOffsetWeight)); LeftLowerArmBone.SetPosition(stream, - Vector3.Lerp(_originalLeftLowerArmPos, leftLowerArmPos, weight * LeftArmOffsetWeight)); + Vector3.Lerp(_preDeformationLeftLowerArmPos, leftLowerArmPos, leftArmOffsetWeight)); RightLowerArmBone.SetPosition(stream, - Vector3.Lerp(_originalRightLowerArmPos, rightLowerArmPos, weight * RightArmOffsetWeight)); + Vector3.Lerp(_preDeformationRightLowerArmPos, rightLowerArmPos, rightArmOffsetWeight)); } - private void ProcessHands(AnimationStream stream, float weight) + /// + /// Interpolates the hand positions from the pre-deformation positions to positions relative to + /// its elbows after skeletal proportions are enforced. + /// + /// The animation stream. + /// The weight of this operation. + private void InterpolateHands(AnimationStream stream, float weight) { + var leftHandOffsetWeight = weight * LeftHandOffsetWeight.Get(stream); + var rightHandOffsetWeight = weight * RightHandOffsetWeight.Get(stream); + var leftHandPos = LeftHandBone.GetPosition(stream); + var leftElbowPos = LeftLowerArmBone.GetPosition(stream); + var leftElbowDir = LeftLowerArmBone.GetRotation(stream) * LeftLowerArmToHandAxis; + leftHandPos = leftElbowPos + leftElbowDir * Vector3.Distance(leftHandPos, leftElbowPos); + var rightHandPos = RightHandBone.GetPosition(stream); + var rightElbowPos = RightLowerArmBone.GetPosition(stream); + var rightElbowDir = RightLowerArmBone.GetRotation(stream) * RightLowerArmToHandAxis; + rightHandPos = rightElbowPos + rightElbowDir * Vector3.Distance(rightHandPos, rightElbowPos); + LeftHandBone.SetPosition(stream, - Vector3.Lerp(_originalLeftHandPos, leftHandPos, weight * LeftHandOffsetWeight)); + Vector3.Lerp(_preDeformationLeftHandPos, leftHandPos, leftHandOffsetWeight)); RightHandBone.SetPosition(stream, - Vector3.Lerp(_originalRightHandPos, rightHandPos, weight * RightHandOffsetWeight)); + Vector3.Lerp(_preDeformationRightHandPos, rightHandPos, rightHandOffsetWeight)); } } /// - /// The Deformation job binder. + /// The deformation job binder. /// /// The constraint data type public class DeformationJobBinder : AnimationJobBinder @@ -326,6 +603,14 @@ public override DeformationJob Create(Animator animator, ref T data, Component c { var job = new DeformationJob(); + job.HipsBone = ReadWriteTransformHandle.Bind(animator, data.HipsToHeadBones[0]); + job.HeadBone = ReadWriteTransformHandle.Bind(animator, data.HipsToHeadBones[^1]); + job.LeftShoulderBone = data.LeftArm.ShoulderBone != null ? + ReadWriteTransformHandle.Bind(animator, data.LeftArm.ShoulderBone) : + new ReadWriteTransformHandle(); + job.RightShoulderBone = data.RightArm.ShoulderBone != null ? + ReadWriteTransformHandle.Bind(animator, data.RightArm.ShoulderBone) : + new ReadWriteTransformHandle(); job.LeftUpperArmBone = ReadWriteTransformHandle.Bind(animator, data.LeftArm.UpperArmBone); job.LeftLowerArmBone = ReadWriteTransformHandle.Bind(animator, data.LeftArm.LowerArmBone); job.RightUpperArmBone = ReadWriteTransformHandle.Bind(animator, data.RightArm.UpperArmBone); @@ -333,51 +618,93 @@ public override DeformationJob Create(Animator animator, ref T data, Component c job.LeftHandBone = ReadWriteTransformHandle.Bind(animator, data.LeftArm.HandBone); job.RightHandBone = ReadWriteTransformHandle.Bind(animator, data.RightArm.HandBone); - job.StartBones = new NativeArray(data.BonePairs.Length, Allocator.Persistent, + job.StartBones = new NativeArray(data.BonePairs.Length, + Allocator.Persistent, NativeArrayOptions.UninitializedMemory); - job.EndBones = new NativeArray(data.BonePairs.Length, Allocator.Persistent, + job.EndBones = new NativeArray(data.BonePairs.Length, + Allocator.Persistent, NativeArrayOptions.UninitializedMemory); - job.HipsToHeadBones = new NativeArray(data.HipsToHeadBones.Length, Allocator.Persistent, + job.HipsToHeadBones = new NativeArray(data.HipsToHeadBones.Length, + Allocator.Persistent, NativeArrayOptions.UninitializedMemory); - job.BoneDirections = new NativeArray(data.BonePairs.Length, Allocator.Persistent, + job.HipsToHeadBoneTargets = new NativeArray(data.HipsToHeadBoneTargets.Length, + Allocator.Persistent, NativeArrayOptions.UninitializedMemory); - job.BonePositions = new NativeArray(data.BonePairs.Length, Allocator.Persistent, + job.UpperBodyOffsets = new NativeArray(data.HipsToHeadBones.Length, + Allocator.Persistent, NativeArrayOptions.UninitializedMemory); - job.BoneAnimData = new NativeArray(data.BonePairs.Length, Allocator.Persistent, + job.UpperBodyTargetPositions = new NativeArray(data.HipsToHeadBones.Length, + Allocator.Persistent, NativeArrayOptions.UninitializedMemory); - job.ScaleFactor = new NativeArray(1, Allocator.Persistent, + job.BoneAnimData = new NativeArray(data.BonePairs.Length, + Allocator.Persistent, NativeArrayOptions.UninitializedMemory); - job.DeltaTime = new NativeArray(1, Allocator.Persistent, + job.BoneDirections = new NativeArray(data.BonePairs.Length, + Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.ScaleFactor = new NativeArray(1, + Allocator.Persistent, NativeArrayOptions.UninitializedMemory); for (int i = 0; i < data.HipsToHeadBones.Length; i++) { job.HipsToHeadBones[i] = ReadWriteTransformHandle.Bind(animator, data.HipsToHeadBones[i]); + job.UpperBodyOffsets[i] = Vector3.zero; + job.UpperBodyTargetPositions[i] = Vector3.zero; + } + + for (int i = 0; i < data.HipsToHeadBoneTargets.Length; i++) + { + job.HipsToHeadBoneTargets[i] = data.HipsToHeadBoneTargets[i] != null ? + ReadOnlyTransformHandle.Bind(animator, data.HipsToHeadBoneTargets[i]) : + new ReadOnlyTransformHandle(); } + for (int i = 0; i < data.BonePairs.Length; i++) { var boneAnimData = new DeformationJob.BoneAnimationData { Distance = data.BonePairs[i].Distance, - SnapThreshold = data.BonePairs[i].SnapThreshold, - MoveTowardsSpeed = data.BonePairs[i].MoveTowardsSpeed, - IsMoveTowards = data.BonePairs[i].IsMoveTowards + HeightProportion = data.BonePairs[i].HeightProportion, + LimbProportion = data.BonePairs[i].LimbProportion }; job.StartBones[i] = ReadWriteTransformHandle.Bind(animator, data.BonePairs[i].StartBone); job.EndBones[i] = ReadWriteTransformHandle.Bind(animator, data.BonePairs[i].EndBone); job.BoneAnimData[i] = boneAnimData; } - job.SpineCorrectionType = data.SpineCorrectionType; - job.CorrectSpineOnce = data.CorrectSpineOnce; - job.HipsBonesIndex = 0; - job.HeadBonesIndex = data.HipsToHeadBones.Length - 1; - job.LeftArmOffsetWeight = data.LeftArm.ArmWeight; - job.RightArmOffsetWeight = data.RightArm.ArmWeight; - job.LeftHandOffsetWeight = data.LeftArm.HandWeight; - job.RightHandOffsetWeight = data.RightArm.HandWeight; - job.HipsToHeadDistance = data.HipsToHeadDistance; - job.DeltaTime[0] = Time.unscaledDeltaTime; + job.SpineCorrectionType = + IntProperty.Bind(animator, component, data.SpineCorrectionTypeIntProperty); + job.SpineLowerAlignmentWeight = + FloatProperty.Bind(animator, component, data.SpineLowerAlignmentWeightFloatProperty); + job.SpineUpperAlignmentWeight = + FloatProperty.Bind(animator, component, data.SpineUpperAlignmentWeightFloatProperty); + job.ChestAlignmentWeight = + FloatProperty.Bind(animator, component, data.ChestAlignmentWeightFloatProperty); + job.LeftShoulderOffsetWeight = + FloatProperty.Bind(animator, component, data.LeftShoulderWeightFloatProperty); + job.RightShoulderOffsetWeight = + FloatProperty.Bind(animator, component, data.RightShoulderWeightFloatProperty); + job.LeftArmOffsetWeight = + FloatProperty.Bind(animator, component, data.LeftArmWeightFloatProperty); + job.RightArmOffsetWeight = + FloatProperty.Bind(animator, component, data.RightArmWeightFloatProperty); + job.LeftHandOffsetWeight = + FloatProperty.Bind(animator, component, data.LeftHandWeightFloatProperty); + job.RightHandOffsetWeight = + FloatProperty.Bind(animator, component, data.RightHandWeightFloatProperty); + + job.LeftShoulderOriginalLocalPos = data.LeftArm.ShoulderLocalPos; + job.RightShoulderOriginalLocalPos = data.RightArm.ShoulderLocalPos; + job.LeftLowerArmToHandAxis = data.LeftArm.LowerArmToHandAxis; + job.RightLowerArmToHandAxis = data.RightArm.LowerArmToHandAxis; + job.HipsIndex = (int)HumanBodyBones.Hips; + job.SpineLowerIndex = job.HipsIndex + 1; + job.SpineUpperIndex = animator.GetBoneTransform(HumanBodyBones.Chest) != null ? + job.SpineLowerIndex + 1 : -1; + job.ChestIndex = animator.GetBoneTransform(HumanBodyBones.UpperChest) != null ? + job.SpineUpperIndex + 1 : -1; + job.HeadIndex = data.HipsToHeadBones.Length - 1; return job; } @@ -390,12 +717,11 @@ public override void Update(DeformationJob job, ref T data) data.ShouldUpdate = true; } - job.DeltaTime[0] = data.ShouldUpdate ? Time.unscaledDeltaTime : 0.0f; var currentScale = data.ConstraintCustomSkeleton != null ? data.ConstraintCustomSkeleton.transform.lossyScale : data.ConstraintAnimator.transform.lossyScale; job.ScaleFactor[0] = - DivideVector3(currentScale, data.StartingScale); + RiggingUtilities.DivideVector3(currentScale, data.StartingScale); base.Update(job, ref data); if (!data.IsBoneTransformsDataValid()) @@ -411,26 +737,11 @@ public override void Destroy(DeformationJob job) job.EndBones.Dispose(); job.BoneAnimData.Dispose(); job.HipsToHeadBones.Dispose(); + job.HipsToHeadBoneTargets.Dispose(); + job.UpperBodyOffsets.Dispose(); + job.UpperBodyTargetPositions.Dispose(); job.BoneDirections.Dispose(); - job.BonePositions.Dispose(); job.ScaleFactor.Dispose(); - job.DeltaTime.Dispose(); - } - - private Vector3 DivideVector3(Vector3 dividend, Vector3 divisor) - { - Vector3 targetScale = Vector3.one; - if (IsNonZero(divisor)) - { - targetScale = new Vector3( - dividend.x / divisor.x, dividend.y / divisor.y, dividend.z / divisor.z); - } - return targetScale; - } - - private bool IsNonZero(Vector3 v) - { - return v.x != 0 && v.y != 0 && v.z != 0; } } } diff --git a/Runtime/Scripts/AnimationRigging/FullBodyDeformationConstraint.cs b/Runtime/Scripts/AnimationRigging/FullBodyDeformationConstraint.cs new file mode 100644 index 00000000..11bce797 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/FullBodyDeformationConstraint.cs @@ -0,0 +1,1186 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using Oculus.Interaction; +using Oculus.Movement.Utils; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Animations; +using UnityEngine.Animations.Rigging; +using static Oculus.Movement.AnimationRigging.DeformationCommon; +using static OVRUnityHumanoidSkeletonRetargeter; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// Information about the positioning of a leg. + /// + [Serializable] + public struct LegPosData + { + /// + /// The hips transform. + /// + public Transform HipsBone; + + /// + /// The upper leg transform. + /// + public Transform UpperLegBone; + + /// + /// The lower leg transform. + /// + public Transform LowerLegBone; + + /// + /// The foot transform. + /// + public Transform FootBone; + + /// + /// The toes transform. + /// + public Transform ToesBone; + + /// + /// The local position of the toes. + /// + public Vector3 ToesLocalPos; + + /// + /// The local rotation of the foot. + /// + public Quaternion FootLocalRot; + + /// + /// Indicates if initialized or not. + /// + /// + public bool IsInitialized => + HipsBone != null && + UpperLegBone != null && + LowerLegBone != null && + FootBone != null; + + /// + /// Resets all tracked transforms to null. + /// + public void ClearTransformData() + { + HipsBone = null; + UpperLegBone = null; + LowerLegBone = null; + FootBone = null; + ToesBone = null; + } + } + + /// + /// Interface for FullBodyDeformation data. + /// + public interface IFullBodyDeformationData + { + /// + /// The OVRCustomSkeleton component for the character. + /// + public OVRCustomSkeleton ConstraintCustomSkeleton { get; } + + /// + /// The Animator component for the character. + /// + public Animator ConstraintAnimator { get; } + + /// + /// If true, update this job. + /// + public bool ShouldUpdate { get; set; } + + /// + /// The array of transforms from the hips to the head bones. + /// + public Transform[] HipsToHeadBones { get; } + + /// + /// The array of transform targets from the hips to the head bones. + /// + public Transform[] HipsToHeadBoneTargets { get; } + + /// + /// The position info for the bone pairs used for FullBodyDeformation. + /// + public BonePairData[] BonePairs { get; } + + /// + /// The position info for the left arm. + /// + public ArmPosData LeftArm { get; } + + /// + /// The position info for the right arm. + /// + public ArmPosData RightArm { get; } + + /// + /// The position info for the left leg. + /// + public LegPosData LeftLeg { get; } + + /// + /// The position info for the right leg. + /// + public LegPosData RightLeg { get; } + + /// + /// The type of spine translation correction that should be applied. + /// + public int SpineCorrectionType { get; } + + /// + /// The starting scale of the character, taken from the animator transform. + /// + public Vector3 StartingScale { get; } + + /// + /// The spine correction type int property. + /// + public string SpineCorrectionTypeIntProperty { get; } + + /// + /// The spine alignment weight float property. + /// + public string SpineLowerAlignmentWeightFloatProperty { get; } + + /// + /// The spine upper alignment weight float property. + /// + public string SpineUpperAlignmentWeightFloatProperty { get; } + + /// + /// The chest alignment weight float property. + /// + public string ChestAlignmentWeightFloatProperty { get; } + + /// + /// The left shoulder weight float property. + /// + public string LeftShoulderWeightFloatProperty { get; } + + /// + /// The right shoulder weight float property. + /// + public string RightShoulderWeightFloatProperty { get; } + + /// + /// The left arm weight float property. + /// + public string LeftArmWeightFloatProperty { get; } + + /// + /// The right arm weight float property. + /// + public string RightArmWeightFloatProperty { get; } + + /// + /// The left hand weight float property. + /// + public string LeftHandWeightFloatProperty { get; } + + /// + /// The right hand weight float property. + /// + public string RightHandWeightFloatProperty { get; } + + /// + /// The left leg weight float property. + /// + public string LeftLegWeightFloatProperty { get; } + + /// + /// The right leg weight float property. + /// + public string RightLegWeightFloatProperty { get; } + + /// + /// The left toes weight float property. + /// + public string LeftToesWeightFloatProperty { get; } + + /// + /// The right toes weight float property. + /// + public string RightToesWeightFloatProperty { get; } + + /// + /// Align feet weight float property. + /// + public string AlignFeetWeightFloatProperty { get; } + + /// + /// The distance between the hips and head bones. + /// + public float HipsToHeadDistance { get; } + + /// + /// The distance between the hips and foot bones. + /// + public float HipsToFootDistance { get; } + + /// + /// Sets up hips and head bones. + /// + public void SetUpHipsAndHeadBones(); + + /// + /// Sets up left arm data. + /// + public void SetUpLeftArmData(); + + /// + /// Sets up right arm data. + /// + public void SetUpRightArmData(); + + /// + /// Sets up left leg data. + /// + public void SetUpLeftLegData(); + + /// + /// Sets up right leg data. + /// + public void SetUpRightLegData(); + + /// + /// Sets up upper bone parts after all bones have been found. + /// + public void SetUpBonePairs(); + + /// + /// Try to set up bone targets. + /// + public void SetUpBoneTargets(Transform setupParent); + + /// + /// Computes initial starting scale. + /// + public void InitializeStartingScale(); + + /// + /// Clears all transform data stored. + /// + public void ClearTransformData(); + + /// + /// Indicates if bone transforms are valid or not. + /// + /// True if bone transforms are valid, false if not. + public bool IsBoneTransformsDataValid(); + } + + /// + /// FullBodyDeformation data used by the FullBodyDeformation job. + /// Implements the FullBodyDeformation data interface. + /// + [Serializable] + public struct FullBodyDeformationData : IAnimationJobData, IFullBodyDeformationData + { + /// + /// The spine translation correction type. + /// + public enum SpineTranslationCorrectionType + { + /// No spine translation correction applied. + None = 0, + /// Accurately place the head bone when applying spine translation correction. + AccurateHead = 1, + /// Accurately place the hips bone when applying spine translation correction. + AccurateHips = 2, + /// Accurately place the hips and head bone when applying spine translation correction. + AccurateHipsAndHead = 3, + } + + /// + OVRCustomSkeleton IFullBodyDeformationData.ConstraintCustomSkeleton => _customSkeleton; + + /// + Animator IFullBodyDeformationData.ConstraintAnimator => _animator; + + /// + bool IFullBodyDeformationData.ShouldUpdate + { + get => _shouldUpdate; + set => _shouldUpdate = value; + } + + /// + int IFullBodyDeformationData.SpineCorrectionType => _spineTranslationCorrectionType; + + /// + Transform[] IFullBodyDeformationData.HipsToHeadBones => _hipsToHeadBones; + + /// + Transform[] IFullBodyDeformationData.HipsToHeadBoneTargets => _hipsToHeadBoneTargets; + + /// + BonePairData[] IFullBodyDeformationData.BonePairs => _bonePairData; + + /// + ArmPosData IFullBodyDeformationData.LeftArm => _leftArmData; + + /// + ArmPosData IFullBodyDeformationData.RightArm => _rightArmData; + + /// + LegPosData IFullBodyDeformationData.LeftLeg => _leftLegData; + + /// + LegPosData IFullBodyDeformationData.RightLeg => _rightLegData; + + /// + Vector3 IFullBodyDeformationData.StartingScale => _startingScale; + + /// + string IFullBodyDeformationData.SpineCorrectionTypeIntProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_spineTranslationCorrectionType)); + + /// + string IFullBodyDeformationData.SpineLowerAlignmentWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_spineLowerAlignmentWeight)); + + /// + string IFullBodyDeformationData.SpineUpperAlignmentWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_spineUpperAlignmentWeight)); + + /// + string IFullBodyDeformationData.ChestAlignmentWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_chestAlignmentWeight)); + + /// + string IFullBodyDeformationData.LeftShoulderWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_leftShoulderWeight)); + + /// + string IFullBodyDeformationData.RightShoulderWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_rightShoulderWeight)); + + /// + string IFullBodyDeformationData.LeftArmWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_leftArmWeight)); + + /// + string IFullBodyDeformationData.RightArmWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_rightArmWeight)); + + /// + string IFullBodyDeformationData.LeftHandWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_leftHandWeight)); + + /// + string IFullBodyDeformationData.RightHandWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_rightHandWeight)); + + /// + string IFullBodyDeformationData.LeftLegWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_leftLegWeight)); + + /// + string IFullBodyDeformationData.RightLegWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_rightLegWeight)); + + /// + string IFullBodyDeformationData.LeftToesWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_leftToesWeight)); + + /// + string IFullBodyDeformationData.RightToesWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_rightToesWeight)); + + string IFullBodyDeformationData.AlignFeetWeightFloatProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_alignFeetWeight)); + + /// + float IFullBodyDeformationData.HipsToHeadDistance => _hipsToHeadDistance; + + /// + float IFullBodyDeformationData.HipsToFootDistance => _hipsToFootDistance; + + /// + /// The weight for the spine lower alignment. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.SpineAlignmentWeight)] + private float _spineLowerAlignmentWeight; + public float SpineLowerAlignmentWeight + { + get => _spineLowerAlignmentWeight; + set => _spineLowerAlignmentWeight = value; + } + + /// + /// The weight for the spine upper alignment. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.SpineAlignmentWeight)] + private float _spineUpperAlignmentWeight; + public float SpineUpperAlignmentWeight + { + get => _spineUpperAlignmentWeight; + set => _spineUpperAlignmentWeight = value; + } + + /// + /// The weight for the chest alignment. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.ChestAlignmentWeight)] + private float _chestAlignmentWeight; + public float ChestAlignmentWeight + { + get => _chestAlignmentWeight; + set => _chestAlignmentWeight = value; + } + + /// + /// The weight for the deformation on the left shoulder. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.LeftShoulderWeight)] + private float _leftShoulderWeight; + public float LeftShoulderWeight + { + get => _leftShoulderWeight; + set => _leftShoulderWeight = value; + } + + /// + /// The weight for the deformation on the right shoulder. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.RightShoulderWeight)] + private float _rightShoulderWeight; + public float RightShoulderWeight + { + get => _rightShoulderWeight; + set => _rightShoulderWeight = value; + } + + /// + /// The weight for the deformation on the left arm. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.LeftArmWeight)] + private float _leftArmWeight; + public float LeftArmWeight + { + get => _leftArmWeight; + set => _leftArmWeight = value; + } + + /// + /// The weight for the deformation on the right arm. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.RightArmWeight)] + private float _rightArmWeight; + public float RightArmWeight + { + get => _rightArmWeight; + set => _rightArmWeight = value; + } + + /// + /// The weight for the deformation on the left hand. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.LeftHandWeight)] + private float _leftHandWeight; + public float LeftHandWeight + { + get => _leftHandWeight; + set => _leftHandWeight = value; + } + + /// + /// The weight for the deformation on the right hand. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.RightHandWeight)] + private float _rightHandWeight; + public float RightHandWeight + { + get => _rightHandWeight; + set => _rightHandWeight = value; + } + + /// + /// The weight for the deformation on the left leg. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.LeftLegWeight)] + private float _leftLegWeight; + public float LeftLegWeight + { + get => _leftLegWeight; + set => _leftLegWeight = value; + } + + /// + /// The weight for the deformation on the right leg. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.RightLegWeight)] + private float _rightLegWeight; + public float RightLegWeight + { + get => _rightLegWeight; + set => _rightLegWeight = value; + } + + /// + /// The weight for the FullBodyDeformation on the left toe. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.LeftToesWeight)] + private float _leftToesWeight; + public float LeftToesWeight + { + get => _leftToesWeight; + set => _leftToesWeight = value; + } + + /// + /// The weight for the FullBodyDeformation on the right toe. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.RightToesWeight)] + private float _rightToesWeight; + public float RightToesWeight + { + get => _rightToesWeight; + set => _rightToesWeight = value; + } + + /// + /// Weight used for feet alignment. + /// + [SyncSceneToStream, SerializeField, Range(0.0f, 1.0f)] + [Tooltip(DeformationDataTooltips.AlignFeetWeight)] + private float _alignFeetWeight; + public float AlignFeetWeight + { + get => _alignFeetWeight; + set => _alignFeetWeight = value; + } + + /// + [SyncSceneToStream, SerializeField, IntAsEnumAttribute(typeof(SpineTranslationCorrectionType))] + [Tooltip(DeformationDataTooltips.SpineTranslationCorrectionType)] + private int _spineTranslationCorrectionType; + public SpineTranslationCorrectionType SpineTranslationCorrectionTypeField + { + get => (SpineTranslationCorrectionType)_spineTranslationCorrectionType; + set => _spineTranslationCorrectionType = (int)value; + } + + /// + [NotKeyable, SerializeField, ConditionalHide("_animator", null)] + [Tooltip(DeformationDataTooltips.CustomSkeleton)] + private OVRCustomSkeleton _customSkeleton; + + /// + [NotKeyable, SerializeField, ConditionalHide("_customSkeleton", null)] + [Tooltip(DeformationDataTooltips.Animator)] + private Animator _animator; + + /// + /// Array of transform bones from hips to head. + /// + [SyncSceneToStream, SerializeField] + [Tooltip(DeformationDataTooltips.HipsToHeadBones)] + private Transform[] _hipsToHeadBones; + + /// + /// Array of transform bone targets from hips to head. + /// + [SyncSceneToStream, SerializeField] + [Tooltip(DeformationDataTooltips.HipsToHeadBoneTargets)] + private Transform[] _hipsToHeadBoneTargets; + + /// + /// Left arm data. + /// + [SyncSceneToStream, SerializeField] + [Tooltip(DeformationDataTooltips.LeftArmData)] + private ArmPosData _leftArmData; + + /// + /// Right arm data. + /// + [SyncSceneToStream, SerializeField] + [Tooltip(DeformationDataTooltips.RightArmData)] + private ArmPosData _rightArmData; + + /// + /// Left leg data. + /// + [SyncSceneToStream, SerializeField] + [Tooltip(DeformationDataTooltips.LeftLegData)] + private LegPosData _leftLegData; + + /// + /// Right leg data. + /// + [SyncSceneToStream, SerializeField] + [Tooltip(DeformationDataTooltips.RightLegData)] + private LegPosData _rightLegData; + + /// + /// All bone pair data. + /// + [SerializeField] + [Tooltip(DeformationDataTooltips.BonePairData)] + private BonePairData[] _bonePairData; + + /// + /// Starting scale of character. + /// + [NotKeyable, SerializeField] + [Tooltip(DeformationDataTooltips.StartingScale)] + private Vector3 _startingScale; + + /// + /// Distances between head and hips. + /// + [NotKeyable, SerializeField] + [Tooltip(DeformationDataTooltips.HipsToHeadDistance)] + private float _hipsToHeadDistance; + + /// + /// Distances between hips and feet. + /// + [NotKeyable, SerializeField] + [Tooltip(DeformationDataTooltips.HipsToFootDistance)] + private float _hipsToFootDistance; + + private bool _shouldUpdate; + + /// + /// Assign the OVR Custom Skeleton. + /// + /// The OVRCustomSkeleton component. + public void AssignOVRCustomSkeleton(OVRCustomSkeleton skeleton) + { + _customSkeleton = skeleton; + } + + /// + /// Assign the Animator. + /// + /// The Animator component. + public void AssignAnimator(Animator animator) + { + _animator = animator; + } + + /// + public bool IsBoneTransformsDataValid() + { + return (_customSkeleton != null && _customSkeleton.IsDataValid) || + (_animator != null); + } + + /// + public void SetUpHipsAndHeadBones() + { + var hipsToHeadBones = new List(); + _hipsToHeadDistance = 0.0f; + for (int boneId = (int)OVRSkeleton.BoneId.Body_Hips; boneId <= (int)OVRSkeleton.BoneId.Body_Head; + boneId++) + { + var foundBoneTransform = FindBoneTransform((OVRSkeleton.BoneId)boneId); + if (foundBoneTransform == null) + { + continue; + } + hipsToHeadBones.Add(foundBoneTransform.transform); + if (hipsToHeadBones.Count > 1) + { + _hipsToHeadDistance += + Vector3.Distance(hipsToHeadBones[^1].position, hipsToHeadBones[^2].position); + } + } + _hipsToHeadBones = hipsToHeadBones.ToArray(); + + var avgUpperLegBonePos = (_leftLegData.UpperLegBone.position + _rightLegData.UpperLegBone.position) / 2f; + var avgLowerLegBonePos = (_leftLegData.LowerLegBone.position + _rightLegData.LowerLegBone.position) / 2f; + var avgFootBonePos = (_leftLegData.FootBone.position + _rightLegData.FootBone.position) / 2f; + _hipsToFootDistance = Vector3.Distance(hipsToHeadBones[0].position, avgUpperLegBonePos) + + Vector3.Distance(avgUpperLegBonePos, avgLowerLegBonePos) + + Vector3.Distance(avgLowerLegBonePos, avgFootBonePos); + } + + /// + public void SetUpLeftArmData() + { + var shoulder = FindBoneTransform(OVRSkeleton.BoneId.Body_LeftShoulder); + var lowerArmBone = FindBoneTransform(OVRSkeleton.BoneId.Body_LeftArmLower); + var handBone = FindBoneTransform(OVRSkeleton.BoneId.Body_LeftHandWrist); + _leftArmData = new ArmPosData() + { + ShoulderBone = shoulder, + UpperArmBone = FindBoneTransform(OVRSkeleton.BoneId.Body_LeftArmUpper), + LowerArmBone = lowerArmBone, + HandBone = handBone, + ShoulderLocalPos = shoulder != null ? shoulder.localPosition : Vector3.zero, + LowerArmToHandAxis = + lowerArmBone.InverseTransformDirection(handBone.position - lowerArmBone.position).normalized + }; + } + + /// + public void SetUpRightArmData() + { + var shoulder = FindBoneTransform(OVRSkeleton.BoneId.Body_RightShoulder); + var lowerArmBone = FindBoneTransform(OVRSkeleton.BoneId.Body_RightArmLower); + var handBone = FindBoneTransform(OVRSkeleton.BoneId.Body_RightHandWrist); + _rightArmData = new ArmPosData() + { + ShoulderBone = shoulder, + UpperArmBone = FindBoneTransform(OVRSkeleton.BoneId.Body_RightArmUpper), + LowerArmBone = lowerArmBone, + HandBone = handBone, + ShoulderLocalPos = shoulder != null ? shoulder.localPosition : Vector3.zero, + LowerArmToHandAxis = + lowerArmBone.InverseTransformDirection(handBone.position - lowerArmBone.position).normalized + }; + } + + /// + public void SetUpLeftLegData() + { + var toes = FindBoneTransform(OVRSkeleton.BoneId.FullBody_LeftFootBall); + var foot = FindBoneTransform(OVRSkeleton.BoneId.FullBody_LeftFootAnkle); + + _leftLegData = new LegPosData + { + HipsBone = FindBoneTransform(OVRSkeleton.BoneId.FullBody_Hips), + UpperLegBone = FindBoneTransform(OVRSkeleton.BoneId.FullBody_LeftUpperLeg), + LowerLegBone = FindBoneTransform(OVRSkeleton.BoneId.FullBody_LeftLowerLeg), + FootBone = foot, + ToesBone = toes, + ToesLocalPos = toes != null ? toes.localPosition : Vector3.zero, + FootLocalRot = foot.localRotation + }; + } + + /// + public void SetUpRightLegData() + { + var toes = FindBoneTransform(OVRSkeleton.BoneId.FullBody_RightFootBall); + var foot = FindBoneTransform(OVRSkeleton.BoneId.FullBody_RightFootAnkle); + + _rightLegData = new LegPosData + { + HipsBone = FindBoneTransform(OVRSkeleton.BoneId.FullBody_Hips), + UpperLegBone = FindBoneTransform(OVRSkeleton.BoneId.FullBody_RightUpperLeg), + LowerLegBone = FindBoneTransform(OVRSkeleton.BoneId.FullBody_RightLowerLeg), + FootBone = foot, + ToesBone = toes, + ToesLocalPos = toes != null ? toes.localPosition : Vector3.zero, + FootLocalRot = foot.localRotation + }; + } + + /// + public void SetUpBonePairs() + { + if (_hipsToHeadBones == null) + { + Debug.LogError("Please set up hips to head bones before trying to " + + "set up bone pairs"); + return; + } + if (!_leftArmData.IsInitialized) + { + Debug.LogError("Please set up left arm data before trying to " + + "set up bone pairs"); + return; + } + if (!_rightArmData.IsInitialized) + { + Debug.LogError("Please set up right arm data before trying to " + + "set up bone pairs"); + return; + } + if (!_leftLegData.IsInitialized) + { + Debug.LogError("Please set up left leg data before trying to " + + "set up bone pairs"); + return; + } + if (!_rightLegData.IsInitialized) + { + Debug.LogError("Please set up right leg data before trying to " + + "set up bone pairs"); + return; + } + + // Setup bone pairs for hips to head bones. + var bonePairs = new List(); + for (int i = 0; i < _hipsToHeadBones.Length - 1; i++) + { + var bonePair = new BonePairData + { + StartBone = _hipsToHeadBones[i], + EndBone = _hipsToHeadBones[i + 1] + }; + bonePairs.Add(bonePair); + } + + // Check for optional bones and update accordingly. + var chestBone = FindBoneTransform(OVRSkeleton.BoneId.FullBody_Chest); + var spineUpperBone = FindBoneTransform(OVRSkeleton.BoneId.FullBody_SpineUpper); + var spineLowerBone = FindBoneTransform(OVRSkeleton.BoneId.FullBody_SpineLower); + var highestSpineBone = chestBone; + if (chestBone == null) + { + Debug.LogWarning($"Did not find the {HumanBodyBones.UpperChest} bone in {_animator}. The deformation job result will be affected."); + highestSpineBone = spineUpperBone; + } + if (spineUpperBone == null) + { + Debug.LogWarning($"Did not find the {HumanBodyBones.Chest} bone in {_animator}. The deformation job result will be affected."); + highestSpineBone = spineLowerBone; + } + var leftShoulderBone = _leftArmData.ShoulderBone; + var rightShoulderBone = _rightArmData.ShoulderBone; + + // Chest to shoulder bones. + if (leftShoulderBone != null) + { + bonePairs.Add(new BonePairData + { + StartBone = highestSpineBone, + EndBone = leftShoulderBone, + }); + } + else + { + Debug.LogWarning($"Did not find the {HumanBodyBones.LeftShoulder} bone in {_animator}. The deformation job result will be affected."); + } + + if (rightShoulderBone != null) + { + bonePairs.Add(new BonePairData + { + StartBone = highestSpineBone, + EndBone = rightShoulderBone, + }); + } + else + { + Debug.LogWarning($"Did not find the {HumanBodyBones.RightShoulder} bone in {_animator}. The deformation job result will be affected."); + } + + // Shoulder to upper arm bones. + bonePairs.Add(new BonePairData + { + StartBone = leftShoulderBone != null ? leftShoulderBone : highestSpineBone, + EndBone = _leftArmData.UpperArmBone + }); + bonePairs.Add(new BonePairData + { + StartBone = rightShoulderBone != null ? rightShoulderBone : highestSpineBone, + EndBone = _rightArmData.UpperArmBone + }); + + // Upper arm to lower arm bones. + bonePairs.Add(new BonePairData + { + StartBone = _leftArmData.UpperArmBone, + EndBone = _leftArmData.LowerArmBone + }); + bonePairs.Add(new BonePairData + { + StartBone = _rightArmData.UpperArmBone, + EndBone = _rightArmData.LowerArmBone + }); + + // Lower arm to hand bones. + bonePairs.Add(new BonePairData + { + StartBone = _leftArmData.LowerArmBone, + EndBone = _leftArmData.HandBone + }); + bonePairs.Add(new BonePairData + { + StartBone = _rightArmData.LowerArmBone, + EndBone = _rightArmData.HandBone + }); + + // Hips to upper leg bones. + var upperLegIndex = bonePairs.Count; + bonePairs.Add(new BonePairData + { + StartBone = _leftLegData.HipsBone, + EndBone = _leftLegData.UpperLegBone + }); + bonePairs.Add(new BonePairData + { + StartBone = _rightLegData.HipsBone, + EndBone = _rightLegData.UpperLegBone + }); + + // Upper leg to lower leg bones. + bonePairs.Add(new BonePairData + { + StartBone = _leftLegData.UpperLegBone, + EndBone = _leftLegData.LowerLegBone + }); + bonePairs.Add(new BonePairData + { + StartBone = _rightLegData.UpperLegBone, + EndBone = _rightLegData.LowerLegBone + }); + + // Lower leg to feet bones. + bonePairs.Add(new BonePairData + { + StartBone = _leftLegData.LowerLegBone, + EndBone = _leftLegData.FootBone + }); + bonePairs.Add(new BonePairData + { + StartBone = _rightLegData.LowerLegBone, + EndBone = _rightLegData.FootBone + }); + + // Calculate original bone pair lengths. + for (int i = 0; i < bonePairs.Count; i++) + { + var bonePair = bonePairs[i]; + if (bonePair.StartBone != null && bonePair.EndBone != null) + { + bonePair.Distance = Vector3.Distance(bonePair.EndBone.position, bonePair.StartBone.position); + } + else + { + Debug.LogWarning($"Missing bones in bone pair! Start Bone: {bonePair.StartBone}, End Bone: {bonePair.EndBone}"); + } + bonePairs[i] = bonePair; + } + + // Calculate proportions for spine. + for (int i = 0; i < _hipsToHeadBones.Length - 1; i++) + { + var bonePair = bonePairs[i]; + bonePair.HeightProportion = bonePair.Distance / (_hipsToHeadDistance + _hipsToFootDistance); + bonePair.LimbProportion = bonePair.Distance / _hipsToHeadDistance; + bonePairs[i] = bonePair; + } + + // Calculate proportions for legs. + for (int i = upperLegIndex; i < bonePairs.Count; i++) + { + var bonePair = bonePairs[i]; + bonePair.HeightProportion = bonePair.Distance / (_hipsToHeadDistance + _hipsToFootDistance); + bonePair.LimbProportion = bonePair.Distance / _hipsToFootDistance; + bonePairs[i] = bonePair; + } + + _bonePairData = bonePairs.ToArray(); + } + + /// + public void SetUpBoneTargets(Transform setupParent) + { + var hipsTarget = setupParent.FindChildRecursive("Hips"); + var spineLowerTarget = setupParent.FindChildRecursive("SpineLower"); + var spineUpperTarget = setupParent.FindChildRecursive("SpineUpper"); + var chestTarget = setupParent.FindChildRecursive("Chest"); + var neckTarget = setupParent.FindChildRecursive("Neck"); + var headTarget = setupParent.FindChildRecursive("Head"); + + var hipsToHeadBoneTargets = new List + { + hipsTarget, spineLowerTarget + }; + + // Add optional bones, based on the length of the original array. + if (_hipsToHeadBones.Length > 4) + { + hipsToHeadBoneTargets.Add(spineUpperTarget); + } + if (_hipsToHeadBones.Length > 5) + { + hipsToHeadBoneTargets.Add(chestTarget); + } + hipsToHeadBoneTargets.Add(neckTarget); + hipsToHeadBoneTargets.Add(headTarget); + + _hipsToHeadBoneTargets = hipsToHeadBoneTargets.ToArray(); + } + + /// + public void InitializeStartingScale() + { + if (_animator != null) + { + _startingScale = _animator.transform.lossyScale; + } + else if (_customSkeleton != null) + { + _startingScale = _customSkeleton.transform.lossyScale; + } + else + { + Debug.LogError("Both animator and custom skeleton are not; " + + "could not compute starting scale."); + } + } + + /// + public void ClearTransformData() + { + _bonePairData = null; + _hipsToHeadBones = null; + _leftArmData.ClearTransformData(); + _rightArmData.ClearTransformData(); + _leftLegData.ClearTransformData(); + _rightArmData.ClearTransformData(); + } + + private Transform FindBoneTransform(OVRSkeleton.BoneId boneId) + { + if (_customSkeleton != null) + { + return RiggingUtilities.FindBoneTransformFromCustomSkeleton(_customSkeleton, boneId); + } + + if (_animator != null) + { + if (!OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone.ContainsKey(boneId)) + { + return null; + } + return _animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[boneId]); + } + + return null; + } + + bool IAnimationJobData.IsValid() + { + if (_animator == null && _customSkeleton == null) + { + Debug.LogError("Animator or skeleton not set up."); + return false; + } + + if (_bonePairData == null || _bonePairData.Length == 0) + { + Debug.LogError("Bone pair data not set up."); + return false; + } + + if (_hipsToHeadBones == null || _hipsToHeadBones.Length == 0) + { + Debug.LogError("Hips to head bones not set up."); + return false; + } + + if (!_leftArmData.IsInitialized || !_rightArmData.IsInitialized) + { + Debug.LogError("Arm data not set up."); + return false; + } + + if (!_leftLegData.IsInitialized || !_rightLegData.IsInitialized) + { + Debug.LogError("Leg data not set up."); + return false; + } + + return true; + } + + void IAnimationJobData.SetDefaultValues() + { + _animator = null; + _customSkeleton = null; + _spineTranslationCorrectionType = (int)SpineTranslationCorrectionType.None; + + _leftArmWeight = 0.0f; + _rightArmWeight = 0.0f; + _leftHandWeight = 0.0f; + _rightHandWeight = 0.0f; + _leftLegWeight = 0.0f; + _rightLegWeight = 0.0f; + _leftToesWeight = 0.0f; + _rightToesWeight = 0.0f; + + _startingScale = Vector3.one; + _bonePairData = null; + _hipsToHeadBones = null; + _leftArmData = new ArmPosData(); + _rightArmData = new ArmPosData(); + _leftLegData = new LegPosData(); + _rightLegData = new LegPosData(); + } + } + + /// + /// FullBodyDeformation constraint. + /// + [DisallowMultipleComponent, AddComponentMenu("Movement Animation Rigging/Full Body Deformation Constraint")] + public class FullBodyDeformationConstraint : RigConstraint< + FullBodyDeformationJob, + FullBodyDeformationData, + FullBodyDeformationJobBinder>, + IOVRSkeletonConstraint + { + /// + /// Allows calculating bone data via a button. + /// + [SerializeField, InspectorButton("CalculateBoneData")] + [Tooltip(FullBodyDeformationConstraintToolTips.CalculateBoneData)] + protected bool _calculateBoneData; + + /// + /// Setup all variables required for the constraint. + /// + public void CalculateBoneData() + { +#if UNITY_EDITOR + UnityEditor.Undo.RecordObject(this, "Undo Full Body Deformation Setup"); +#endif + var skeleton = GetComponentInParent(); + if (skeleton != null) + { + data.AssignOVRCustomSkeleton(skeleton); + } + else + { + data.AssignAnimator(GetComponentInParent()); + } + data.InitializeStartingScale(); + data.ClearTransformData(); + data.SetUpLeftArmData(); + data.SetUpRightArmData(); + data.SetUpLeftLegData(); + data.SetUpRightLegData(); + data.SetUpHipsAndHeadBones(); + data.SetUpBonePairs(); + data.SetUpBoneTargets(transform); +#if UNITY_EDITOR + UnityEditor.PrefabUtility.RecordPrefabInstancePropertyModifications(this); +#endif + } + + /// + public void RegenerateData() + { + } + } +} diff --git a/Runtime/Scripts/AnimationRigging/FullBodyDeformationConstraint.cs.meta b/Runtime/Scripts/AnimationRigging/FullBodyDeformationConstraint.cs.meta new file mode 100644 index 00000000..30c2ab2c --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/FullBodyDeformationConstraint.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: da7a4e7762678a941bc75ee4155418d1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/FullBodyDeformationJob.cs b/Runtime/Scripts/AnimationRigging/FullBodyDeformationJob.cs new file mode 100644 index 00000000..cf2aad4d --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/FullBodyDeformationJob.cs @@ -0,0 +1,1074 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using Unity.Collections; +using UnityEngine; +using UnityEngine.Animations; +using UnityEngine.Animations.Rigging; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// The FullBodyDeformation job. + /// + [Unity.Burst.BurstCompile] + public struct FullBodyDeformationJob : IWeightedAnimationJob + { + /// + /// Bone animation data for the FullBodyDeformation job. + /// + public struct BoneAnimationData + { + /// + /// The distance between the start and end bone transforms. + /// + public float Distance; + + /// + /// The proportion of this bone relative to the height. + /// + public float HeightProportion; + + /// + /// The proportion of this bone relative to its limb. + /// + public float LimbProportion; + } + + /// + /// The ReadWrite transform handle for the left shoulder bone. + /// + public ReadWriteTransformHandle LeftShoulderBone; + + /// + /// The ReadWrite transform handle for the right shoulder bone. + /// + public ReadWriteTransformHandle RightShoulderBone; + + /// + /// The ReadWrite transform handle for the left upper arm bone. + /// + public ReadWriteTransformHandle LeftUpperArmBone; + + /// + /// The ReadWrite transform handle for the right upper arm bone. + /// + public ReadWriteTransformHandle RightUpperArmBone; + + /// + /// The ReadWrite transform handle for the left lower arm bone. + /// + public ReadWriteTransformHandle LeftLowerArmBone; + + /// + /// The ReadWrite transform handle for the right lower arm bone. + /// + public ReadWriteTransformHandle RightLowerArmBone; + + /// + /// The ReadWrite transform handle for the left hand bone. + /// + public ReadWriteTransformHandle LeftHandBone; + + /// + /// The ReadWrite transform handle for the right hand bone. + /// + public ReadWriteTransformHandle RightHandBone; + + /// + /// The ReadWrite transform handle for the left upper leg bone. + /// + public ReadWriteTransformHandle LeftUpperLegBone; + + /// + /// The ReadWrite transform handle for the right upper leg bone. + /// + public ReadWriteTransformHandle RightUpperLegBone; + + /// + /// The ReadWrite transform handle for the left lower leg bone. + /// + public ReadWriteTransformHandle LeftLowerLegBone; + + /// + /// The ReadWrite transform handle for the right lower leg bone. + /// + public ReadWriteTransformHandle RightLowerLegBone; + + /// + /// The ReadWrite transform handle for the left foot bone. + /// + public ReadWriteTransformHandle LeftFootBone; + + /// + /// The ReadWrite transform handle for the right foot bone. + /// + public ReadWriteTransformHandle RightFootBone; + + /// + /// The ReadWrite transform handle for the left toes bone. + /// + public ReadWriteTransformHandle LeftToesBone; + + /// + /// The ReadWrite transform handle for the right toes bone. + /// + public ReadWriteTransformHandle RightToesBone; + + /// + /// The ReadWrite transform handle for the hips bone. + /// + public ReadWriteTransformHandle HipsBone; + + /// + /// The ReadWrite transform handle for the head bone. + /// + public ReadWriteTransformHandle HeadBone; + + /// + /// The inclusive array of bones from the hips to the head. + /// + public NativeArray HipsToHeadBones; + + /// + /// The inclusive array of bone targets from the hips to the head. + /// + public NativeArray HipsToHeadBoneTargets; + + /// + /// The array of upper body offsets. + /// + public NativeArray UpperBodyOffsets; + + /// + /// The array of upper body target positions. + /// + public NativeArray UpperBodyTargetPositions; + + /// + /// The array of start bones for FullBodyDeformation. + /// + public NativeArray StartBones; + + /// + /// The array of end bones for FullBodyDeformation. + /// + public NativeArray EndBones; + + /// + /// The array of bone animation data for the start and end bone pairs. + /// + public NativeArray BoneAnimData; + + /// + /// The array of directions between the start and end bones. + /// + public NativeArray BoneDirections; + + /// + /// The array containing 1 element for the current scale ratio. + /// + public NativeArray ScaleFactor; + + /// + /// The spine correction type. + /// + public IntProperty SpineCorrectionType; + + /// + /// The hips index in the bone pair data. + /// + public int HipsIndex; + + /// + /// The spine index in the bone pair data. + /// + public int SpineLowerIndex; + + /// + /// The spine upper index in the bone pair data. + /// + public int SpineUpperIndex; + + /// + /// The chest index in the bone pair data. + /// + public int ChestIndex; + + /// + /// The head index in the bone pair data. + /// + public int HeadIndex; + + /// + /// The weight for the spine lower fixup. + /// + public FloatProperty SpineLowerAlignmentWeight; + + /// + /// The weight for the spine upper fixup. + /// + public FloatProperty SpineUpperAlignmentWeight; + + /// + /// The weight for the chest fixup. + /// + public FloatProperty ChestAlignmentWeight; + + /// + /// The weight of the left shoulder offset. + /// + public FloatProperty LeftShoulderOffsetWeight; + + /// + /// The weight of the right shoulder offset. + /// + public FloatProperty RightShoulderOffsetWeight; + + /// + /// The weight for the left arm offset. + /// + public FloatProperty LeftArmOffsetWeight; + + /// + /// The weight for the right arm offset. + /// + public FloatProperty RightArmOffsetWeight; + + /// + /// The weight for the left hand offset. + /// + public FloatProperty LeftHandOffsetWeight; + + /// + /// The weight for the right hand offset. + /// + public FloatProperty RightHandOffsetWeight; + + /// + /// The weight for the left leg offset. + /// + public FloatProperty LeftLegOffsetWeight; + + /// + /// The weight for the right leg offset. + /// + public FloatProperty RightLegOffsetWeight; + + /// + /// The weight for the left toe. + /// + public FloatProperty LeftToesOffsetWeight; + + /// + /// The weight for the right toe. + /// + public FloatProperty RightToesOffsetWeight; + + /// + /// The weight for aligning the feet. + /// + public FloatProperty AlignFeetWeight; + + /// + /// The local position of the left shoulder. + /// + public Vector3 LeftShoulderOriginalLocalPos; + + /// + /// The local position of the right shoulder. + /// + public Vector3 RightShoulderOriginalLocalPos; + + /// + /// The local position of the left toes. + /// + public Vector3 LeftToesOriginalLocalPos; + + /// + /// The local position of the right toes. + /// + public Vector3 RightToesOriginalLocalPos; + + /// + /// The left foot local rotation. + /// + public Quaternion LeftFootLocalRot; + + /// + /// The right foot local rotation. + /// + public Quaternion RightFootLocalRot; + + private Vector3 _targetHipsPos; + private Vector3 _targetHeadPos; + private Vector3 _preDeformationLeftUpperArmPos; + private Vector3 _preDeformationRightUpperArmPos; + private Vector3 _preDeformationLeftLowerArmPos; + private Vector3 _preDeformationRightLowerArmPos; + private Vector3 _preDeformationLeftHandPos; + private Vector3 _preDeformationRightHandPos; + private Vector3 _preDeformationLeftFootPos; + private Vector3 _preDeformationRightFootPos; + private Vector3 _preDeformationLeftToesPos; + private Vector3 _preDeformationRightToesPos; + + private Vector3 _leftFootOffset; + private Vector3 _rightFootOffset; + private Vector3 _hipsGroundingOffset; + + private int _leftUpperLegIndex => BoneAnimData.Length - 6; + private int _rightUpperLegIndex => _leftUpperLegIndex + 1; + private int _leftLowerLegIndex => _leftUpperLegIndex + 2; + private int _rightLowerLegIndex => _leftLowerLegIndex + 1; + + /// + public FloatProperty jobWeight { get; set; } + + /// + public void ProcessRootMotion(AnimationStream stream) + { + } + + /// + public void ProcessAnimation(AnimationStream stream) + { + float weight = jobWeight.Get(stream); + if (weight > 0f) + { + if (StartBones.Length == 0 || EndBones.Length == 0) + { + return; + } + + if (LeftToesBone.IsValid(stream)) + { + _preDeformationLeftToesPos = LeftToesBone.GetPosition(stream); + } + + if (RightToesBone.IsValid(stream)) + { + _preDeformationRightToesPos = RightToesBone.GetPosition(stream); + } + + _preDeformationLeftUpperArmPos = LeftUpperArmBone.GetPosition(stream); + _preDeformationRightUpperArmPos = RightUpperArmBone.GetPosition(stream); + _preDeformationLeftLowerArmPos = LeftLowerArmBone.GetPosition(stream); + _preDeformationRightLowerArmPos = RightLowerArmBone.GetPosition(stream); + _preDeformationLeftHandPos = LeftHandBone.GetPosition(stream); + _preDeformationRightHandPos = RightHandBone.GetPosition(stream); + _preDeformationLeftFootPos = LeftFootBone.GetPosition(stream); + _preDeformationRightFootPos = RightFootBone.GetPosition(stream); + + _targetHipsPos = HipsToHeadBoneTargets[HipsIndex].GetPosition(stream); + _targetHeadPos = HipsToHeadBoneTargets[^1].GetPosition(stream); + if (SpineLowerAlignmentWeight.Get(stream) != 0.0f || + SpineUpperAlignmentWeight.Get(stream) != 0.0f || + ChestAlignmentWeight.Get(stream) != 0.0f) + { + AlignSpine(stream, weight); + } + InterpolateShoulders(stream, weight); + UpdateBoneDirections(stream); + EnforceOriginalSkeletalProportions(stream, weight); + InterpolateLegs(stream, weight); + ApplySpineCorrection(stream, weight); + ApplyAccurateFeet(stream, weight); + AlignFeet(stream, weight); + InterpolateToesY(stream, weight); + InterpolateArms(stream, weight); + InterpolateHands(stream, weight); + } + else + { + for (int i = 0; i < HipsToHeadBones.Length; ++i) + { + AnimationRuntimeUtils.PassThrough(stream, HipsToHeadBones[i]); + } + + for (int i = 0; i < StartBones.Length; ++i) + { + AnimationRuntimeUtils.PassThrough(stream, StartBones[i]); + } + + for (int i = 0; i < EndBones.Length; ++i) + { + AnimationRuntimeUtils.PassThrough(stream, EndBones[i]); + } + } + } + + /// + /// Align the spine positions with the tracked spine positions, + /// adding an offset on spine bones to align with the hips for a straight spine. + /// + /// + /// + private void AlignSpine(AnimationStream stream, float weight) + { + var spineLowerOffset = Vector3.zero; + var spineUpperOffset = Vector3.zero; + var chestOffset = Vector3.zero; + + if (HipsToHeadBoneTargets[SpineLowerIndex].IsValid(stream)) + { + spineLowerOffset = HipsToHeadBoneTargets[HipsIndex].GetPosition(stream) - + HipsToHeadBoneTargets[SpineLowerIndex].GetPosition(stream); + spineLowerOffset.y = 0.0f; + } + + if (SpineUpperIndex > 0 && HipsToHeadBoneTargets[SpineUpperIndex].IsValid(stream)) + { + spineUpperOffset = (HipsToHeadBoneTargets[HipsIndex].GetPosition(stream) - + HipsToHeadBoneTargets[SpineUpperIndex].GetPosition(stream)) * 0.5f + + (HipsToHeadBones[HeadIndex - 1].GetPosition(stream) - + HipsToHeadBoneTargets[SpineUpperIndex].GetPosition(stream)) * 0.5f; + spineUpperOffset.y = 0.0f; + } + + if (ChestIndex > 0 && HipsToHeadBoneTargets[ChestIndex].IsValid(stream)) + { + chestOffset = (HipsToHeadBoneTargets[HipsIndex].GetPosition(stream) - + HipsToHeadBoneTargets[ChestIndex].GetPosition(stream)) * 0.25f + + (HipsToHeadBones[HeadIndex - 1].GetPosition(stream) - + HipsToHeadBoneTargets[ChestIndex].GetPosition(stream)) * 0.75f; + chestOffset.y = 0.0f; + } + + for (int i = SpineLowerIndex; i < HeadIndex; i++) + { + var targetBone = HipsToHeadBoneTargets[i]; + var originalBone = HipsToHeadBones[i]; + if (targetBone.IsValid(stream)) + { + var spineCorrectionWeight = weight; + var spineOffset = Vector3.zero; + + if (i == SpineLowerIndex) + { + spineOffset = Vector3.Lerp(Vector3.zero, spineLowerOffset, SpineLowerAlignmentWeight.Get(stream) * weight); ; + } + if (i == SpineUpperIndex) + { + spineOffset = Vector3.Lerp(Vector3.zero, spineUpperOffset, SpineUpperAlignmentWeight.Get(stream) * weight); + } + if (i == ChestIndex) + { + spineOffset = Vector3.Lerp(Vector3.zero, chestOffset, ChestAlignmentWeight.Get(stream) * weight); + } + + var targetPos = targetBone.GetPosition(stream) + spineOffset; + var originalPos = originalBone.GetPosition(stream); + targetPos.y = originalPos.y; + targetPos = Vector3.Lerp(originalPos, targetPos, spineCorrectionWeight); + originalBone.SetPosition(stream, targetPos); + } + HipsToHeadBoneTargets[i] = targetBone; + HipsToHeadBones[i] = originalBone; + } + } + + /// + /// Optionally interpolate from the current position to the original local position of the shoulders, + /// as the tracked positions may be mismatched. + /// + /// + /// + private void InterpolateShoulders(AnimationStream stream, float weight) + { + if (LeftShoulderBone.IsValid(stream)) + { + var leftShoulderLocalPos = LeftShoulderBone.GetLocalPosition(stream); + var leftShoulderOffset = Vector3.Lerp(Vector3.zero, + LeftShoulderOriginalLocalPos - leftShoulderLocalPos, weight * LeftShoulderOffsetWeight.Get(stream)); + LeftShoulderBone.SetLocalPosition(stream, leftShoulderLocalPos + leftShoulderOffset); + } + + if (RightShoulderBone.IsValid(stream)) + { + var rightShoulderLocalPos = RightShoulderBone.GetLocalPosition(stream); + var rightShoulderOffset = Vector3.Lerp(Vector3.zero, + RightShoulderOriginalLocalPos - rightShoulderLocalPos, weight * RightShoulderOffsetWeight.Get(stream)); + RightShoulderBone.SetLocalPosition(stream, rightShoulderLocalPos + rightShoulderOffset); + } + } + + /// + /// Update the bone directions between each bone pair. + /// + /// + private void UpdateBoneDirections(AnimationStream stream) + { + for (int i = 0; i < BoneDirections.Length; i++) + { + var startBone = StartBones[i]; + var endBone = EndBones[i]; + BoneDirections[i] = (endBone.GetPosition(stream) - startBone.GetPosition(stream)).normalized; + StartBones[i] = startBone; + EndBones[i] = endBone; + } + } + + /// + /// Applies spine correction, depending on the type picked. + /// + /// + /// + private void ApplySpineCorrection(AnimationStream stream, float weight) + { + // This hips offset is the offset required to preserve leg lengths when feet are planted. + _hipsGroundingOffset = (_leftFootOffset + _rightFootOffset) / 2f; + + // First, adjust the positions of the body based on the correction type. + var spineCorrectionType = (FullBodyDeformationData.SpineTranslationCorrectionType) + SpineCorrectionType.Get(stream); + + if (spineCorrectionType == FullBodyDeformationData.SpineTranslationCorrectionType.None) + { + ApplyNoSpineCorrection(stream, weight); + } + + if (spineCorrectionType == FullBodyDeformationData.SpineTranslationCorrectionType.AccurateHead) + { + ApplyAccurateHeadSpineCorrection(stream, weight); + } + + if (spineCorrectionType == FullBodyDeformationData.SpineTranslationCorrectionType.AccurateHips || + spineCorrectionType == FullBodyDeformationData.SpineTranslationCorrectionType.AccurateHipsAndHead) + { + ApplyAccurateHipsSpineCorrection(stream, weight); + } + + if (spineCorrectionType == FullBodyDeformationData.SpineTranslationCorrectionType.AccurateHipsAndHead) + { + ApplyAccurateHipsAndHeadSpineCorrection(stream, weight); + } + } + + /// + /// Adjust the hips by the foot offset, then adjust the legs afterwards. + /// + /// + /// + private void ApplyNoSpineCorrection(AnimationStream stream, float weight) + { + var targetHipsPos = HipsBone.GetPosition(stream) + + Vector3.Lerp(Vector3.zero, _hipsGroundingOffset, weight); + var targetLeftUpperLegPos = LeftUpperLegBone.GetPosition(stream); + var targetRightUpperLegPos = RightUpperLegBone.GetPosition(stream); + + HipsBone.SetPosition(stream, targetHipsPos); + LeftUpperLegBone.SetPosition(stream, targetLeftUpperLegPos); + RightUpperLegBone.SetPosition(stream, targetRightUpperLegPos); + } + + /// + /// Keep the head accurate, adjusting the proportions of the full body. + /// + /// + /// + private void ApplyAccurateHeadSpineCorrection(AnimationStream stream, float weight) + { + var headOffset = _targetHeadPos - HeadBone.GetPosition(stream); + + // Separate head offset application to upper and lower body. + var upperBodyProportion = 0.0f; + for (int i = HipsIndex; i < HeadIndex; i++) + { + upperBodyProportion += BoneAnimData[i].HeightProportion; + } + var lowerBodyProportion = 1 - upperBodyProportion; + + // Upper body. + UpperBodyOffsets[HipsIndex] = headOffset * (lowerBodyProportion + BoneAnimData[HipsIndex].HeightProportion); + UpperBodyTargetPositions[HipsIndex] = HipsBone.GetPosition(stream) + + Vector3.Lerp(Vector3.zero, UpperBodyOffsets[HipsIndex], weight); + for (int i = SpineLowerIndex; i < HeadIndex; i++) + { + var bone = HipsToHeadBones[i]; + UpperBodyOffsets[i] = UpperBodyOffsets[i - 1] + headOffset * BoneAnimData[i].LimbProportion; + UpperBodyTargetPositions[i] = bone.GetPosition(stream) + + Vector3.Lerp(Vector3.zero, UpperBodyOffsets[i], weight); + } + + // Lower body. + var leftUpperLegOffset = -_hipsGroundingOffset; + var rightUpperLegOffset = -_hipsGroundingOffset; + var leftLowerLegOffset = headOffset * + (BoneAnimData[_leftLowerLegIndex].HeightProportion + + BoneAnimData[_leftUpperLegIndex].HeightProportion); + var rightLowerLegOffset = headOffset * + (BoneAnimData[_rightLowerLegIndex].HeightProportion + + BoneAnimData[_rightUpperLegIndex].HeightProportion); + var targetLeftUpperLegPos = LeftUpperLegBone.GetLocalPosition(stream) + + Vector3.Lerp(Vector3.zero, leftUpperLegOffset, weight); + var targetRightUpperLegPos = RightUpperLegBone.GetLocalPosition(stream) + + Vector3.Lerp(Vector3.zero, rightUpperLegOffset, weight); + var targetLeftLowerLegPos = LeftLowerLegBone.GetPosition(stream) + + Vector3.Lerp(Vector3.zero, leftLowerLegOffset, weight); + var targetRightLowerLegPos = RightLowerLegBone.GetPosition(stream) + + Vector3.Lerp(Vector3.zero, rightLowerLegOffset, weight); + + // Set bone positions. + for (int i = HipsIndex; i < HeadIndex; i++) + { + var bone = HipsToHeadBones[i]; + bone.SetPosition(stream, UpperBodyTargetPositions[i]); + HipsToHeadBones[i] = bone; + } + HeadBone.SetPosition(stream, _targetHeadPos); + + LeftUpperLegBone.SetLocalPosition(stream, targetLeftUpperLegPos); + RightUpperLegBone.SetLocalPosition(stream, targetRightUpperLegPos); + LeftLowerLegBone.SetPosition(stream, targetLeftLowerLegPos); + RightLowerLegBone.SetPosition(stream, targetRightLowerLegPos); + } + + /// + /// Keep the hips accurate, adjusting the proportions of the lower body. + /// + /// + /// + private void ApplyAccurateHipsSpineCorrection(AnimationStream stream, float weight) + { + // The hips are not affected by any bone pairs. However, the hips grounding offset needs to be distributed + // through the legs. Apply the full hips offset to the upper legs so it looks correct. + var leftUpperLegOffset = -_hipsGroundingOffset; + var rightUpperLegOffset = -_hipsGroundingOffset; + var leftLowerLegOffset = -_hipsGroundingOffset * + (BoneAnimData[_leftLowerLegIndex].LimbProportion + + BoneAnimData[_leftUpperLegIndex].LimbProportion); + var rightLowerLegOffset = -_hipsGroundingOffset * + (BoneAnimData[_rightLowerLegIndex].LimbProportion + + BoneAnimData[_rightUpperLegIndex].LimbProportion); + + var targetLeftUpperLegPos = LeftUpperLegBone.GetPosition(stream) + + Vector3.Lerp(Vector3.zero, leftUpperLegOffset, weight); + var targetRightUpperLegPos = RightUpperLegBone.GetPosition(stream) + + Vector3.Lerp(Vector3.zero, rightUpperLegOffset, weight); + var targetLeftLowerLegPos = LeftLowerLegBone.GetPosition(stream) + + Vector3.Lerp(Vector3.zero, leftLowerLegOffset, weight); + var targetRightLowerLegPos = RightLowerLegBone.GetPosition(stream) + + Vector3.Lerp(Vector3.zero, rightLowerLegOffset, weight); + + HipsBone.SetPosition(stream, _targetHipsPos); + LeftUpperLegBone.SetPosition(stream, targetLeftUpperLegPos); + RightUpperLegBone.SetPosition(stream, targetRightUpperLegPos); + LeftLowerLegBone.SetPosition(stream, targetLeftLowerLegPos); + RightLowerLegBone.SetPosition(stream, targetRightLowerLegPos); + } + + /// + /// Keep the hips and head accurate, adjusting the proportions of the upper body. + /// + /// + /// + private void ApplyAccurateHipsAndHeadSpineCorrection(AnimationStream stream, float weight) + { + // Calculate the offset between the current head and the tracked head to be undone by the hips + // and the rest of the spine. + var headOffset = _targetHeadPos - HeadBone.GetPosition(stream); + + UpperBodyOffsets[HipsIndex] = headOffset * BoneAnimData[HipsIndex].LimbProportion; + for (int i = SpineLowerIndex; i < HeadIndex; i++) + { + var bone = HipsToHeadBones[i]; + UpperBodyOffsets[i] = UpperBodyOffsets[i - 1] + headOffset * BoneAnimData[i].LimbProportion; + UpperBodyTargetPositions[i] = bone.GetPosition(stream) + + Vector3.Lerp(Vector3.zero, UpperBodyOffsets[i], weight); + } + + HipsBone.SetPosition(stream, _targetHipsPos); + for (int i = SpineLowerIndex; i < HeadIndex; i++) + { + var bone = HipsToHeadBones[i]; + bone.SetPosition(stream, UpperBodyTargetPositions[i]); + HipsToHeadBones[i] = bone; + } + HeadBone.SetPosition(stream, _targetHeadPos); + } + + /// + /// Sets the pre-deformation feet positions. + /// + /// The animation stream. + /// The weight of this operation. + private void ApplyAccurateFeet(AnimationStream stream, float weight) + { + var leftFootPos = LeftFootBone.GetPosition(stream); + var rightFootPos = RightFootBone.GetPosition(stream); + LeftFootBone.SetPosition(stream, + Vector3.Lerp(leftFootPos, _preDeformationLeftFootPos, weight)); + RightFootBone.SetPosition(stream, + Vector3.Lerp(rightFootPos, _preDeformationRightFootPos, weight)); + } + + /// + /// Align the feet to toward the toes using the up axis from its original rotation. + /// + /// The animation stream. + /// The weight of this operation. + private void AlignFeet(AnimationStream stream, float weight) + { + if (!LeftToesBone.IsValid(stream) || !RightToesBone.IsValid(stream)) + { + return; + } + var footAlignmentWeight = AlignFeetWeight.Get(stream) * weight; + var originalLeftFootLocalRot = LeftFootBone.GetLocalRotation(stream); + var originalRightFootLocalRot = RightFootBone.GetLocalRotation(stream); + LeftFootBone.SetLocalRotation(stream, LeftFootLocalRot); + RightFootBone.SetLocalRotation(stream, RightFootLocalRot); + + var leftFootTargetRotation = LeftFootLocalRot * GetRotationForFootAlignment(stream, + _preDeformationLeftToesPos, + LeftFootBone.GetRotation(stream) * Vector3.up, + LeftFootBone, LeftToesBone); + var rightFootTargetRotation = RightFootLocalRot * GetRotationForFootAlignment(stream, + _preDeformationRightToesPos, + RightFootBone.GetRotation(stream) * Vector3.up, + RightFootBone, RightToesBone); + + LeftFootBone.SetLocalRotation(stream, + Quaternion.Slerp(originalLeftFootLocalRot, leftFootTargetRotation, footAlignmentWeight)); + RightFootBone.SetLocalRotation(stream, + Quaternion.Slerp(originalRightFootLocalRot, rightFootTargetRotation, footAlignmentWeight)); + } + + /// + /// Gets the rotation around an axis for aligning the feet. + /// + /// The animation stream. + /// The original toes position. + /// The axis to rotate around. + /// The foot bone. + /// The toes bone. + /// + private Quaternion GetRotationForFootAlignment(AnimationStream stream, + Vector3 originalToesPos, Vector3 rotateAxis, + ReadWriteTransformHandle footBone, ReadWriteTransformHandle toesBone) + { + var footPosition = footBone.GetPosition(stream); + var originalToesDir = footPosition - originalToesPos; + // don't do anything if the foot has not been deformed from the original position + if (originalToesDir.magnitude < Mathf.Epsilon) + { + return Quaternion.identity; + } + var targetToesDir = footPosition - toesBone.GetPosition(stream); + var dot = Vector3.Dot(originalToesDir, targetToesDir); + var cosineValue = dot / (originalToesDir.magnitude * targetToesDir.magnitude); + + var angle = Mathf.Acos(cosineValue); + if (float.IsNaN(angle)) + { + return Quaternion.identity; + } + return Quaternion.AngleAxis(angle, rotateAxis); + } + + /// + /// For each bone pair, where a bone pair has a start and end bone, enforce its original proportion by using + /// the tracked direction of the bone, but the original size. + /// + /// The animation stream. + /// The weight of this operation. + private void EnforceOriginalSkeletalProportions(AnimationStream stream, float weight) + { + for (int i = 0; i < StartBones.Length; i++) + { + var startBone = StartBones[i]; + var endBone = EndBones[i]; + var startPos = startBone.GetPosition(stream); + var endPos = endBone.GetPosition(stream); + var data = BoneAnimData[i]; + + var targetPos = startPos + Vector3.Scale(BoneDirections[i] * data.Distance, ScaleFactor[0]); + endBone.SetPosition(stream, Vector3.Lerp(endPos, targetPos, weight)); + StartBones[i] = startBone; + EndBones[i] = endBone; + } + } + + /// + /// Interpolates the arm positions from the pre-deformation positions to the positions after skeletal + /// proportions are enforced. The hand positions can be incorrect after this function. + /// + /// The animation stream. + /// The weight of this operation. + private void InterpolateArms(AnimationStream stream, float weight) + { + var leftLowerArmPos = LeftLowerArmBone.GetPosition(stream); + var rightLowerArmPos = RightLowerArmBone.GetPosition(stream); + var leftUpperArmPos = LeftUpperArmBone.GetPosition(stream); + var rightUpperArmPos = RightUpperArmBone.GetPosition(stream); + var leftArmOffsetWeight = weight * LeftArmOffsetWeight.Get(stream); + var rightArmOffsetWeight = weight * RightArmOffsetWeight.Get(stream); + + LeftUpperArmBone.SetPosition(stream, + Vector3.Lerp(_preDeformationLeftUpperArmPos, leftUpperArmPos, leftArmOffsetWeight)); + RightUpperArmBone.SetPosition(stream, + Vector3.Lerp(_preDeformationRightUpperArmPos, rightUpperArmPos, rightArmOffsetWeight)); + LeftLowerArmBone.SetPosition(stream, + Vector3.Lerp(_preDeformationLeftLowerArmPos, leftLowerArmPos, leftArmOffsetWeight)); + RightLowerArmBone.SetPosition(stream, + Vector3.Lerp(_preDeformationRightLowerArmPos, rightLowerArmPos, rightArmOffsetWeight)); + } + + /// + /// Interpolates the hand positions from the pre-deformation positions to the positions after skeletal + /// proportions are enforced. + /// + /// The animation stream. + /// The weight of this operation. + private void InterpolateHands(AnimationStream stream, float weight) + { + var leftHandPos = LeftHandBone.GetPosition(stream); + var rightHandPos = RightHandBone.GetPosition(stream); + var leftHandOffsetWeight = weight * LeftHandOffsetWeight.Get(stream); + var rightHandOffsetWeight = weight * RightHandOffsetWeight.Get(stream); + LeftHandBone.SetPosition(stream, + Vector3.Lerp(_preDeformationLeftHandPos, leftHandPos, leftHandOffsetWeight)); + RightHandBone.SetPosition(stream, + Vector3.Lerp(_preDeformationRightHandPos, rightHandPos, rightHandOffsetWeight)); + } + + /// + /// Interpolates the leg positions from the pre-deformation positions to the positions after skeletal + /// proportions are enforced. The feet positions can be incorrect after this function + /// + /// The animation stream. + /// The weight of this operation. + private void InterpolateLegs(AnimationStream stream, float weight) + { + var leftLegOffsetWeight = weight * LeftLegOffsetWeight.Get(stream); + var rightLegOffsetWeight = weight * RightLegOffsetWeight.Get(stream); + _leftFootOffset = ApplyScaleAndWeight( + _preDeformationLeftFootPos - LeftFootBone.GetPosition(stream), leftLegOffsetWeight); + _rightFootOffset = ApplyScaleAndWeight( + _preDeformationRightFootPos - RightFootBone.GetPosition(stream), rightLegOffsetWeight); + + var targetLeftUpperLegPos = LeftUpperLegBone.GetPosition(stream) + _leftFootOffset; + var targetRightUpperLegPos = RightUpperLegBone.GetPosition(stream) + _rightFootOffset; + var targetLeftLowerLegPos = LeftLowerLegBone.GetPosition(stream) + _leftFootOffset; + var targetRightLowerLegPos = RightLowerLegBone.GetPosition(stream) + _rightFootOffset; + var targetLeftFootPos = LeftFootBone.GetPosition(stream) + _leftFootOffset; + var targetRightFootPos = RightFootBone.GetPosition(stream) + _rightFootOffset; + + LeftUpperLegBone.SetPosition(stream, targetLeftUpperLegPos); + RightUpperLegBone.SetPosition(stream, targetRightUpperLegPos); + LeftLowerLegBone.SetPosition(stream, targetLeftLowerLegPos); + RightLowerLegBone.SetPosition(stream, targetRightLowerLegPos); + LeftFootBone.SetPosition(stream, targetLeftFootPos); + RightFootBone.SetPosition(stream, targetRightFootPos); + } + + /// + /// Interpolates the toes Y position from the pre-deformation positions to the original local positions after + /// skeletal proportions are enforced. + /// + /// The animation stream. + /// The weight of this operation. + private void InterpolateToesY(AnimationStream stream, float weight) + { + var leftToesOffsetWeight = weight * LeftToesOffsetWeight.Get(stream); + var rightToesOffsetWeight = weight * RightToesOffsetWeight.Get(stream); + + // Modify only the y component of the toes. + if (LeftToesBone.IsValid(stream)) + { + var leftToesOffsetVector = ApplyScaleAndWeight( + Vector3.up * (LeftToesOriginalLocalPos.y - LeftToesBone.GetLocalPosition(stream).y), + leftToesOffsetWeight); + var targetLeftToesPos = LeftToesBone.GetPosition(stream) + leftToesOffsetVector; + LeftToesBone.SetPosition(stream, targetLeftToesPos); + } + + if (RightToesBone.IsValid(stream)) + { + var rightToesOffsetVector = ApplyScaleAndWeight( + Vector3.up * (RightToesOriginalLocalPos.y - RightToesBone.GetLocalPosition(stream).y), + rightToesOffsetWeight); + var targetRightToesPos = RightToesBone.GetPosition(stream) + rightToesOffsetVector; + RightToesBone.SetPosition(stream, targetRightToesPos); + } + } + + private Vector3 ApplyScaleAndWeight(Vector3 target, float weight) + { + return Vector3.Scale(Vector3.Lerp(Vector3.zero, target, weight), ScaleFactor[0]); + } + } + + /// + /// The FullBodyDeformation job binder. + /// + /// The constraint data type + public class FullBodyDeformationJobBinder : AnimationJobBinder + where T : struct, IAnimationJobData, IFullBodyDeformationData + { + /// + public override FullBodyDeformationJob Create(Animator animator, ref T data, Component component) + { + var job = new FullBodyDeformationJob(); + + job.HipsBone = ReadWriteTransformHandle.Bind(animator, data.HipsToHeadBones[0]); + job.HeadBone = ReadWriteTransformHandle.Bind(animator, data.HipsToHeadBones[^1]); + job.LeftShoulderBone = data.LeftArm.ShoulderBone != null ? + ReadWriteTransformHandle.Bind(animator, data.LeftArm.ShoulderBone) : new ReadWriteTransformHandle(); + job.RightShoulderBone = data.RightArm.ShoulderBone != null ? + ReadWriteTransformHandle.Bind(animator, data.RightArm.ShoulderBone) : new ReadWriteTransformHandle(); + job.LeftUpperArmBone = ReadWriteTransformHandle.Bind(animator, data.LeftArm.UpperArmBone); + job.LeftLowerArmBone = ReadWriteTransformHandle.Bind(animator, data.LeftArm.LowerArmBone); + job.RightUpperArmBone = ReadWriteTransformHandle.Bind(animator, data.RightArm.UpperArmBone); + job.RightLowerArmBone = ReadWriteTransformHandle.Bind(animator, data.RightArm.LowerArmBone); + job.LeftHandBone = ReadWriteTransformHandle.Bind(animator, data.LeftArm.HandBone); + job.RightHandBone = ReadWriteTransformHandle.Bind(animator, data.RightArm.HandBone); + job.LeftUpperLegBone = ReadWriteTransformHandle.Bind(animator, data.LeftLeg.UpperLegBone); + job.LeftLowerLegBone = ReadWriteTransformHandle.Bind(animator, data.LeftLeg.LowerLegBone); + job.RightUpperLegBone = ReadWriteTransformHandle.Bind(animator, data.RightLeg.UpperLegBone); + job.RightLowerLegBone = ReadWriteTransformHandle.Bind(animator, data.RightLeg.LowerLegBone); + job.LeftFootBone = ReadWriteTransformHandle.Bind(animator, data.LeftLeg.FootBone); + job.RightFootBone = ReadWriteTransformHandle.Bind(animator, data.RightLeg.FootBone); + job.LeftToesBone = data.LeftLeg.ToesBone != null ? + ReadWriteTransformHandle.Bind(animator, data.LeftLeg.ToesBone) : new ReadWriteTransformHandle(); + job.RightToesBone = data.RightLeg.ToesBone != null ? + ReadWriteTransformHandle.Bind(animator, data.RightLeg.ToesBone) : new ReadWriteTransformHandle(); + + job.StartBones = new NativeArray(data.BonePairs.Length, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.EndBones = new NativeArray(data.BonePairs.Length, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.HipsToHeadBones = new NativeArray(data.HipsToHeadBones.Length, + Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.HipsToHeadBoneTargets = new NativeArray(data.HipsToHeadBoneTargets.Length, + Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.UpperBodyOffsets = new NativeArray(data.HipsToHeadBones.Length, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.UpperBodyTargetPositions = new NativeArray(data.HipsToHeadBones.Length, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.BoneAnimData = new NativeArray(data.BonePairs.Length, + Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.BoneDirections = new NativeArray(data.BonePairs.Length, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.ScaleFactor = new NativeArray(1, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + + for (int i = 0; i < data.HipsToHeadBones.Length; i++) + { + job.HipsToHeadBones[i] = ReadWriteTransformHandle.Bind(animator, data.HipsToHeadBones[i]); + job.UpperBodyOffsets[i] = Vector3.zero; + job.UpperBodyTargetPositions[i] = Vector3.zero; + } + + for (int i = 0; i < data.HipsToHeadBoneTargets.Length; i++) + { + job.HipsToHeadBoneTargets[i] = ReadOnlyTransformHandle.Bind(animator, data.HipsToHeadBoneTargets[i]); + } + + for (int i = 0; i < data.BonePairs.Length; i++) + { + var boneAnimData = new FullBodyDeformationJob.BoneAnimationData + { + Distance = data.BonePairs[i].Distance, + HeightProportion = data.BonePairs[i].HeightProportion, + LimbProportion = data.BonePairs[i].LimbProportion + }; + job.StartBones[i] = ReadWriteTransformHandle.Bind(animator, data.BonePairs[i].StartBone); + job.EndBones[i] = ReadWriteTransformHandle.Bind(animator, data.BonePairs[i].EndBone); + job.BoneAnimData[i] = boneAnimData; + } + + job.SpineCorrectionType = IntProperty.Bind(animator, component, data.SpineCorrectionTypeIntProperty); + job.SpineLowerAlignmentWeight = + FloatProperty.Bind(animator, component, data.SpineLowerAlignmentWeightFloatProperty); + job.SpineUpperAlignmentWeight = + FloatProperty.Bind(animator, component, data.SpineUpperAlignmentWeightFloatProperty); + job.ChestAlignmentWeight = + FloatProperty.Bind(animator, component, data.ChestAlignmentWeightFloatProperty); + job.LeftShoulderOffsetWeight = + FloatProperty.Bind(animator, component, data.LeftShoulderWeightFloatProperty); + job.RightShoulderOffsetWeight = + FloatProperty.Bind(animator, component, data.RightShoulderWeightFloatProperty); + job.LeftArmOffsetWeight = FloatProperty.Bind(animator, component, data.LeftArmWeightFloatProperty); + job.RightArmOffsetWeight = FloatProperty.Bind(animator, component, data.RightArmWeightFloatProperty); + job.LeftHandOffsetWeight = FloatProperty.Bind(animator, component, data.LeftHandWeightFloatProperty); + job.RightHandOffsetWeight = FloatProperty.Bind(animator, component, data.RightHandWeightFloatProperty); + job.LeftLegOffsetWeight = FloatProperty.Bind(animator, component, data.LeftLegWeightFloatProperty); + job.RightLegOffsetWeight = FloatProperty.Bind(animator, component, data.RightLegWeightFloatProperty); + job.LeftToesOffsetWeight = FloatProperty.Bind(animator, component, data.LeftToesWeightFloatProperty); + job.RightToesOffsetWeight = FloatProperty.Bind(animator, component, data.RightToesWeightFloatProperty); + job.AlignFeetWeight = FloatProperty.Bind(animator, component, data.AlignFeetWeightFloatProperty); + + job.HipsIndex = (int)HumanBodyBones.Hips; + job.SpineLowerIndex = job.HipsIndex + 1; + job.SpineUpperIndex = animator.GetBoneTransform(HumanBodyBones.Chest) != null ? + job.SpineLowerIndex + 1 : -1; + job.ChestIndex = animator.GetBoneTransform(HumanBodyBones.UpperChest) != null ? + job.SpineUpperIndex + 1 : -1; + job.HeadIndex = data.HipsToHeadBones.Length; + job.LeftToesOriginalLocalPos = data.LeftLeg.ToesLocalPos; + job.RightToesOriginalLocalPos = data.RightLeg.ToesLocalPos; + job.LeftShoulderOriginalLocalPos = data.LeftArm.ShoulderLocalPos; + job.RightShoulderOriginalLocalPos = data.RightArm.ShoulderLocalPos; + job.LeftFootLocalRot = data.LeftLeg.FootLocalRot; + job.RightFootLocalRot = data.RightLeg.FootLocalRot; + + return job; + } + + /// + public override void Update(FullBodyDeformationJob job, ref T data) + { + if (data.IsBoneTransformsDataValid()) + { + data.ShouldUpdate = true; + } + + var currentScale = data.ConstraintCustomSkeleton != null + ? data.ConstraintCustomSkeleton.transform.lossyScale + : data.ConstraintAnimator.transform.lossyScale; + job.ScaleFactor[0] = + DivideVector3(currentScale, data.StartingScale); + base.Update(job, ref data); + + if (!data.IsBoneTransformsDataValid()) + { + data.ShouldUpdate = false; + } + } + + /// + public override void Destroy(FullBodyDeformationJob job) + { + job.StartBones.Dispose(); + job.EndBones.Dispose(); + job.BoneAnimData.Dispose(); + job.HipsToHeadBones.Dispose(); + job.HipsToHeadBoneTargets.Dispose(); + job.UpperBodyOffsets.Dispose(); + job.UpperBodyTargetPositions.Dispose(); + job.BoneDirections.Dispose(); + job.ScaleFactor.Dispose(); + } + + private Vector3 DivideVector3(Vector3 dividend, Vector3 divisor) + { + Vector3 targetScale = Vector3.one; + if (IsNonZero(divisor)) + { + targetScale = new Vector3( + dividend.x / divisor.x, dividend.y / divisor.y, dividend.z / divisor.z); + } + + return targetScale; + } + + private bool IsNonZero(Vector3 v) + { + return v.x != 0 && v.y != 0 && v.z != 0; + } + } +} diff --git a/Runtime/Scripts/AnimationRigging/FullBodyDeformationJob.cs.meta b/Runtime/Scripts/AnimationRigging/FullBodyDeformationJob.cs.meta new file mode 100644 index 00000000..c980bfc0 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/FullBodyDeformationJob.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 883a1e82a3dc45e4097514ada3591f83 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/FullBodyHandDeformation.cs b/Runtime/Scripts/AnimationRigging/FullBodyHandDeformation.cs new file mode 100644 index 00000000..1b1c1231 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/FullBodyHandDeformation.cs @@ -0,0 +1,829 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using System; +using System.Collections.Generic; +using Oculus.Interaction; +using UnityEngine; +using static OVRUnityHumanoidSkeletonRetargeter; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// Used to try to maintain the same proportions in the fingers for both hands. Copied from HandDeformation, + /// but using the full body bone set. + /// + [DefaultExecutionOrder(225)] + public class FullBodyHandDeformation : MonoBehaviour + { + /// + /// Finger class used for deformation. + /// + [Serializable] + public class FingerInfo + { + /// + /// Main constructor. + /// + /// Start transform for finger. + /// End transform for finger. + /// Id of start bone. + /// Id of end bone. + public FingerInfo(Transform startTransform, Transform endTransform, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId startBoneId, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId endBoneId) + { + StartBoneTransform = startTransform; + EndBoneTransform = endTransform; + StartBoneId = startBoneId; + EndBoneId = endBoneId; + } + + /// + /// The start bone transform. + /// + public Transform StartBoneTransform; + + /// + /// The end bone transform. + /// + public Transform EndBoneTransform; + + /// + /// The start transform bone id. + /// + public OVRHumanBodyBonesMappings.FullBodyTrackingBoneId StartBoneId; + + /// + /// The end transform bone id. + /// + public OVRHumanBodyBonesMappings.FullBodyTrackingBoneId EndBoneId; + + /// + /// The position offset based on local space to apply. + /// + public Vector3 EndPosOffset = Vector3.zero; + + /// + /// The rotation offset to apply. + /// + public Quaternion EndRotOffset = Quaternion.identity; + + /// + /// Original distance for bone. + /// + public float Distance; + + /// + /// The direction of the finger bone. + /// + private Vector3 _direction; + + /// + /// Updates the distance between the start and end bone transforms. + /// + public void UpdateDistance() + { + if (!IsValid()) + { + return; + } + Distance = Vector3.Distance(StartBoneTransform.position, EndBoneTransform.position); + } + + /// + /// Updates the direction from the start to the end bone transform. + /// + public void UpdateDirection() + { + if (!IsValid()) + { + return; + } + Vector3 endPos = EndBoneTransform.position + + EndBoneTransform.right * EndPosOffset.x + + EndBoneTransform.up * EndPosOffset.y + + EndBoneTransform.forward * EndPosOffset.z; + _direction = (endPos - StartBoneTransform.position).normalized; + } + + /// + /// Updates the end bone transform position with the direction and distance added to the + /// start bone transform position. + /// + /// The scale to be applied. + public void UpdateBonePosition(Vector3 scaleFactor) + { + if (!IsValid()) + { + return; + } + if (!RiggingUtilities.IsFiniteVector3(StartBoneTransform.position) || + !RiggingUtilities.IsFiniteVector3(EndBoneTransform.position)) + { + return; + } + + var targetPos = StartBoneTransform.position + Vector3.Scale(_direction * Distance, scaleFactor); + + // Make sure to undo the extra bone position. + if (EndBoneId == OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandThumbMetacarpal || + EndBoneId == OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandThumbMetacarpal) + { + targetPos -= EndBoneTransform.parent.position - StartBoneTransform.position; + } + + EndBoneTransform.position = targetPos; + } + + /// + /// Update rotation based on offset relative to bind pose. + /// + public void UpdateRotationBasedOnOffset() + { + if (!IsValid()) + { + return; + } + EndBoneTransform.rotation *= EndRotOffset; + } + + private bool IsValid() + { + return StartBoneTransform != null && EndBoneTransform != null; + } + } + + /// + /// Finger offset class used for deformation. + /// + [Serializable] + public class FingerOffset + { + /// + /// The id of the finger to apply the offset to. + /// + [Tooltip(HandDeformationTooltips.FingerOffset.FingerId)] + public OVRHumanBodyBonesMappings.FullBodyTrackingBoneId FingerId; + + /// + /// Optional finger bone. + /// + [Optional] + public Transform Finger; + + /// + /// The finger position offset. + /// + [Tooltip(HandDeformationTooltips.FingerOffset.FingerPosOffset)] + public Vector3 FingerPosOffset; + + /// + /// The finger rotation offset. + /// + [Tooltip(HandDeformationTooltips.FingerOffset.FingerRotOffset)] + public Vector3 FingerRotOffset; + } + + /// + /// If a finger bone isn't mapped, interpolate the finger bone between two fingers. + /// + [Serializable] + public class InterpolateFinger + { + /// + /// Start of finger. + /// + public Transform StartFinger; + /// + /// Target finger to influence. + /// + public Transform TargetFinger; + /// + /// End of finger. + /// + public Transform EndFinger; + /// + /// Distance between start and target fingers transforms. + /// + public float Distance; + + /// + /// Update distance between start finger and update finger. + /// + public void UpdateDistance() + { + if (StartFinger == null || EndFinger == null) + { + return; + } + + Distance = Vector3.Distance(StartFinger.position, TargetFinger.position); + } + + public void UpdateTargetFinger() + { + if (StartFinger == null || EndFinger == null || TargetFinger == null) + { + return; + } + + var endPosition = EndFinger.position; + var endRotation = EndFinger.rotation; + var startPosition = StartFinger.position; + var startRotation = StartFinger.rotation; + var ratio = Distance / Vector3.Distance(startPosition, endPosition); + TargetFinger.position = Vector3.Lerp(startPosition, endPosition, ratio); + TargetFinger.rotation = Quaternion.Slerp(startRotation, endRotation, ratio); + EndFinger.position = endPosition; + EndFinger.rotation = endRotation; + } + } + + /// + /// The character's animator. + /// + [SerializeField] + [Tooltip(HandDeformationTooltips.Animator)] + protected Animator _animator; + /// + /// The character's animator. + /// + public Animator AnimatorComp + { + get => _animator; + set => _animator = value; + } + + /// + /// The source skeleton. + /// + [SerializeField] + [Tooltip(HandDeformationTooltips.Skeleton)] + protected OVRSkeleton _skeleton; + /// + /// The source skeleton. + /// + public OVRSkeleton Skeleton + { + get => _skeleton; + set => _skeleton = value; + } + + /// + /// The character's left hand bone. + /// + [SerializeField] + [Tooltip(HandDeformationTooltips.LeftHand)] + protected Transform _leftHand; + /// + /// The character's left hand bone. + /// + public Transform LeftHand + { + get => _leftHand; + set => _leftHand = value; + } + + /// + /// The character's right hand bone. + /// + [SerializeField] + [Tooltip(HandDeformationTooltips.RightHand)] + protected Transform _rightHand; + /// + /// The character's right hand bone. + /// + public Transform RightHand + { + get => _rightHand; + set => _rightHand = value; + } + + /// + /// If true, copy the finger offsets data into FingerInfo during every update. + /// + [SerializeField] + [Tooltip(HandDeformationTooltips.CopyFingerDataInUpdate)] + protected bool _copyFingerOffsetsInUpdate; + /// + /// If true, copy the finger offsets data into FingerInfo during every update. + /// + public bool CopyFingerOffsetsInUpdate + { + get => _copyFingerOffsetsInUpdate; + set => _copyFingerOffsetsInUpdate = value; + } + + /// + /// The array of finger offsets to be applied. + /// + [SerializeField] + [Tooltip(HandDeformationTooltips.FingerOffsets)] + protected FingerOffset[] _fingerOffsets; + /// + /// The array of finger offsets to be applied. + /// + public FingerOffset[] FingerOffsets + { + get => _fingerOffsets; + set => _fingerOffsets = value; + } + + /// + /// Possible metacarpal bones. + /// + [SerializeField] + [Tooltip(HandDeformationTooltips.InterpolatedFingers)] + protected InterpolateFinger[] _interpolatedFingers; + /// + /// Possible metacarpal bones. + /// + public InterpolateFinger[] InterpolatedFingers + { + get => _interpolatedFingers; + set => _interpolatedFingers = value; + } + + /// + /// All finger joints. + /// + [SerializeField] + [Tooltip(HandDeformationTooltips.Fingers)] + protected FingerInfo[] _fingers; + /// + /// All finger joints. + /// + public FingerInfo[] Fingers + { + get => _fingers; + set => _fingers = value; + } + + /// + /// If finger data has been calculated or not. + /// + [SerializeField, InspectorButton("CalculateFingerData")] + [Tooltip(HandDeformationTooltips.CalculateFingerData)] + protected bool _calculateFingerData; + + private Vector3 _startingScale; + + /// + /// Initialize the finger offsets. + /// + protected void Awake() + { + if (_fingers == null || _fingers.Length == 0) + { + CalculateFingerData(); + } + } + + /// + /// Calculates all finger data necessary for deformation. + /// + public void CalculateFingerData() + { +#if UNITY_EDITOR + UnityEditor.Undo.RecordObject(this, "Undo Hand Deformation Setup"); +#endif + List leftFingers = SetUpLeftHand(); + List rightFingers = SetUpRightHand(); + List allFingers = new List(); + allFingers.AddRange(leftFingers); + allFingers.AddRange(rightFingers); + _fingers = allFingers.ToArray(); + CopyFingerOffsetData(); + + _skeleton = GetComponent(); + _startingScale = transform.lossyScale; + _leftHand = _animator.GetBoneTransform(HumanBodyBones.LeftHand); + _rightHand = _animator.GetBoneTransform(HumanBodyBones.RightHand); + SetupInterpolatedFingers(); + foreach (var finger in _fingers) + { + finger.UpdateDistance(); + } +#if UNITY_EDITOR + UnityEditor.PrefabUtility.RecordPrefabInstancePropertyModifications(this); +#endif + } + + private void SetupInterpolatedFingers() + { + List interpolatedFingers = new List(); + var leftThumbMetacarpal = CheckPossibleMetacarpal(_leftHand, HumanBodyBones.LeftThumbProximal); + if (leftThumbMetacarpal != null) + { + interpolatedFingers.Add(leftThumbMetacarpal); + } + var leftIndexMetacarpal = CheckPossibleMetacarpal(_leftHand, HumanBodyBones.LeftIndexProximal); + if (leftIndexMetacarpal != null) + { + interpolatedFingers.Add(leftIndexMetacarpal); + } + var leftMiddleMetacarpal = CheckPossibleMetacarpal(_leftHand, HumanBodyBones.LeftMiddleProximal); + if (leftMiddleMetacarpal != null) + { + interpolatedFingers.Add(leftMiddleMetacarpal); + } + var leftRingMetacarpal = CheckPossibleMetacarpal(_leftHand, HumanBodyBones.LeftRingProximal); + if (leftRingMetacarpal != null) + { + interpolatedFingers.Add(leftRingMetacarpal); + } + var leftLittleMetacarpal = CheckPossibleMetacarpal(_leftHand, HumanBodyBones.LeftLittleProximal); + if (leftLittleMetacarpal != null) + { + interpolatedFingers.Add(leftLittleMetacarpal); + } + + var rightThumbMetacarpal = CheckPossibleMetacarpal(_rightHand, HumanBodyBones.RightThumbProximal); + if (rightThumbMetacarpal != null) + { + interpolatedFingers.Add(rightThumbMetacarpal); + } + var rightIndexMetacarpal = CheckPossibleMetacarpal(_rightHand, HumanBodyBones.RightIndexProximal); + if (rightIndexMetacarpal != null) + { + interpolatedFingers.Add(rightIndexMetacarpal); + } + var rightMiddleMetacarpal = CheckPossibleMetacarpal(_rightHand, HumanBodyBones.RightMiddleProximal); + if (rightMiddleMetacarpal != null) + { + interpolatedFingers.Add(rightMiddleMetacarpal); + } + var rightRingMetacarpal = CheckPossibleMetacarpal(_rightHand, HumanBodyBones.RightRingProximal); + if (rightRingMetacarpal != null) + { + interpolatedFingers.Add(rightRingMetacarpal); + } + var rightLittleMetacarpal = CheckPossibleMetacarpal(_rightHand, HumanBodyBones.RightLittleProximal); + if (rightLittleMetacarpal != null) + { + interpolatedFingers.Add(rightLittleMetacarpal); + } + + _interpolatedFingers = interpolatedFingers.ToArray(); + foreach (var interpolatedFinger in _interpolatedFingers) + { + interpolatedFinger.UpdateDistance(); + } + } + + private InterpolateFinger CheckPossibleMetacarpal(Transform hand, HumanBodyBones targetBoneId) + { + var targetBone = _animator.GetBoneTransform(targetBoneId); + var targetBoneParent = targetBone.parent; + if (targetBoneParent != hand) + { + return new InterpolateFinger + { + StartFinger = hand, + TargetFinger = targetBoneParent, + EndFinger = targetBone + }; + } + return null; + } + + private List SetUpLeftHand() + { + List fingers = new List(); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandWrist]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_LeftHandThumbMetacarpal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandWrist, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandThumbMetacarpal)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandThumbMetacarpal]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_LeftHandThumbProximal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandThumbMetacarpal, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandThumbProximal)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandThumbProximal]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_LeftHandThumbDistal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandThumbProximal, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandThumbDistal)); + + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandWrist]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_LeftHandIndexProximal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandWrist, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandIndexProximal)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandIndexProximal]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_LeftHandIndexIntermediate]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandIndexProximal, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandIndexIntermediate)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandIndexIntermediate]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_LeftHandIndexDistal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandIndexIntermediate, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandIndexDistal)); + + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandWrist]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_LeftHandMiddleProximal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandWrist, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandMiddleProximal)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandMiddleProximal]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_LeftHandMiddleIntermediate]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandMiddleProximal, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandMiddleIntermediate)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandMiddleIntermediate]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_LeftHandMiddleDistal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandMiddleIntermediate, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandMiddleDistal)); + + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandWrist]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_LeftHandRingProximal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandWrist, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandRingProximal)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandRingProximal]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_LeftHandRingIntermediate]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandRingProximal, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandRingIntermediate)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandRingIntermediate]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone + [OVRSkeleton.BoneId.FullBody_LeftHandRingDistal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandRingIntermediate, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandRingDistal)); + + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandWrist]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_LeftHandLittleProximal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandWrist, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandLittleProximal)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandLittleProximal]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_LeftHandLittleIntermediate]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandLittleProximal, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandLittleIntermediate)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_LeftHandLittleIntermediate]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_LeftHandLittleDistal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandLittleIntermediate, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandLittleDistal)); + + for (int i = fingers.Count - 1; i >= 0; i--) + { + if (fingers[i].StartBoneTransform == null || + fingers[i].EndBoneTransform == null) + { + fingers.RemoveAt(i); + } + } + + return fingers; + } + + private List SetUpRightHand() + { + List fingers = new List(); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandWrist]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandThumbMetacarpal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandWrist, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandThumbMetacarpal)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandThumbMetacarpal]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandThumbProximal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandThumbMetacarpal, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandThumbProximal)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandThumbProximal]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandThumbDistal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandThumbProximal, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandThumbDistal)); + + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandWrist]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandIndexProximal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandWrist, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandIndexProximal)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandIndexProximal]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandIndexIntermediate]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandIndexProximal, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandIndexIntermediate)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandIndexIntermediate]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandIndexDistal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandIndexIntermediate, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandIndexDistal)); + + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandWrist]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandMiddleProximal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandWrist, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandMiddleProximal)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandMiddleProximal]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandMiddleIntermediate]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandMiddleProximal, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandMiddleIntermediate)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandMiddleIntermediate]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandMiddleDistal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandMiddleIntermediate, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandMiddleDistal)); + + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandWrist]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandRingProximal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandWrist, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandRingProximal)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandRingProximal]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandRingIntermediate]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandRingProximal, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandRingIntermediate)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandRingIntermediate]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandRingDistal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandRingIntermediate, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandRingDistal)); + + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandWrist]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandLittleProximal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandWrist, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandLittleProximal)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandLittleProximal]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandLittleIntermediate]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandLittleProximal, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandLittleIntermediate)); + fingers.Add(new FingerInfo + (_animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[OVRSkeleton.BoneId.FullBody_RightHandLittleIntermediate]), + _animator.GetBoneTransform( + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[ + OVRSkeleton.BoneId.FullBody_RightHandLittleDistal]), + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandLittleIntermediate, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandLittleDistal)); + + for (int i = fingers.Count - 1; i >= 0; i--) + { + if (fingers[i].StartBoneTransform == null || + fingers[i].EndBoneTransform == null) + { + fingers.RemoveAt(i); + } + } + + return fingers; + } + + /// + /// Apply the finger offsets. + /// + protected void LateUpdate() + { + var scaleFactor = DivideVector3(transform.lossyScale, _startingScale); + if (_copyFingerOffsetsInUpdate) + { + CopyFingerOffsetData(); + } + + if (_skeleton.Bones == null || _skeleton.Bones.Count == 0) + { + return; + } + + foreach (var fingerOffset in _fingerOffsets) + { + if (fingerOffset.Finger != null) + { + var child = fingerOffset.Finger.GetChild(0); + var childPos = child.position; + var childRot = child.rotation; + var posOffset = fingerOffset.Finger.right * fingerOffset.FingerPosOffset.x + + fingerOffset.Finger.up * fingerOffset.FingerPosOffset.y + + fingerOffset.Finger.forward * fingerOffset.FingerPosOffset.z; + fingerOffset.Finger.localPosition += posOffset; + fingerOffset.Finger.localRotation *= Quaternion.Euler(fingerOffset.FingerRotOffset); + child.position = childPos; + child.rotation = childRot; + } + } + + foreach (var finger in _fingers) + { + finger.UpdateDirection(); + } + + foreach (var finger in _fingers) + { + finger.UpdateRotationBasedOnOffset(); + } + foreach (var finger in _fingers) + { + finger.UpdateBonePosition(scaleFactor); + } + foreach (var interpolatedFinger in _interpolatedFingers) + { + interpolatedFinger.UpdateTargetFinger(); + } + } + + private void CopyFingerOffsetData() + { + foreach (var fingerOffset in _fingerOffsets) + { + if (fingerOffset.Finger != null) + { + continue; + } + + foreach (var finger in _fingers) + { + if (finger.EndBoneId == fingerOffset.FingerId) + { + finger.EndPosOffset = fingerOffset.FingerPosOffset; + finger.EndRotOffset = Quaternion.Euler(fingerOffset.FingerRotOffset); + } + } + } + } + + private Vector3 DivideVector3(Vector3 dividend, Vector3 divisor) + { + Vector3 targetScale = Vector3.one; + if (IsNonZero(divisor)) + { + targetScale = new Vector3( + dividend.x / divisor.x, dividend.y / divisor.y, dividend.z / divisor.z); + } + + return targetScale; + } + + private bool IsNonZero(Vector3 v) + { + return v.x != 0 && v.y != 0 && v.z != 0; + } + } +} diff --git a/Runtime/Scripts/AnimationRigging/FullBodyHandDeformation.cs.meta b/Runtime/Scripts/AnimationRigging/FullBodyHandDeformation.cs.meta new file mode 100644 index 00000000..8a8cc54f --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/FullBodyHandDeformation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 46311f43d60a6be47be85ee4e2860f06 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/FullBodyRetargetedBoneTargets.cs b/Runtime/Scripts/AnimationRigging/FullBodyRetargetedBoneTargets.cs new file mode 100644 index 00000000..403a26f1 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/FullBodyRetargetedBoneTargets.cs @@ -0,0 +1,43 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using System.Linq; +using static OVRUnityHumanoidSkeletonRetargeter; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// Similar to but applied to full body. + /// + public class FullBodyRetargetedBoneTargets : RetargetedBoneTargets + { + /// + /// Component to auto-add to. + /// + public UnityEngine.Object AutoAdd + { + get => _autoAddTo; + set => _autoAddTo = value; + } + + /// + /// Accessor to base class. + /// + public RetargetedBoneTarget[] RetargetedBoneTargets + { + get => _retargetedBoneTargets; + set => _retargetedBoneTargets = value; + } + + + protected override void Awake() + { + var humanBodyBoneToOVRBoneId = + OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone.ToDictionary( + x => x.Value, x => x.Key); + foreach (var retargetedBoneTarget in _retargetedBoneTargets) + { + retargetedBoneTarget.BoneId = humanBodyBoneToOVRBoneId[retargetedBoneTarget.HumanBodyBone]; + } + } + } +} diff --git a/Runtime/Scripts/AnimationRigging/FullBodyRetargetedBoneTargets.cs.meta b/Runtime/Scripts/AnimationRigging/FullBodyRetargetedBoneTargets.cs.meta new file mode 100644 index 00000000..74eb918f --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/FullBodyRetargetedBoneTargets.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e99c227ec21d72d45b36011069f2b263 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/GroundingConstraint.cs b/Runtime/Scripts/AnimationRigging/GroundingConstraint.cs index 2555f71f..1f4daa1d 100644 --- a/Runtime/Scripts/AnimationRigging/GroundingConstraint.cs +++ b/Runtime/Scripts/AnimationRigging/GroundingConstraint.cs @@ -477,7 +477,7 @@ public bool IsBoneTransformsDataValid() /// /// Grounding constraint. /// - [DisallowMultipleComponent] + [DisallowMultipleComponent, AddComponentMenu("Movement Animation Rigging/Grounding Constraint")] public class GroundingConstraint : RigConstraint< GroundingJob, GroundingData, diff --git a/Runtime/Scripts/AnimationRigging/HipPinningConstraint.cs b/Runtime/Scripts/AnimationRigging/HipPinningConstraint.cs index b505b767..365c54fa 100644 --- a/Runtime/Scripts/AnimationRigging/HipPinningConstraint.cs +++ b/Runtime/Scripts/AnimationRigging/HipPinningConstraint.cs @@ -1,6 +1,7 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. using System; +using System.Collections.Generic; using UnityEngine; using UnityEngine.Animations; using UnityEngine.Animations.Rigging; @@ -17,6 +18,11 @@ public interface IHipPinningData /// public OVRCustomSkeleton ConstraintSkeleton { get; } + /// + /// Animator component. + /// + public Animator AnimatorComponent { get; } + /// /// If true, update this job. /// @@ -32,10 +38,15 @@ public interface IHipPinningData /// public HipPinningConstraintTarget CurrentHipPinningTarget { get; } + /// + /// Has run calibration or not. + /// + public bool HasCalibrated { get; } + /// /// The bones that compose the skeleton. /// - public Transform[] Bones { get; } + public Transform[] Bones { get; } /// /// The root bone of this transform. @@ -67,6 +78,11 @@ public interface IHipPinningData /// public bool IsFirstFrame { get; set; } + /// + /// Indicates if the constraint has been set up or not. + /// + public bool ObtainedProperReferences { get; } + /// /// Event when the user enters a hip pinning area. /// @@ -92,6 +108,24 @@ public interface IHipPinningData /// Called when the user leaves a hip pinning area. /// public void ExitHipPinningArea(HipPinningConstraintTarget target); + + /// + /// Returns hip transform. + /// + /// Transform of the hip. + public Transform GetHipTransform(); + + /// + /// Indicates if bone transforms are valid or not. + /// + /// True if so, false if not. + public bool IsBoneTransformsDataValid(); + + /// + /// Retrieves index of bone above hips. + /// + /// Index of bone above hips. + public int GetIndexOfFirstBoneAboveHips(); } /// @@ -105,6 +139,9 @@ public struct HipPinningData : IAnimationJobData, IHipPinningData /// OVRCustomSkeleton IHipPinningData.ConstraintSkeleton => _skeleton; + /// + Animator IHipPinningData.AnimatorComponent => _animator; + /// bool IHipPinningData.ShouldUpdate { @@ -127,6 +164,9 @@ bool IHipPinningData.ShouldUpdate /// Vector3 IHipPinningData.CalibratedHipPos => _calibratedHipTranslation; + /// + bool IHipPinningData.HasCalibrated => _hasCalibrated; + /// Quaternion IHipPinningData.InitialHipLocalRotation => _initialHipLocalRotation; @@ -143,6 +183,9 @@ public bool IsFirstFrame set => _isFirstFrame = value; } + /// + public bool ObtainedProperReferences => _obtainedProperReferences; + /// public event Action OnEnterHipPinningArea; @@ -154,6 +197,11 @@ public bool IsFirstFrame [NotKeyable, SerializeField] private OVRCustomSkeleton _skeleton; + /// + [Tooltip(HipPinningDataTooltips.Animator)] + [NotKeyable, SerializeField] + private Animator _animator; + /// [Tooltip(HipPinningDataTooltips.HipPinningTargets)] [NotKeyable, SerializeField] @@ -176,42 +224,61 @@ public bool IsFirstFrame [NotKeyable, SerializeField] private float _hipPinningLeaveRange; - [SyncSceneToStream] + /// + /// Root transform of skeleton. + /// + [SyncSceneToStream, SerializeField, HideInInspector] + private Transform _root; + + /// + /// Array of skeletal bones. + /// + [SyncSceneToStream, SerializeField, HideInInspector] private Transform[] _bones; - private Vector3 _calibratedHipTranslation; + + /// + /// Indicates if all references have been obtained or not. + /// + [NotKeyable, SerializeField, HideInInspector] + private bool _obtainedProperReferences; + private Quaternion _initialHipLocalRotation; + + private Vector3 _calibratedHipTranslation; + private bool _hasCalibrated; private HipPinningConstraintTarget _currentHipPinningTarget; - private Transform _root; private bool _shouldUpdate; private bool _isFirstFrame; - private bool _obtainedProperReferences; + private bool _hasSetUp; /// - /// Setup the hip pinning constraint. + /// Run set-up if necessary. This is necessary for + /// OVRCustomSkeleton-based characters, since the bones are + /// re-parented at runtime and they need to be re-queried. /// - /// Returns true if has setup runs or has already run. - public bool Setup() + public void SetUp() { - if (_obtainedProperReferences) + if (_hasSetUp) { - return true; + return; } - - if (!_skeleton.IsInitialized || !_skeleton.IsDataValid) + if (_skeleton == null && _animator != null) { - return false; + _hasSetUp = true; + return; } + _hasSetUp = true; + _initialHipLocalRotation = GetHipTransform().localRotation; _bones = new Transform[_skeleton.CustomBones.Count]; for (int i = 0; i < _bones.Length; i++) { _bones[i] = _skeleton.CustomBones[i]; } - _initialHipLocalRotation = _bones[(int)OVRSkeleton.BoneId.Body_Hips].transform.localRotation; - _root = _bones[(int)OVRSkeleton.BoneId.Body_Hips].parent; - _obtainedProperReferences = true; - return true; + _root = _bones[(int)(IsSkeletonFullBody() ? + OVRSkeleton.BoneId.FullBody_Hips : + OVRSkeleton.BoneId.Body_Hips)].parent; } /// @@ -223,6 +290,84 @@ public void AssignOVRSkeleton(OVRCustomSkeleton skeleton) _skeleton = skeleton; } + /// + /// Assign the animator component. + /// + /// The animator component to assign. + public void AssignAnimator(Animator animator) + { + _animator = animator; + } + + /// + /// Sets up bone references to the character. + /// + public void SetUpBoneReferences() + { + if (_skeleton != null) + { + SetUpBonesOVR(); + } + else if (_animator != null) + { + SetUpBonesAnimator(); + } + _obtainedProperReferences = true; + } + + private void SetUpBonesOVR() + { + _bones = new Transform[_skeleton.CustomBones.Count]; + for (int i = 0; i < _bones.Length; i++) + { + _bones[i] = _skeleton.CustomBones[i]; + } + _root = _bones[(int)(IsSkeletonFullBody() ? + OVRSkeleton.BoneId.FullBody_Hips : + OVRSkeleton.BoneId.Body_Hips)].parent; + _initialHipLocalRotation = GetHipTransform().localRotation; + } + + private void SetUpBonesAnimator() + { + var hipTransform = _animator.GetBoneTransform(HumanBodyBones.Hips); + if (hipTransform == null) + { + throw new Exception("Your character's Humanoid mapping is missing a hip transform."); + } + List allBones = GetValidAnimatorBones(); + _bones = allBones.ToArray(); + _root = hipTransform.parent; + _initialHipLocalRotation = GetHipTransform().localRotation; + } + + private List GetValidAnimatorBones() + { + List allBones = new List(); + for (var currBone = HumanBodyBones.Hips; currBone < HumanBodyBones.LastBone; currBone++) + { + var boneTransform = _animator.GetBoneTransform(currBone); + if (boneTransform != null) + { + allBones.Add(boneTransform); + } + } + return allBones; + } + + /// + /// Resets all references. + /// + public void ClearSetupReferences() + { + _skeleton = null; + _animator = null; + _bones = null; + _initialHipLocalRotation = Quaternion.identity; + _root = null; + _obtainedProperReferences = false; + } + /// /// Find and assign the closest hip pinning target to be the current hip pinning target. /// @@ -249,7 +394,8 @@ public void AssignClosestHipPinningTarget(Vector3 position) /// The position of the character's hips. public void CalibrateInitialHipHeight(Vector3 position) { - _calibratedHipTranslation = _bones[(int)OVRSkeleton.BoneId.Body_Hips].position; + _calibratedHipTranslation = GetHipTransform().position; + _hasCalibrated = true; if (_enableHipPinningHeightAdjustment) { _currentHipPinningTarget.UpdateHeight(position.y - _currentHipPinningTarget.HipTargetTransform.position.y); @@ -274,6 +420,48 @@ public void ExitHipPinningArea(HipPinningConstraintTarget target) OnExitHipPinningArea?.Invoke(target); } + /// + public bool IsBoneTransformsDataValid() + { + return (_skeleton != null && _skeleton.IsDataValid) || + (_animator != null); + } + + private bool IsSkeletonFullBody() + { + return _skeleton.GetSkeletonType() == OVRSkeleton.SkeletonType.FullBody; + } + + /// + public Transform GetHipTransform() + { + if (_skeleton != null) + { + return _bones[IsSkeletonFullBody() ? + (int)OVRSkeleton.BoneId.FullBody_Hips : + (int)OVRSkeleton.BoneId.Body_Hips]; + } + else + { + return _bones[(int)HumanBodyBones.Hips]; + } + } + + /// + public int GetIndexOfFirstBoneAboveHips() + { + if (_skeleton != null) + { + return IsSkeletonFullBody() ? + (int)OVRSkeleton.BoneId.FullBody_SpineLower : + (int)OVRSkeleton.BoneId.Body_SpineLower; + } + else + { + return (int)(HumanBodyBones.Hips + 1); + } + } + bool IAnimationJobData.IsValid() { if (_skeleton == null) @@ -292,46 +480,33 @@ bool IAnimationJobData.IsValid() void IAnimationJobData.SetDefaultValues() { _skeleton = null; + _animator = null; _hipPinningTargets = null; + _enableHipPinningHeightAdjustment = false; + _enableHipPinningLeave = false; + _hipPinningLeaveRange = 0.0f; + _root = null; + _bones = null; _obtainedProperReferences = false; + _hasSetUp = false; + _hasCalibrated = false; } } /// /// Hip Pinning constraint. /// - [DisallowMultipleComponent] + [DisallowMultipleComponent, AddComponentMenu("Movement Animation Rigging/Hip Pinning Constraint")] public class HipPinningConstraint : RigConstraint< HipPinningJob, HipPinningData, HipPinningJobBinder>, IOVRSkeletonConstraint { - private void Start() - { - if (data.Setup()) - { - gameObject.SetActive(true); - } - } - /// public void RegenerateData() { - if (data.Setup()) - { - gameObject.SetActive(true); - } - } - - protected override void OnValidate() - { - base.OnValidate(); - if (gameObject.activeInHierarchy && !Application.isPlaying) - { - Debug.LogWarning($"{name} should be disabled initially; it enables itself when ready. Otherwise you" + - $" might get an errors regarding invalid sync variables at runtime."); - } + data.SetUp(); } } } diff --git a/Runtime/Scripts/AnimationRigging/HipPinningJob.cs b/Runtime/Scripts/AnimationRigging/HipPinningJob.cs index 3653a796..79dbf04f 100644 --- a/Runtime/Scripts/AnimationRigging/HipPinningJob.cs +++ b/Runtime/Scripts/AnimationRigging/HipPinningJob.cs @@ -1,5 +1,6 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. +using System.Collections.Generic; using Unity.Collections; using UnityEngine; using UnityEngine.Animations; @@ -34,9 +35,9 @@ public struct HipPinningJob : IWeightedAnimationJob public NativeArray DeltaTime; /// - /// If true, update the bone positions as there is a valid OVR Skeleton. + /// If true, update the bone positions as there is a valid skeleton. /// - public bool ValidOvrSkeleton; + public bool ValidSkeletalData; /// public FloatProperty jobWeight { get; set; } @@ -54,8 +55,8 @@ public void ProcessAnimation(AnimationStream stream) var trackedHipPos = Hips.GetLocalPosition(stream); var hipPosDelta = TargetHipPos[0] - trackedHipPos; - // Only change bone positions if we have a valid OVR Skeleton Hierarchy. - if (ValidOvrSkeleton) + // Only change bone positions if we have a valid skeleton hierarchy. + if (ValidSkeletalData) { foreach (var bone in Bones) { @@ -97,28 +98,31 @@ public override HipPinningJob Create(Animator animator, ref T data, Component co { var job = new HipPinningJob(); - var spineLowerIndex = (int)OVRSkeleton.BoneId.Body_SpineLower; - int bonesCount = data.ConstraintSkeleton.CustomBones.Count; - - job.Hips = ReadWriteTransformHandle.Bind(animator, data.Bones[(int)OVRSkeleton.BoneId.Body_Hips]); - job.Bones = new NativeArray(bonesCount - spineLowerIndex, Allocator.Persistent); + int firstBoneIndexAboveHips = data.GetIndexOfFirstBoneAboveHips(); + job.Hips = ReadWriteTransformHandle.Bind(animator, data.GetHipTransform()); + int numBonesTotal = data.Bones.Length; + int numBonesAboveHips = numBonesTotal - firstBoneIndexAboveHips; + job.Bones = new NativeArray( + numBonesAboveHips, + Allocator.Persistent); job.TargetHipPos = new NativeArray(1, Allocator.Persistent, NativeArrayOptions.UninitializedMemory); job.DeltaTime = new NativeArray(1, Allocator.Persistent, NativeArrayOptions.UninitializedMemory); - job.ValidOvrSkeleton = data.ConstraintSkeleton.IsInitialized; + job.ValidSkeletalData = data.IsBoneTransformsDataValid(); - int boneIndex = 0; - for (int i = spineLowerIndex; i < bonesCount; i++) + int reducedBoneIndex = 0; + for (int i = firstBoneIndexAboveHips; i < numBonesTotal; i++) { - if (data.Bones[i] != null) + if (data.Bones[i] == null) { - job.Bones[boneIndex] = ReadWriteTransformHandle.Bind(animator, data.Bones[i]); - boneIndex++; + continue; } + job.Bones[reducedBoneIndex++] = + ReadWriteTransformHandle.Bind(animator, data.Bones[i]); } - var hipsBone = data.Bones[(int)OVRSkeleton.BoneId.Body_Hips]; + var hipsBone = data.GetHipTransform(); data.AssignClosestHipPinningTarget(hipsBone.position); data.IsFirstFrame = true; return job; @@ -132,7 +136,7 @@ public override void Update(HipPinningJob job, ref T data) data.ShouldUpdate = true; } - Transform hips = data.Bones[(int)OVRSkeleton.BoneId.Body_Hips]; + Transform hips = data.GetHipTransform(); Vector3 trackedHipPos = hips.position; if (data.HipPinningLeave) { @@ -183,7 +187,8 @@ public override void Destroy(HipPinningJob job) private void CheckIfHipPinningIsValid(IHipPinningData data, Vector3 trackedHipPos) { float dist = Vector3.Distance(data.CalibratedHipPos, trackedHipPos); - if (dist > data.HipPinningLeaveRange && data.CurrentHipPinningTarget != null) + if (dist > data.HipPinningLeaveRange && data.CurrentHipPinningTarget != null && + data.HasCalibrated) { data.ExitHipPinningArea(data.CurrentHipPinningTarget); } diff --git a/Runtime/Scripts/AnimationRigging/IRetargetingProcessor.cs b/Runtime/Scripts/AnimationRigging/IRetargetingProcessor.cs new file mode 100644 index 00000000..3b38de20 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/IRetargetingProcessor.cs @@ -0,0 +1,29 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using System.Collections.Generic; + +namespace Oculus.Movement.AnimationRigging +{ + public interface IRetargetingProcessor + { + /// + /// Setup the retargeting processor; this should only be run once. + /// + /// The retargeting layer. + public void SetupRetargetingProcessor(RetargetingLayer retargetingLayer); + + /// + /// Prepare the retargeting processor; this is run after retargeting, but before any processors have run. + /// + /// The retargeting layer. + /// The tracked OVR bones. + public void PrepareRetargetingProcessor(RetargetingLayer retargetingLayer, IList ovrBones); + + /// + /// Processes a ; this is run after retargeting and in order of processors. + /// + /// The retargeting layer. + /// The tracked OVR bones. + public void ProcessRetargetingLayer(RetargetingLayer retargetingLayer, IList ovrBones); + } +} diff --git a/Runtime/Scripts/AnimationRigging/IRetargetingProcessor.cs.meta b/Runtime/Scripts/AnimationRigging/IRetargetingProcessor.cs.meta new file mode 100644 index 00000000..a4f7629a --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/IRetargetingProcessor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8fae26db533b7ba489f665714b09ab17 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/Legacy.meta b/Runtime/Scripts/AnimationRigging/Legacy.meta new file mode 100644 index 00000000..8003d242 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/Legacy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d256f20945403cc48b1b3ed1fae4755c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/Legacy/CustomMappings.cs b/Runtime/Scripts/AnimationRigging/Legacy/CustomMappings.cs new file mode 100644 index 00000000..0b2dc5b2 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/Legacy/CustomMappings.cs @@ -0,0 +1,957 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace Oculus.Movement.AnimationRigging.Deprecated +{ + /// + /// Contains some mappings copied from OVRUnityHumanoidSkeletonRetargeter, + /// which are currently inaccessible from non-inheriting classes. + /// + public class CustomMappings + { + /// + /// Body tracking bone IDs that should be exposed through the inspector. + /// BoneId has enum values that map to the same integers, which would not work + /// with a serialized field that expects unique integers. BodyTrackingBoneId + /// is an enum that restricts BoneId to the values that we care about. + /// + public enum BodyTrackingBoneId + { + Body_Start = OVRPlugin.BoneId.Body_Start, + Body_Root = OVRPlugin.BoneId.Body_Root, + Body_Hips = OVRPlugin.BoneId.Body_Hips, + Body_SpineLower = OVRPlugin.BoneId.Body_SpineLower, + Body_SpineMiddle = OVRPlugin.BoneId.Body_SpineMiddle, + Body_SpineUpper = OVRPlugin.BoneId.Body_SpineUpper, + Body_Chest = OVRPlugin.BoneId.Body_Chest, + Body_Neck = OVRPlugin.BoneId.Body_Neck, + Body_Head = OVRPlugin.BoneId.Body_Head, + Body_LeftShoulder = OVRPlugin.BoneId.Body_LeftShoulder, + Body_LeftScapula = OVRPlugin.BoneId.Body_LeftScapula, + Body_LeftArmUpper = OVRPlugin.BoneId.Body_LeftArmUpper, + Body_LeftArmLower = OVRPlugin.BoneId.Body_LeftArmLower, + Body_LeftHandWristTwist = OVRPlugin.BoneId.Body_LeftHandWristTwist, + Body_RightShoulder = OVRPlugin.BoneId.Body_RightShoulder, + Body_RightScapula = OVRPlugin.BoneId.Body_RightScapula, + Body_RightArmUpper = OVRPlugin.BoneId.Body_RightArmUpper, + Body_RightArmLower = OVRPlugin.BoneId.Body_RightArmLower, + Body_RightHandWristTwist = OVRPlugin.BoneId.Body_RightHandWristTwist, + Body_LeftHandPalm = OVRPlugin.BoneId.Body_LeftHandPalm, + Body_LeftHandWrist = OVRPlugin.BoneId.Body_LeftHandWrist, + Body_LeftHandThumbMetacarpal = OVRPlugin.BoneId.Body_LeftHandThumbMetacarpal, + Body_LeftHandThumbProximal = OVRPlugin.BoneId.Body_LeftHandThumbProximal, + Body_LeftHandThumbDistal = OVRPlugin.BoneId.Body_LeftHandThumbDistal, + Body_LeftHandThumbTip = OVRPlugin.BoneId.Body_LeftHandThumbTip, + Body_LeftHandIndexMetacarpal = OVRPlugin.BoneId.Body_LeftHandIndexMetacarpal, + Body_LeftHandIndexProximal = OVRPlugin.BoneId.Body_LeftHandIndexProximal, + Body_LeftHandIndexIntermediate = OVRPlugin.BoneId.Body_LeftHandIndexIntermediate, + Body_LeftHandIndexDistal = OVRPlugin.BoneId.Body_LeftHandIndexDistal, + Body_LeftHandIndexTip = OVRPlugin.BoneId.Body_LeftHandIndexTip, + Body_LeftHandMiddleMetacarpal = OVRPlugin.BoneId.Body_LeftHandMiddleMetacarpal, + Body_LeftHandMiddleProximal = OVRPlugin.BoneId.Body_LeftHandMiddleProximal, + Body_LeftHandMiddleIntermediate = OVRPlugin.BoneId.Body_LeftHandMiddleIntermediate, + Body_LeftHandMiddleDistal = OVRPlugin.BoneId.Body_LeftHandMiddleDistal, + Body_LeftHandMiddleTip = OVRPlugin.BoneId.Body_LeftHandMiddleTip, + Body_LeftHandRingMetacarpal = OVRPlugin.BoneId.Body_LeftHandRingMetacarpal, + Body_LeftHandRingProximal = OVRPlugin.BoneId.Body_LeftHandRingProximal, + Body_LeftHandRingIntermediate = OVRPlugin.BoneId.Body_LeftHandRingIntermediate, + Body_LeftHandRingDistal = OVRPlugin.BoneId.Body_LeftHandRingDistal, + Body_LeftHandRingTip = OVRPlugin.BoneId.Body_LeftHandRingTip, + Body_LeftHandLittleMetacarpal = OVRPlugin.BoneId.Body_LeftHandLittleMetacarpal, + Body_LeftHandLittleProximal = OVRPlugin.BoneId.Body_LeftHandLittleProximal, + Body_LeftHandLittleIntermediate = OVRPlugin.BoneId.Body_LeftHandLittleIntermediate, + Body_LeftHandLittleDistal = OVRPlugin.BoneId.Body_LeftHandLittleDistal, + Body_LeftHandLittleTip = OVRPlugin.BoneId.Body_LeftHandLittleTip, + Body_RightHandPalm = OVRPlugin.BoneId.Body_RightHandPalm, + Body_RightHandWrist = OVRPlugin.BoneId.Body_RightHandWrist, + Body_RightHandThumbMetacarpal = OVRPlugin.BoneId.Body_RightHandThumbMetacarpal, + Body_RightHandThumbProximal = OVRPlugin.BoneId.Body_RightHandThumbProximal, + Body_RightHandThumbDistal = OVRPlugin.BoneId.Body_RightHandThumbDistal, + Body_RightHandThumbTip = OVRPlugin.BoneId.Body_RightHandThumbTip, + Body_RightHandIndexMetacarpal = OVRPlugin.BoneId.Body_RightHandIndexMetacarpal, + Body_RightHandIndexProximal = OVRPlugin.BoneId.Body_RightHandIndexProximal, + Body_RightHandIndexIntermediate = OVRPlugin.BoneId.Body_RightHandIndexIntermediate, + Body_RightHandIndexDistal = OVRPlugin.BoneId.Body_RightHandIndexDistal, + Body_RightHandIndexTip = OVRPlugin.BoneId.Body_RightHandIndexTip, + Body_RightHandMiddleMetacarpal = OVRPlugin.BoneId.Body_RightHandMiddleMetacarpal, + Body_RightHandMiddleProximal = OVRPlugin.BoneId.Body_RightHandMiddleProximal, + Body_RightHandMiddleIntermediate = OVRPlugin.BoneId.Body_RightHandMiddleIntermediate, + Body_RightHandMiddleDistal = OVRPlugin.BoneId.Body_RightHandMiddleDistal, + Body_RightHandMiddleTip = OVRPlugin.BoneId.Body_RightHandMiddleTip, + Body_RightHandRingMetacarpal = OVRPlugin.BoneId.Body_RightHandRingMetacarpal, + Body_RightHandRingProximal = OVRPlugin.BoneId.Body_RightHandRingProximal, + Body_RightHandRingIntermediate = OVRPlugin.BoneId.Body_RightHandRingIntermediate, + Body_RightHandRingDistal = OVRPlugin.BoneId.Body_RightHandRingDistal, + Body_RightHandRingTip = OVRPlugin.BoneId.Body_RightHandRingTip, + Body_RightHandLittleMetacarpal = OVRPlugin.BoneId.Body_RightHandLittleMetacarpal, + Body_RightHandLittleProximal = OVRPlugin.BoneId.Body_RightHandLittleProximal, + Body_RightHandLittleIntermediate = OVRPlugin.BoneId.Body_RightHandLittleIntermediate, + Body_RightHandLittleDistal = OVRPlugin.BoneId.Body_RightHandLittleDistal, + Body_RightHandLittleTip = OVRPlugin.BoneId.Body_RightHandLittleTip, + Body_End = OVRPlugin.BoneId.Body_End, + + // add new bones here + + NoOverride = OVRPlugin.BoneId.Body_End + 1, + Remove = OVRPlugin.BoneId.Body_End + 2 + }; + + /// + /// Paired OVRSkeleton bones with human body bones. + /// Copied from OVRUnityHumanoidSkeletonRetargeter.OVRHumanBodyBonesMappings. + /// The original mapping is not currently accessible by other classes. + /// + public static readonly Dictionary BoneIdToHumanBodyBone = + new Dictionary() + { + { OVRSkeleton.BoneId.Body_Hips, HumanBodyBones.Hips }, + { OVRSkeleton.BoneId.Body_SpineLower, HumanBodyBones.Spine }, + { OVRSkeleton.BoneId.Body_SpineUpper, HumanBodyBones.Chest }, + { OVRSkeleton.BoneId.Body_Chest, HumanBodyBones.UpperChest }, + { OVRSkeleton.BoneId.Body_Neck, HumanBodyBones.Neck }, + { OVRSkeleton.BoneId.Body_Head, HumanBodyBones.Head }, + + { OVRSkeleton.BoneId.Body_LeftShoulder, HumanBodyBones.LeftShoulder }, + { OVRSkeleton.BoneId.Body_LeftArmUpper, HumanBodyBones.LeftUpperArm }, + { OVRSkeleton.BoneId.Body_LeftArmLower, HumanBodyBones.LeftLowerArm }, + { OVRSkeleton.BoneId.Body_LeftHandWrist, HumanBodyBones.LeftHand }, + + { OVRSkeleton.BoneId.Body_RightShoulder, HumanBodyBones.RightShoulder }, + { OVRSkeleton.BoneId.Body_RightArmUpper, HumanBodyBones.RightUpperArm }, + { OVRSkeleton.BoneId.Body_RightArmLower, HumanBodyBones.RightLowerArm }, + { OVRSkeleton.BoneId.Body_RightHandWrist, HumanBodyBones.RightHand }, + + { OVRSkeleton.BoneId.Body_LeftHandThumbMetacarpal, HumanBodyBones.LeftThumbProximal }, + { OVRSkeleton.BoneId.Body_LeftHandThumbProximal, HumanBodyBones.LeftThumbIntermediate }, + { OVRSkeleton.BoneId.Body_LeftHandThumbDistal, HumanBodyBones.LeftThumbDistal }, + { OVRSkeleton.BoneId.Body_LeftHandIndexProximal, HumanBodyBones.LeftIndexProximal }, + { OVRSkeleton.BoneId.Body_LeftHandIndexIntermediate, HumanBodyBones.LeftIndexIntermediate }, + { OVRSkeleton.BoneId.Body_LeftHandIndexDistal, HumanBodyBones.LeftIndexDistal }, + { OVRSkeleton.BoneId.Body_LeftHandMiddleProximal, HumanBodyBones.LeftMiddleProximal }, + { OVRSkeleton.BoneId.Body_LeftHandMiddleIntermediate, HumanBodyBones.LeftMiddleIntermediate }, + { OVRSkeleton.BoneId.Body_LeftHandMiddleDistal, HumanBodyBones.LeftMiddleDistal }, + { OVRSkeleton.BoneId.Body_LeftHandRingProximal, HumanBodyBones.LeftRingProximal }, + { OVRSkeleton.BoneId.Body_LeftHandRingIntermediate, HumanBodyBones.LeftRingIntermediate }, + { OVRSkeleton.BoneId.Body_LeftHandRingDistal, HumanBodyBones.LeftRingDistal }, + { OVRSkeleton.BoneId.Body_LeftHandLittleProximal, HumanBodyBones.LeftLittleProximal }, + { OVRSkeleton.BoneId.Body_LeftHandLittleIntermediate, HumanBodyBones.LeftLittleIntermediate }, + { OVRSkeleton.BoneId.Body_LeftHandLittleDistal, HumanBodyBones.LeftLittleDistal }, + + { OVRSkeleton.BoneId.Body_RightHandThumbMetacarpal, HumanBodyBones.RightThumbProximal }, + { OVRSkeleton.BoneId.Body_RightHandThumbProximal, HumanBodyBones.RightThumbIntermediate }, + { OVRSkeleton.BoneId.Body_RightHandThumbDistal, HumanBodyBones.RightThumbDistal }, + { OVRSkeleton.BoneId.Body_RightHandIndexProximal, HumanBodyBones.RightIndexProximal }, + { OVRSkeleton.BoneId.Body_RightHandIndexIntermediate, HumanBodyBones.RightIndexIntermediate }, + { OVRSkeleton.BoneId.Body_RightHandIndexDistal, HumanBodyBones.RightIndexDistal }, + { OVRSkeleton.BoneId.Body_RightHandMiddleProximal, HumanBodyBones.RightMiddleProximal }, + { OVRSkeleton.BoneId.Body_RightHandMiddleIntermediate, HumanBodyBones.RightMiddleIntermediate }, + { OVRSkeleton.BoneId.Body_RightHandMiddleDistal, HumanBodyBones.RightMiddleDistal }, + { OVRSkeleton.BoneId.Body_RightHandRingProximal, HumanBodyBones.RightRingProximal }, + { OVRSkeleton.BoneId.Body_RightHandRingIntermediate, HumanBodyBones.RightRingIntermediate }, + { OVRSkeleton.BoneId.Body_RightHandRingDistal, HumanBodyBones.RightRingDistal }, + { OVRSkeleton.BoneId.Body_RightHandLittleProximal, HumanBodyBones.RightLittleProximal }, + { OVRSkeleton.BoneId.Body_RightHandLittleIntermediate, HumanBodyBones.RightLittleIntermediate }, + { OVRSkeleton.BoneId.Body_RightHandLittleDistal, HumanBodyBones.RightLittleDistal }, + }; + + /// + /// For each humanoid bone, create a pair that determines the + /// pair of bones that create the joint pair. Used to + /// create the "axis" of the bone. + /// + public static readonly Dictionary> + BoneToJointPair = new Dictionary>() + { + { + HumanBodyBones.Neck, + new Tuple(HumanBodyBones.Neck, HumanBodyBones.Head) + }, + { + HumanBodyBones.Head, + new Tuple(HumanBodyBones.Neck, HumanBodyBones.Head) + }, + { + HumanBodyBones.LeftEye, + new Tuple(HumanBodyBones.Head, HumanBodyBones.LeftEye) + }, + { + HumanBodyBones.RightEye, + new Tuple(HumanBodyBones.Head, HumanBodyBones.RightEye) + }, + { + HumanBodyBones.Jaw, + new Tuple(HumanBodyBones.Head, HumanBodyBones.Jaw) + }, + + { + HumanBodyBones.Hips, + new Tuple(HumanBodyBones.Hips, HumanBodyBones.Spine) + }, + { + HumanBodyBones.Spine, + new Tuple(HumanBodyBones.Spine, HumanBodyBones.Chest) + }, + { + HumanBodyBones.Chest, + new Tuple(HumanBodyBones.Chest, HumanBodyBones.UpperChest) + }, + { + HumanBodyBones.UpperChest, + new Tuple(HumanBodyBones.UpperChest, HumanBodyBones.Neck) + }, + + { + HumanBodyBones.LeftShoulder, + new Tuple(HumanBodyBones.LeftShoulder, HumanBodyBones.LeftUpperArm) + }, + { + HumanBodyBones.LeftUpperArm, + new Tuple(HumanBodyBones.LeftUpperArm, HumanBodyBones.LeftLowerArm) + }, + { + HumanBodyBones.LeftLowerArm, + new Tuple(HumanBodyBones.LeftLowerArm, HumanBodyBones.LeftHand) + }, + { + HumanBodyBones.LeftHand, + new Tuple(HumanBodyBones.LeftHand, + HumanBodyBones.LeftMiddleProximal) + }, + + { + HumanBodyBones.RightShoulder, + new Tuple(HumanBodyBones.RightShoulder, + HumanBodyBones.RightUpperArm) + }, + { + HumanBodyBones.RightUpperArm, + new Tuple(HumanBodyBones.RightUpperArm, + HumanBodyBones.RightLowerArm) + }, + { + HumanBodyBones.RightLowerArm, + new Tuple(HumanBodyBones.RightLowerArm, HumanBodyBones.RightHand) + }, + { + HumanBodyBones.RightHand, + new Tuple(HumanBodyBones.RightHand, + HumanBodyBones.RightMiddleProximal) + }, + + { + HumanBodyBones.RightUpperLeg, + new Tuple(HumanBodyBones.RightUpperLeg, + HumanBodyBones.RightLowerLeg) + }, + { + HumanBodyBones.RightLowerLeg, + new Tuple(HumanBodyBones.RightLowerLeg, HumanBodyBones.RightFoot) + }, + { + HumanBodyBones.RightFoot, + new Tuple(HumanBodyBones.RightFoot, HumanBodyBones.RightToes) + }, + { + HumanBodyBones.RightToes, + new Tuple(HumanBodyBones.RightFoot, HumanBodyBones.RightToes) + }, + + { + HumanBodyBones.LeftUpperLeg, + new Tuple(HumanBodyBones.LeftUpperLeg, HumanBodyBones.LeftLowerLeg) + }, + { + HumanBodyBones.LeftLowerLeg, + new Tuple(HumanBodyBones.LeftLowerLeg, HumanBodyBones.LeftFoot) + }, + { + HumanBodyBones.LeftFoot, + new Tuple(HumanBodyBones.LeftFoot, HumanBodyBones.LeftToes) + }, + { + HumanBodyBones.LeftToes, + new Tuple(HumanBodyBones.LeftFoot, HumanBodyBones.LeftToes) + }, + + { + HumanBodyBones.LeftThumbProximal, + new Tuple(HumanBodyBones.LeftThumbProximal, + HumanBodyBones.LeftThumbIntermediate) + }, + { + HumanBodyBones.LeftThumbIntermediate, + new Tuple(HumanBodyBones.LeftThumbIntermediate, + HumanBodyBones.LeftThumbDistal) + }, + { + HumanBodyBones.LeftThumbDistal, + new Tuple(HumanBodyBones.LeftThumbDistal, HumanBodyBones.LastBone) + }, // Invalid. + + { + HumanBodyBones.LeftIndexProximal, + new Tuple(HumanBodyBones.LeftIndexProximal, + HumanBodyBones.LeftIndexIntermediate) + }, + { + HumanBodyBones.LeftIndexIntermediate, + new Tuple(HumanBodyBones.LeftIndexIntermediate, + HumanBodyBones.LeftIndexDistal) + }, + { + HumanBodyBones.LeftIndexDistal, + new Tuple(HumanBodyBones.LeftIndexDistal, HumanBodyBones.LastBone) + }, // Invalid. + + { + HumanBodyBones.LeftMiddleProximal, + new Tuple(HumanBodyBones.LeftMiddleProximal, + HumanBodyBones.LeftMiddleIntermediate) + }, + { + HumanBodyBones.LeftMiddleIntermediate, + new Tuple(HumanBodyBones.LeftMiddleIntermediate, + HumanBodyBones.LeftMiddleDistal) + }, + { + HumanBodyBones.LeftMiddleDistal, + new Tuple(HumanBodyBones.LeftMiddleDistal, HumanBodyBones.LastBone) + }, // Invalid. + + { + HumanBodyBones.LeftRingProximal, + new Tuple(HumanBodyBones.LeftRingProximal, + HumanBodyBones.LeftRingIntermediate) + }, + { + HumanBodyBones.LeftRingIntermediate, + new Tuple(HumanBodyBones.LeftRingIntermediate, + HumanBodyBones.LeftRingDistal) + }, + { + HumanBodyBones.LeftRingDistal, + new Tuple(HumanBodyBones.LeftRingDistal, HumanBodyBones.LastBone) + }, // Invalid. + + { + HumanBodyBones.LeftLittleProximal, + new Tuple(HumanBodyBones.LeftLittleProximal, + HumanBodyBones.LeftLittleIntermediate) + }, + { + HumanBodyBones.LeftLittleIntermediate, + new Tuple(HumanBodyBones.LeftLittleIntermediate, + HumanBodyBones.LeftLittleDistal) + }, + { + HumanBodyBones.LeftLittleDistal, + new Tuple(HumanBodyBones.LeftLittleDistal, HumanBodyBones.LastBone) + }, // Invalid. + + { + HumanBodyBones.RightThumbProximal, + new Tuple(HumanBodyBones.RightThumbProximal, + HumanBodyBones.RightThumbIntermediate) + }, + { + HumanBodyBones.RightThumbIntermediate, + new Tuple(HumanBodyBones.RightThumbIntermediate, + HumanBodyBones.RightThumbDistal) + }, + { + HumanBodyBones.RightThumbDistal, + new Tuple(HumanBodyBones.RightThumbDistal, HumanBodyBones.LastBone) + }, // Invalid. + + { + HumanBodyBones.RightIndexProximal, + new Tuple(HumanBodyBones.RightIndexProximal, + HumanBodyBones.RightIndexIntermediate) + }, + { + HumanBodyBones.RightIndexIntermediate, + new Tuple(HumanBodyBones.RightIndexIntermediate, + HumanBodyBones.RightIndexDistal) + }, + { + HumanBodyBones.RightIndexDistal, + new Tuple(HumanBodyBones.RightIndexDistal, HumanBodyBones.LastBone) + }, // Invalid. + + { + HumanBodyBones.RightMiddleProximal, + new Tuple(HumanBodyBones.RightMiddleProximal, + HumanBodyBones.RightMiddleIntermediate) + }, + { + HumanBodyBones.RightMiddleIntermediate, + new Tuple(HumanBodyBones.RightMiddleIntermediate, + HumanBodyBones.RightMiddleDistal) + }, + { + HumanBodyBones.RightMiddleDistal, + new Tuple(HumanBodyBones.RightMiddleDistal, HumanBodyBones.LastBone) + }, // Invalid. + + { + HumanBodyBones.RightRingProximal, + new Tuple(HumanBodyBones.RightRingProximal, + HumanBodyBones.RightRingIntermediate) + }, + { + HumanBodyBones.RightRingIntermediate, + new Tuple(HumanBodyBones.RightRingIntermediate, + HumanBodyBones.RightRingDistal) + }, + { + HumanBodyBones.RightRingDistal, + new Tuple(HumanBodyBones.RightRingDistal, HumanBodyBones.LastBone) + }, // Invalid. + + { + HumanBodyBones.RightLittleProximal, + new Tuple(HumanBodyBones.RightLittleProximal, + HumanBodyBones.RightLittleIntermediate) + }, + { + HumanBodyBones.RightLittleIntermediate, + new Tuple(HumanBodyBones.RightLittleIntermediate, + HumanBodyBones.RightLittleDistal) + }, + { + HumanBodyBones.RightLittleDistal, + new Tuple(HumanBodyBones.RightLittleDistal, HumanBodyBones.LastBone) + }, // Invalid. + }; + + /// + /// Maps HumanBodyBone to avatar mask. + /// + public static readonly Dictionary + HumanBoneToAvatarBodyPart = new Dictionary() + { + { HumanBodyBones.Neck, AvatarMaskBodyPart.Head }, + + { HumanBodyBones.Head, AvatarMaskBodyPart.Head }, + { HumanBodyBones.LeftEye, AvatarMaskBodyPart.Head }, + { HumanBodyBones.RightEye, AvatarMaskBodyPart.Head }, + { HumanBodyBones.Jaw, AvatarMaskBodyPart.Head }, + + { HumanBodyBones.Hips, AvatarMaskBodyPart.Body }, + + { HumanBodyBones.Spine, AvatarMaskBodyPart.Body }, + { HumanBodyBones.Chest, AvatarMaskBodyPart.Body }, + { HumanBodyBones.UpperChest, AvatarMaskBodyPart.Body }, + + { HumanBodyBones.RightShoulder, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightUpperArm, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightLowerArm, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightHand, AvatarMaskBodyPart.RightArm }, + + { HumanBodyBones.LeftShoulder, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftUpperArm, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftLowerArm, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftHand, AvatarMaskBodyPart.LeftArm }, + + { HumanBodyBones.LeftUpperLeg, AvatarMaskBodyPart.LeftLeg }, + { HumanBodyBones.LeftLowerLeg, AvatarMaskBodyPart.LeftLeg }, + + { HumanBodyBones.LeftFoot, AvatarMaskBodyPart.LeftLeg }, + { HumanBodyBones.LeftToes, AvatarMaskBodyPart.LeftLeg }, + + { HumanBodyBones.RightUpperLeg, AvatarMaskBodyPart.RightLeg }, + { HumanBodyBones.RightLowerLeg, AvatarMaskBodyPart.RightLeg }, + + { HumanBodyBones.RightFoot, AvatarMaskBodyPart.RightLeg }, + { HumanBodyBones.RightToes, AvatarMaskBodyPart.RightLeg }, + + { HumanBodyBones.LeftThumbProximal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftThumbIntermediate, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftThumbDistal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftIndexProximal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftIndexIntermediate, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftIndexDistal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftMiddleProximal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftMiddleIntermediate, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftMiddleDistal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftRingProximal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftRingIntermediate, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftRingDistal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftLittleProximal, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftLittleIntermediate, AvatarMaskBodyPart.LeftArm }, + { HumanBodyBones.LeftLittleDistal, AvatarMaskBodyPart.LeftArm }, + + { HumanBodyBones.RightThumbProximal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightThumbIntermediate, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightThumbDistal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightIndexProximal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightIndexIntermediate, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightIndexDistal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightMiddleProximal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightMiddleIntermediate, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightMiddleDistal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightRingProximal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightRingIntermediate, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightRingDistal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightLittleProximal, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightLittleIntermediate, AvatarMaskBodyPart.RightArm }, + { HumanBodyBones.RightLittleDistal, AvatarMaskBodyPart.RightArm } + }; + + /// + /// Maps OVRSkeleton bone to avatar mask. + /// + public static readonly Dictionary + OVRSkeletonBoneIdToAvatarBodyPart = new Dictionary() + { + { OVRSkeleton.BoneId.Body_Neck, AvatarMaskBodyPart.Head }, + { OVRSkeleton.BoneId.Body_Head, AvatarMaskBodyPart.Head }, + + { OVRSkeleton.BoneId.Body_Root, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.Body_Hips, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.Body_SpineLower, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.Body_SpineMiddle, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.Body_SpineUpper, AvatarMaskBodyPart.Body }, + { OVRSkeleton.BoneId.Body_Chest, AvatarMaskBodyPart.Body }, + + { OVRSkeleton.BoneId.Body_RightShoulder, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightScapula, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightArmUpper, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightArmLower, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandWristTwist, AvatarMaskBodyPart.RightArm }, + + { OVRSkeleton.BoneId.Body_LeftShoulder, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftScapula, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftArmUpper, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftArmLower, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandWristTwist, AvatarMaskBodyPart.LeftArm }, + + { OVRSkeleton.BoneId.Body_LeftHandPalm, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandWrist, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandThumbMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandThumbProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandThumbDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandThumbTip, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandIndexMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandIndexProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandIndexIntermediate, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandIndexDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandIndexTip, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandMiddleMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandMiddleProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandMiddleIntermediate, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandMiddleDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandMiddleTip, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandRingMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandRingProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandRingIntermediate, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandRingDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandRingTip, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandLittleMetacarpal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandLittleProximal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandLittleIntermediate, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandLittleDistal, AvatarMaskBodyPart.LeftArm }, + { OVRSkeleton.BoneId.Body_LeftHandLittleTip, AvatarMaskBodyPart.LeftArm }, + + { OVRSkeleton.BoneId.Body_RightHandPalm, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandWrist, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandThumbMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandThumbProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandThumbDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandThumbTip, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandIndexMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandIndexProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandIndexIntermediate, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandIndexDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandIndexTip, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandMiddleMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandMiddleProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandMiddleIntermediate, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandMiddleDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandMiddleTip, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandRingMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandRingProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandRingIntermediate, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandRingDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandRingTip, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandLittleMetacarpal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandLittleProximal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandLittleIntermediate, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandLittleDistal, AvatarMaskBodyPart.RightArm }, + { OVRSkeleton.BoneId.Body_RightHandLittleTip, AvatarMaskBodyPart.RightArm }, + }; + + /// + /// For each humanoid bone, create a pair that determines the + /// pair of bones that create the joint pair. Used to + /// create the "axis" of the bone. + /// + public static readonly Dictionary> + OVRSkeletonBoneIdToJointPair = new Dictionary>() + { + { + OVRSkeleton.BoneId.Body_Neck, + new Tuple(OVRSkeleton.BoneId.Body_Neck, + OVRSkeleton.BoneId.Body_Head) + }, + { + OVRSkeleton.BoneId.Body_Head, + new Tuple(OVRSkeleton.BoneId.Body_Head, + OVRSkeleton.BoneId.Invalid) + }, + + { + OVRSkeleton.BoneId.Body_Root, + new Tuple(OVRSkeleton.BoneId.Body_Root, + OVRSkeleton.BoneId.Body_Hips) + }, + { + OVRSkeleton.BoneId.Body_Hips, + new Tuple(OVRSkeleton.BoneId.Body_Hips, + OVRSkeleton.BoneId.Body_SpineLower) + }, + { + OVRSkeleton.BoneId.Body_SpineLower, + new Tuple(OVRSkeleton.BoneId.Body_SpineLower, + OVRSkeleton.BoneId.Body_SpineMiddle) + }, + { + OVRSkeleton.BoneId.Body_SpineMiddle, + new Tuple(OVRSkeleton.BoneId.Body_SpineMiddle, + OVRSkeleton.BoneId.Body_SpineUpper) + }, + { + OVRSkeleton.BoneId.Body_SpineUpper, + new Tuple(OVRSkeleton.BoneId.Body_SpineUpper, + OVRSkeleton.BoneId.Body_Chest) + }, + { + OVRSkeleton.BoneId.Body_Chest, + new Tuple(OVRSkeleton.BoneId.Body_Chest, + OVRSkeleton.BoneId.Body_Neck) + }, + + { + OVRSkeleton.BoneId.Body_LeftShoulder, + new Tuple(OVRSkeleton.BoneId.Body_LeftShoulder, + OVRSkeleton.BoneId.Body_LeftArmUpper) + }, + { + OVRSkeleton.BoneId.Body_LeftScapula, + new Tuple(OVRSkeleton.BoneId.Body_LeftScapula, + OVRSkeleton.BoneId.Body_LeftArmUpper) + }, + { + OVRSkeleton.BoneId.Body_LeftArmUpper, + new Tuple(OVRSkeleton.BoneId.Body_LeftArmUpper, + OVRSkeleton.BoneId.Body_LeftArmLower) + }, + { + OVRSkeleton.BoneId.Body_LeftArmLower, + new Tuple(OVRSkeleton.BoneId.Body_LeftArmLower, + OVRSkeleton.BoneId.Body_LeftHandWrist) + }, + { + OVRSkeleton.BoneId.Body_LeftHandWrist, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandWrist, + OVRSkeleton.BoneId.Body_LeftHandMiddleMetacarpal) + }, + { + OVRSkeleton.BoneId.Body_LeftHandPalm, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandPalm, + OVRSkeleton.BoneId.Body_LeftHandMiddleMetacarpal) + }, + { + OVRSkeleton.BoneId.Body_LeftHandWristTwist, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandWristTwist, + OVRSkeleton.BoneId.Body_LeftHandMiddleMetacarpal) + }, + + { + OVRSkeleton.BoneId.Body_LeftHandThumbMetacarpal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandThumbMetacarpal, + OVRSkeleton.BoneId.Body_LeftHandThumbProximal) + }, + { + OVRSkeleton.BoneId.Body_LeftHandThumbProximal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandThumbProximal, + OVRSkeleton.BoneId.Body_LeftHandThumbDistal) + }, + { + OVRSkeleton.BoneId.Body_LeftHandThumbDistal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandThumbDistal, + OVRSkeleton.BoneId.Body_LeftHandThumbTip) + }, + { + OVRSkeleton.BoneId.Body_LeftHandThumbTip, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandThumbDistal, + OVRSkeleton.BoneId.Body_LeftHandThumbTip) + }, + { + OVRSkeleton.BoneId.Body_LeftHandIndexMetacarpal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandIndexMetacarpal, + OVRSkeleton.BoneId.Body_LeftHandIndexProximal) + }, + { + OVRSkeleton.BoneId.Body_LeftHandIndexProximal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandIndexProximal, + OVRSkeleton.BoneId.Body_LeftHandIndexIntermediate) + }, + { + OVRSkeleton.BoneId.Body_LeftHandIndexIntermediate, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandIndexIntermediate, + OVRSkeleton.BoneId.Body_LeftHandIndexDistal) + }, + { + OVRSkeleton.BoneId.Body_LeftHandIndexDistal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandIndexDistal, + OVRSkeleton.BoneId.Body_LeftHandIndexTip) + }, + { + OVRSkeleton.BoneId.Body_LeftHandIndexTip, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandIndexDistal, + OVRSkeleton.BoneId.Body_LeftHandIndexTip) + }, + { + OVRSkeleton.BoneId.Body_LeftHandMiddleMetacarpal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandMiddleMetacarpal, + OVRSkeleton.BoneId.Body_LeftHandMiddleProximal) + }, + { + OVRSkeleton.BoneId.Body_LeftHandMiddleProximal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandMiddleProximal, + OVRSkeleton.BoneId.Body_LeftHandMiddleIntermediate) + }, + { + OVRSkeleton.BoneId.Body_LeftHandMiddleIntermediate, + new Tuple( + OVRSkeleton.BoneId.Body_LeftHandMiddleIntermediate, + OVRSkeleton.BoneId.Body_LeftHandMiddleDistal) + }, + { + OVRSkeleton.BoneId.Body_LeftHandMiddleDistal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandMiddleDistal, + OVRSkeleton.BoneId.Body_LeftHandMiddleTip) + }, + { + OVRSkeleton.BoneId.Body_LeftHandMiddleTip, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandMiddleDistal, + OVRSkeleton.BoneId.Body_LeftHandMiddleTip) + }, + { + OVRSkeleton.BoneId.Body_LeftHandRingMetacarpal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandRingMetacarpal, + OVRSkeleton.BoneId.Body_LeftHandRingProximal) + }, + { + OVRSkeleton.BoneId.Body_LeftHandRingProximal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandRingProximal, + OVRSkeleton.BoneId.Body_LeftHandRingIntermediate) + }, + { + OVRSkeleton.BoneId.Body_LeftHandRingIntermediate, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandRingIntermediate, + OVRSkeleton.BoneId.Body_LeftHandRingDistal) + }, + { + OVRSkeleton.BoneId.Body_LeftHandRingDistal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandRingDistal, + OVRSkeleton.BoneId.Body_LeftHandRingTip) + }, + { + OVRSkeleton.BoneId.Body_LeftHandRingTip, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandRingDistal, + OVRSkeleton.BoneId.Body_LeftHandRingTip) + }, + { + OVRSkeleton.BoneId.Body_LeftHandLittleMetacarpal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandLittleMetacarpal, + OVRSkeleton.BoneId.Body_LeftHandLittleProximal) + }, + { + OVRSkeleton.BoneId.Body_LeftHandLittleProximal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandLittleProximal, + OVRSkeleton.BoneId.Body_LeftHandLittleIntermediate) + }, + { + OVRSkeleton.BoneId.Body_LeftHandLittleIntermediate, + new Tuple( + OVRSkeleton.BoneId.Body_LeftHandLittleIntermediate, + OVRSkeleton.BoneId.Body_LeftHandLittleDistal) + }, + { + OVRSkeleton.BoneId.Body_LeftHandLittleDistal, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandLittleDistal, + OVRSkeleton.BoneId.Body_LeftHandLittleTip) + }, + { + OVRSkeleton.BoneId.Body_LeftHandLittleTip, + new Tuple(OVRSkeleton.BoneId.Body_LeftHandLittleDistal, + OVRSkeleton.BoneId.Body_LeftHandLittleTip) + }, + + { + OVRSkeleton.BoneId.Body_RightShoulder, + new Tuple(OVRSkeleton.BoneId.Body_RightShoulder, + OVRSkeleton.BoneId.Body_RightArmUpper) + }, + { + OVRSkeleton.BoneId.Body_RightScapula, + new Tuple(OVRSkeleton.BoneId.Body_RightScapula, + OVRSkeleton.BoneId.Body_RightArmUpper) + }, + { + OVRSkeleton.BoneId.Body_RightArmUpper, + new Tuple(OVRSkeleton.BoneId.Body_RightArmUpper, + OVRSkeleton.BoneId.Body_RightArmLower) + }, + { + OVRSkeleton.BoneId.Body_RightArmLower, + new Tuple(OVRSkeleton.BoneId.Body_RightArmLower, + OVRSkeleton.BoneId.Body_RightHandWrist) + }, + { + OVRSkeleton.BoneId.Body_RightHandWrist, + new Tuple(OVRSkeleton.BoneId.Body_RightHandWrist, + OVRSkeleton.BoneId.Body_RightHandMiddleMetacarpal) + }, + { + OVRSkeleton.BoneId.Body_RightHandPalm, + new Tuple(OVRSkeleton.BoneId.Body_RightHandPalm, + OVRSkeleton.BoneId.Body_RightHandMiddleMetacarpal) + }, + { + OVRSkeleton.BoneId.Body_RightHandWristTwist, + new Tuple(OVRSkeleton.BoneId.Body_RightHandWristTwist, + OVRSkeleton.BoneId.Body_RightHandMiddleMetacarpal) + }, + + { + OVRSkeleton.BoneId.Body_RightHandThumbMetacarpal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandThumbMetacarpal, + OVRSkeleton.BoneId.Body_RightHandThumbProximal) + }, + { + OVRSkeleton.BoneId.Body_RightHandThumbProximal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandThumbProximal, + OVRSkeleton.BoneId.Body_RightHandThumbDistal) + }, + { + OVRSkeleton.BoneId.Body_RightHandThumbDistal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandThumbDistal, + OVRSkeleton.BoneId.Body_RightHandThumbTip) + }, + { + OVRSkeleton.BoneId.Body_RightHandThumbTip, + new Tuple(OVRSkeleton.BoneId.Body_RightHandThumbDistal, + OVRSkeleton.BoneId.Body_RightHandThumbTip) + }, + { + OVRSkeleton.BoneId.Body_RightHandIndexMetacarpal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandIndexMetacarpal, + OVRSkeleton.BoneId.Body_RightHandIndexProximal) + }, + { + OVRSkeleton.BoneId.Body_RightHandIndexProximal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandIndexProximal, + OVRSkeleton.BoneId.Body_RightHandIndexIntermediate) + }, + { + OVRSkeleton.BoneId.Body_RightHandIndexIntermediate, + new Tuple( + OVRSkeleton.BoneId.Body_RightHandIndexIntermediate, + OVRSkeleton.BoneId.Body_RightHandIndexDistal) + }, + { + OVRSkeleton.BoneId.Body_RightHandIndexDistal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandIndexDistal, + OVRSkeleton.BoneId.Body_RightHandIndexTip) + }, + { + OVRSkeleton.BoneId.Body_RightHandIndexTip, + new Tuple(OVRSkeleton.BoneId.Body_RightHandIndexDistal, + OVRSkeleton.BoneId.Body_RightHandIndexTip) + }, + { + OVRSkeleton.BoneId.Body_RightHandMiddleMetacarpal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandMiddleMetacarpal, + OVRSkeleton.BoneId.Body_RightHandMiddleProximal) + }, + { + OVRSkeleton.BoneId.Body_RightHandMiddleProximal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandMiddleProximal, + OVRSkeleton.BoneId.Body_RightHandMiddleIntermediate) + }, + { + OVRSkeleton.BoneId.Body_RightHandMiddleIntermediate, + new Tuple( + OVRSkeleton.BoneId.Body_RightHandMiddleIntermediate, + OVRSkeleton.BoneId.Body_RightHandMiddleDistal) + }, + { + OVRSkeleton.BoneId.Body_RightHandMiddleDistal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandMiddleDistal, + OVRSkeleton.BoneId.Body_RightHandMiddleTip) + }, + { + OVRSkeleton.BoneId.Body_RightHandMiddleTip, + new Tuple(OVRSkeleton.BoneId.Body_RightHandMiddleDistal, + OVRSkeleton.BoneId.Body_RightHandMiddleTip) + }, + { + OVRSkeleton.BoneId.Body_RightHandRingMetacarpal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandRingMetacarpal, + OVRSkeleton.BoneId.Body_RightHandRingProximal) + }, + { + OVRSkeleton.BoneId.Body_RightHandRingProximal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandRingProximal, + OVRSkeleton.BoneId.Body_RightHandRingIntermediate) + }, + { + OVRSkeleton.BoneId.Body_RightHandRingIntermediate, + new Tuple(OVRSkeleton.BoneId.Body_RightHandRingIntermediate, + OVRSkeleton.BoneId.Body_RightHandRingDistal) + }, + { + OVRSkeleton.BoneId.Body_RightHandRingDistal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandRingDistal, + OVRSkeleton.BoneId.Body_RightHandRingTip) + }, + { + OVRSkeleton.BoneId.Body_RightHandRingTip, + new Tuple(OVRSkeleton.BoneId.Body_RightHandRingDistal, + OVRSkeleton.BoneId.Body_RightHandRingTip) + }, + { + OVRSkeleton.BoneId.Body_RightHandLittleMetacarpal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandLittleMetacarpal, + OVRSkeleton.BoneId.Body_RightHandLittleProximal) + }, + { + OVRSkeleton.BoneId.Body_RightHandLittleProximal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandLittleProximal, + OVRSkeleton.BoneId.Body_RightHandLittleIntermediate) + }, + { + OVRSkeleton.BoneId.Body_RightHandLittleIntermediate, + new Tuple( + OVRSkeleton.BoneId.Body_RightHandLittleIntermediate, + OVRSkeleton.BoneId.Body_RightHandLittleDistal) + }, + { + OVRSkeleton.BoneId.Body_RightHandLittleDistal, + new Tuple(OVRSkeleton.BoneId.Body_RightHandLittleDistal, + OVRSkeleton.BoneId.Body_RightHandLittleTip) + }, + { + OVRSkeleton.BoneId.Body_RightHandLittleTip, + new Tuple(OVRSkeleton.BoneId.Body_RightHandLittleDistal, + OVRSkeleton.BoneId.Body_RightHandLittleTip) + }, + }; + } +} diff --git a/Runtime/Scripts/AnimationRigging/Legacy/CustomMappings.cs.meta b/Runtime/Scripts/AnimationRigging/Legacy/CustomMappings.cs.meta new file mode 100644 index 00000000..a9daa169 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/Legacy/CustomMappings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b44a4153dbd342248b2573e1da0a87ed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/Legacy/FullBodyCustomMappings.cs b/Runtime/Scripts/AnimationRigging/Legacy/FullBodyCustomMappings.cs new file mode 100644 index 00000000..270f7290 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/Legacy/FullBodyCustomMappings.cs @@ -0,0 +1,605 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace Oculus.Movement.AnimationRigging.Deprecated +{ + /// + /// Contains some mappings copied from OVRUnityHumanoidSkeletonRetargeter, + /// which are currently inaccessible from non-inheriting classes. + /// + public class FullBodyCustomMappings + { + /// + /// Body tracking bone IDs that should be exposed through the inspector. + /// BoneId has enum values that map to the same integers, which would not work + /// with a serialized field that expects unique integers. FullBodyTrackingBoneId + /// is an enum that restricts BoneId to the values that we care about. + /// + public enum FullBodyTrackingBoneId + { + FullBody_Start = OVRPlugin.BoneId.FullBody_Start, + FullBody_Root = OVRPlugin.BoneId.FullBody_Root, + FullBody_Hips = OVRPlugin.BoneId.FullBody_Hips, + FullBody_SpineLower = OVRPlugin.BoneId.FullBody_SpineLower, + FullBody_SpineMiddle = OVRPlugin.BoneId.FullBody_SpineMiddle, + FullBody_SpineUpper = OVRPlugin.BoneId.FullBody_SpineUpper, + FullBody_Chest = OVRPlugin.BoneId.FullBody_Chest, + FullBody_Neck = OVRPlugin.BoneId.FullBody_Neck, + FullBody_Head = OVRPlugin.BoneId.FullBody_Head, + FullBody_LeftShoulder = OVRPlugin.BoneId.FullBody_LeftShoulder, + FullBody_LeftScapula = OVRPlugin.BoneId.FullBody_LeftScapula, + FullBody_LeftArmUpper = OVRPlugin.BoneId.FullBody_LeftArmUpper, + FullBody_LeftArmLower = OVRPlugin.BoneId.FullBody_LeftArmLower, + FullBody_LeftHandWristTwist = OVRPlugin.BoneId.FullBody_LeftHandWristTwist, + FullBody_RightShoulder = OVRPlugin.BoneId.FullBody_RightShoulder, + FullBody_RightScapula = OVRPlugin.BoneId.FullBody_RightScapula, + FullBody_RightArmUpper = OVRPlugin.BoneId.FullBody_RightArmUpper, + FullBody_RightArmLower = OVRPlugin.BoneId.FullBody_RightArmLower, + FullBody_RightHandWristTwist = OVRPlugin.BoneId.FullBody_RightHandWristTwist, + FullBody_LeftHandPalm = OVRPlugin.BoneId.FullBody_LeftHandPalm, + FullBody_LeftHandWrist = OVRPlugin.BoneId.FullBody_LeftHandWrist, + FullBody_LeftHandThumbMetacarpal = OVRPlugin.BoneId.FullBody_LeftHandThumbMetacarpal, + FullBody_LeftHandThumbProximal = OVRPlugin.BoneId.FullBody_LeftHandThumbProximal, + FullBody_LeftHandThumbDistal = OVRPlugin.BoneId.FullBody_LeftHandThumbDistal, + FullBody_LeftHandThumbTip = OVRPlugin.BoneId.FullBody_LeftHandThumbTip, + FullBody_LeftHandIndexMetacarpal = OVRPlugin.BoneId.FullBody_LeftHandIndexMetacarpal, + FullBody_LeftHandIndexProximal = OVRPlugin.BoneId.FullBody_LeftHandIndexProximal, + FullBody_LeftHandIndexIntermediate = OVRPlugin.BoneId.FullBody_LeftHandIndexIntermediate, + FullBody_LeftHandIndexDistal = OVRPlugin.BoneId.FullBody_LeftHandIndexDistal, + FullBody_LeftHandIndexTip = OVRPlugin.BoneId.FullBody_LeftHandIndexTip, + FullBody_LeftHandMiddleMetacarpal = OVRPlugin.BoneId.FullBody_LeftHandMiddleMetacarpal, + FullBody_LeftHandMiddleProximal = OVRPlugin.BoneId.FullBody_LeftHandMiddleProximal, + FullBody_LeftHandMiddleIntermediate = OVRPlugin.BoneId.FullBody_LeftHandMiddleIntermediate, + FullBody_LeftHandMiddleDistal = OVRPlugin.BoneId.FullBody_LeftHandMiddleDistal, + FullBody_LeftHandMiddleTip = OVRPlugin.BoneId.FullBody_LeftHandMiddleTip, + FullBody_LeftHandRingMetacarpal = OVRPlugin.BoneId.FullBody_LeftHandRingMetacarpal, + FullBody_LeftHandRingProximal = OVRPlugin.BoneId.FullBody_LeftHandRingProximal, + FullBody_LeftHandRingIntermediate = OVRPlugin.BoneId.FullBody_LeftHandRingIntermediate, + FullBody_LeftHandRingDistal = OVRPlugin.BoneId.FullBody_LeftHandRingDistal, + FullBody_LeftHandRingTip = OVRPlugin.BoneId.FullBody_LeftHandRingTip, + FullBody_LeftHandLittleMetacarpal = OVRPlugin.BoneId.FullBody_LeftHandLittleMetacarpal, + FullBody_LeftHandLittleProximal = OVRPlugin.BoneId.FullBody_LeftHandLittleProximal, + FullBody_LeftHandLittleIntermediate = OVRPlugin.BoneId.FullBody_LeftHandLittleIntermediate, + FullBody_LeftHandLittleDistal = OVRPlugin.BoneId.FullBody_LeftHandLittleDistal, + FullBody_LeftHandLittleTip = OVRPlugin.BoneId.FullBody_LeftHandLittleTip, + FullBody_RightHandPalm = OVRPlugin.BoneId.FullBody_RightHandPalm, + FullBody_RightHandWrist = OVRPlugin.BoneId.FullBody_RightHandWrist, + FullBody_RightHandThumbMetacarpal = OVRPlugin.BoneId.FullBody_RightHandThumbMetacarpal, + FullBody_RightHandThumbProximal = OVRPlugin.BoneId.FullBody_RightHandThumbProximal, + FullBody_RightHandThumbDistal = OVRPlugin.BoneId.FullBody_RightHandThumbDistal, + FullBody_RightHandThumbTip = OVRPlugin.BoneId.FullBody_RightHandThumbTip, + FullBody_RightHandIndexMetacarpal = OVRPlugin.BoneId.FullBody_RightHandIndexMetacarpal, + FullBody_RightHandIndexProximal = OVRPlugin.BoneId.FullBody_RightHandIndexProximal, + FullBody_RightHandIndexIntermediate = OVRPlugin.BoneId.FullBody_RightHandIndexIntermediate, + FullBody_RightHandIndexDistal = OVRPlugin.BoneId.FullBody_RightHandIndexDistal, + FullBody_RightHandIndexTip = OVRPlugin.BoneId.FullBody_RightHandIndexTip, + FullBody_RightHandMiddleMetacarpal = OVRPlugin.BoneId.FullBody_RightHandMiddleMetacarpal, + FullBody_RightHandMiddleProximal = OVRPlugin.BoneId.FullBody_RightHandMiddleProximal, + FullBody_RightHandMiddleIntermediate = OVRPlugin.BoneId.FullBody_RightHandMiddleIntermediate, + FullBody_RightHandMiddleDistal = OVRPlugin.BoneId.FullBody_RightHandMiddleDistal, + FullBody_RightHandMiddleTip = OVRPlugin.BoneId.FullBody_RightHandMiddleTip, + FullBody_RightHandRingMetacarpal = OVRPlugin.BoneId.FullBody_RightHandRingMetacarpal, + FullBody_RightHandRingProximal = OVRPlugin.BoneId.FullBody_RightHandRingProximal, + FullBody_RightHandRingIntermediate = OVRPlugin.BoneId.FullBody_RightHandRingIntermediate, + FullBody_RightHandRingDistal = OVRPlugin.BoneId.FullBody_RightHandRingDistal, + FullBody_RightHandRingTip = OVRPlugin.BoneId.FullBody_RightHandRingTip, + FullBody_RightHandLittleMetacarpal = OVRPlugin.BoneId.FullBody_RightHandLittleMetacarpal, + FullBody_RightHandLittleProximal = OVRPlugin.BoneId.FullBody_RightHandLittleProximal, + FullBody_RightHandLittleIntermediate = OVRPlugin.BoneId.FullBody_RightHandLittleIntermediate, + FullBody_RightHandLittleDistal = OVRPlugin.BoneId.FullBody_RightHandLittleDistal, + FullBody_RightHandLittleTip = OVRPlugin.BoneId.FullBody_RightHandLittleTip, + FullBody_LeftUpperLeg = OVRPlugin.BoneId.FullBody_LeftUpperLeg, + FullBody_LeftLowerLeg = OVRPlugin.BoneId.FullBody_LeftLowerLeg, + FullBody_LeftFootAnkleTwist = OVRPlugin.BoneId.FullBody_LeftFootAnkleTwist, + FullBody_LeftFootAnkle = OVRPlugin.BoneId.FullBody_LeftFootAnkle, + FullBody_LeftFootSubtalar = OVRPlugin.BoneId.FullBody_LeftFootSubtalar, + FullBody_LeftFootTransverse = OVRPlugin.BoneId.FullBody_LeftFootTransverse, + FullBody_LeftFootBall = OVRPlugin.BoneId.FullBody_LeftFootBall, + FullBody_RightUpperLeg = OVRPlugin.BoneId.FullBody_RightUpperLeg, + FullBody_RightLowerLeg = OVRPlugin.BoneId.FullBody_RightLowerLeg, + FullBody_RightFootAnkleTwist = OVRPlugin.BoneId.FullBody_RightFootAnkleTwist, + FullBody_RightFootAnkle = OVRPlugin.BoneId.FullBody_RightFootAnkle, + FullBody_RightFootSubtalar = OVRPlugin.BoneId.FullBody_RightFootSubtalar, + FullBody_RightFootTransverse = OVRPlugin.BoneId.FullBody_RightFootTransverse, + FullBody_RightFootBall = OVRPlugin.BoneId.FullBody_RightFootBall, + FullBody_End = OVRPlugin.BoneId.FullBody_End, + + // add new bones here + + NoOverride = OVRPlugin.BoneId.FullBody_End + 1, + Remove = OVRPlugin.BoneId.FullBody_End + 2 + }; + + /// + /// Paired OVRSkeleton bones with human body bones. + /// + public static readonly Dictionary FullBodyBoneIdToHumanBodyBone = + new Dictionary() + { + { OVRSkeleton.BoneId.FullBody_Hips, HumanBodyBones.Hips }, + { OVRSkeleton.BoneId.FullBody_SpineLower, HumanBodyBones.Spine }, + { OVRSkeleton.BoneId.FullBody_SpineUpper, HumanBodyBones.Chest }, + { OVRSkeleton.BoneId.FullBody_Chest, HumanBodyBones.UpperChest }, + { OVRSkeleton.BoneId.FullBody_Neck, HumanBodyBones.Neck }, + { OVRSkeleton.BoneId.FullBody_Head, HumanBodyBones.Head }, + { OVRSkeleton.BoneId.FullBody_LeftShoulder, HumanBodyBones.LeftShoulder }, + { OVRSkeleton.BoneId.FullBody_LeftArmUpper, HumanBodyBones.LeftUpperArm }, + { OVRSkeleton.BoneId.FullBody_LeftArmLower, HumanBodyBones.LeftLowerArm }, + { OVRSkeleton.BoneId.FullBody_LeftHandWrist, HumanBodyBones.LeftHand }, + { OVRSkeleton.BoneId.FullBody_RightShoulder, HumanBodyBones.RightShoulder }, + { OVRSkeleton.BoneId.FullBody_RightArmUpper, HumanBodyBones.RightUpperArm }, + { OVRSkeleton.BoneId.FullBody_RightArmLower, HumanBodyBones.RightLowerArm }, + { OVRSkeleton.BoneId.FullBody_RightHandWrist, HumanBodyBones.RightHand }, + { OVRSkeleton.BoneId.FullBody_LeftHandThumbMetacarpal, HumanBodyBones.LeftThumbProximal }, + { OVRSkeleton.BoneId.FullBody_LeftHandThumbProximal, HumanBodyBones.LeftThumbIntermediate }, + { OVRSkeleton.BoneId.FullBody_LeftHandThumbDistal, HumanBodyBones.LeftThumbDistal }, + { OVRSkeleton.BoneId.FullBody_LeftHandIndexProximal, HumanBodyBones.LeftIndexProximal }, + { OVRSkeleton.BoneId.FullBody_LeftHandIndexIntermediate, HumanBodyBones.LeftIndexIntermediate }, + { OVRSkeleton.BoneId.FullBody_LeftHandIndexDistal, HumanBodyBones.LeftIndexDistal }, + { OVRSkeleton.BoneId.FullBody_LeftHandMiddleProximal, HumanBodyBones.LeftMiddleProximal }, + { OVRSkeleton.BoneId.FullBody_LeftHandMiddleIntermediate, HumanBodyBones.LeftMiddleIntermediate }, + { OVRSkeleton.BoneId.FullBody_LeftHandMiddleDistal, HumanBodyBones.LeftMiddleDistal }, + { OVRSkeleton.BoneId.FullBody_LeftHandRingProximal, HumanBodyBones.LeftRingProximal }, + { OVRSkeleton.BoneId.FullBody_LeftHandRingIntermediate, HumanBodyBones.LeftRingIntermediate }, + { OVRSkeleton.BoneId.FullBody_LeftHandRingDistal, HumanBodyBones.LeftRingDistal }, + { OVRSkeleton.BoneId.FullBody_LeftHandLittleProximal, HumanBodyBones.LeftLittleProximal }, + { OVRSkeleton.BoneId.FullBody_LeftHandLittleIntermediate, HumanBodyBones.LeftLittleIntermediate }, + { OVRSkeleton.BoneId.FullBody_LeftHandLittleDistal, HumanBodyBones.LeftLittleDistal }, + { OVRSkeleton.BoneId.FullBody_RightHandThumbMetacarpal, HumanBodyBones.RightThumbProximal }, + { OVRSkeleton.BoneId.FullBody_RightHandThumbProximal, HumanBodyBones.RightThumbIntermediate }, + { OVRSkeleton.BoneId.FullBody_RightHandThumbDistal, HumanBodyBones.RightThumbDistal }, + { OVRSkeleton.BoneId.FullBody_RightHandIndexProximal, HumanBodyBones.RightIndexProximal }, + { OVRSkeleton.BoneId.FullBody_RightHandIndexIntermediate, HumanBodyBones.RightIndexIntermediate }, + { OVRSkeleton.BoneId.FullBody_RightHandIndexDistal, HumanBodyBones.RightIndexDistal }, + { OVRSkeleton.BoneId.FullBody_RightHandMiddleProximal, HumanBodyBones.RightMiddleProximal }, + { OVRSkeleton.BoneId.FullBody_RightHandMiddleIntermediate, HumanBodyBones.RightMiddleIntermediate }, + { OVRSkeleton.BoneId.FullBody_RightHandMiddleDistal, HumanBodyBones.RightMiddleDistal }, + { OVRSkeleton.BoneId.FullBody_RightHandRingProximal, HumanBodyBones.RightRingProximal }, + { OVRSkeleton.BoneId.FullBody_RightHandRingIntermediate, HumanBodyBones.RightRingIntermediate }, + { OVRSkeleton.BoneId.FullBody_RightHandRingDistal, HumanBodyBones.RightRingDistal }, + { OVRSkeleton.BoneId.FullBody_RightHandLittleProximal, HumanBodyBones.RightLittleProximal }, + { OVRSkeleton.BoneId.FullBody_RightHandLittleIntermediate, HumanBodyBones.RightLittleIntermediate }, + { OVRSkeleton.BoneId.FullBody_RightHandLittleDistal, HumanBodyBones.RightLittleDistal }, + { OVRSkeleton.BoneId.FullBody_LeftUpperLeg, HumanBodyBones.LeftUpperLeg }, + { OVRSkeleton.BoneId.FullBody_LeftLowerLeg, HumanBodyBones.LeftLowerLeg }, + { OVRSkeleton.BoneId.FullBody_LeftFootAnkle, HumanBodyBones.LeftFoot }, + { OVRSkeleton.BoneId.FullBody_LeftFootBall, HumanBodyBones.LeftToes }, + { OVRSkeleton.BoneId.FullBody_RightUpperLeg, HumanBodyBones.RightUpperLeg }, + { OVRSkeleton.BoneId.FullBody_RightLowerLeg, HumanBodyBones.RightLowerLeg }, + { OVRSkeleton.BoneId.FullBody_RightFootAnkle, HumanBodyBones.RightFoot }, + { OVRSkeleton.BoneId.FullBody_RightFootBall, HumanBodyBones.RightToes }, + }; + + /// + /// For each humanoid bone, create a pair that determines the + /// pair of bones that create the joint pair. Used to + /// create the "axis" of the bone. + /// + public static readonly Dictionary> + FullBoneIdToJointPair = new Dictionary>() + { + { + OVRSkeleton.BoneId.FullBody_Neck, new Tuple( + OVRSkeleton.BoneId.FullBody_Neck, + OVRSkeleton.BoneId.FullBody_Head) + }, + { + OVRSkeleton.BoneId.FullBody_Head, new Tuple( + OVRSkeleton.BoneId.FullBody_Head, + OVRSkeleton.BoneId.Invalid) + }, + { + OVRSkeleton.BoneId.FullBody_Root, new Tuple( + OVRSkeleton.BoneId.FullBody_Root, + OVRSkeleton.BoneId.FullBody_Hips) + }, + { + OVRSkeleton.BoneId.FullBody_Hips, new Tuple( + OVRSkeleton.BoneId.FullBody_Hips, + OVRSkeleton.BoneId.FullBody_SpineLower) + }, + { + OVRSkeleton.BoneId.FullBody_SpineLower, new Tuple( + OVRSkeleton.BoneId.FullBody_SpineLower, + OVRSkeleton.BoneId.FullBody_SpineMiddle) + }, + { + OVRSkeleton.BoneId.FullBody_SpineMiddle, new Tuple( + OVRSkeleton.BoneId.FullBody_SpineMiddle, + OVRSkeleton.BoneId.FullBody_SpineUpper) + }, + { + OVRSkeleton.BoneId.FullBody_SpineUpper, new Tuple( + OVRSkeleton.BoneId.FullBody_SpineUpper, + OVRSkeleton.BoneId.FullBody_Chest) + }, + { + OVRSkeleton.BoneId.FullBody_Chest, new Tuple( + OVRSkeleton.BoneId.FullBody_Chest, + OVRSkeleton.BoneId.FullBody_Neck) + }, + { + OVRSkeleton.BoneId.FullBody_LeftShoulder, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftShoulder, + OVRSkeleton.BoneId.FullBody_LeftArmUpper) + }, + { + OVRSkeleton.BoneId.FullBody_LeftScapula, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftScapula, + OVRSkeleton.BoneId.FullBody_LeftArmUpper) + }, + { + OVRSkeleton.BoneId.FullBody_LeftArmUpper, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftArmUpper, + OVRSkeleton.BoneId.FullBody_LeftArmLower) + }, + { + OVRSkeleton.BoneId.FullBody_LeftArmLower, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftArmLower, + OVRSkeleton.BoneId.FullBody_LeftHandWrist) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandWrist, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandWrist, + OVRSkeleton.BoneId.FullBody_LeftHandMiddleMetacarpal) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandPalm, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandPalm, + OVRSkeleton.BoneId.FullBody_LeftHandMiddleMetacarpal) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandWristTwist, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandWristTwist, + OVRSkeleton.BoneId.FullBody_LeftHandMiddleMetacarpal) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandThumbMetacarpal, + new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandThumbMetacarpal, + OVRSkeleton.BoneId.FullBody_LeftHandThumbProximal) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandThumbProximal, + new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandThumbProximal, + OVRSkeleton.BoneId.FullBody_LeftHandThumbDistal) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandThumbDistal, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandThumbDistal, + OVRSkeleton.BoneId.FullBody_LeftHandThumbTip) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandThumbTip, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandThumbDistal, + OVRSkeleton.BoneId.FullBody_LeftHandThumbTip) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandIndexMetacarpal, + new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandIndexMetacarpal, + OVRSkeleton.BoneId.FullBody_LeftHandIndexProximal) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandIndexProximal, + new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandIndexProximal, + OVRSkeleton.BoneId.FullBody_LeftHandIndexIntermediate) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandIndexIntermediate, + new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandIndexIntermediate, + OVRSkeleton.BoneId.FullBody_LeftHandIndexDistal) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandIndexDistal, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandIndexDistal, + OVRSkeleton.BoneId.FullBody_LeftHandIndexTip) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandIndexTip, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandIndexDistal, + OVRSkeleton.BoneId.FullBody_LeftHandIndexTip) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandMiddleMetacarpal, + new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandMiddleMetacarpal, + OVRSkeleton.BoneId.FullBody_LeftHandMiddleProximal) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandMiddleProximal, + new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandMiddleProximal, + OVRSkeleton.BoneId.FullBody_LeftHandMiddleIntermediate) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandMiddleIntermediate, + new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandMiddleIntermediate, + OVRSkeleton.BoneId.FullBody_LeftHandMiddleDistal) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandMiddleDistal, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandMiddleDistal, + OVRSkeleton.BoneId.FullBody_LeftHandMiddleTip) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandMiddleTip, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandMiddleDistal, + OVRSkeleton.BoneId.FullBody_LeftHandMiddleTip) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandRingMetacarpal, + new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandRingMetacarpal, + OVRSkeleton.BoneId.FullBody_LeftHandRingProximal) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandRingProximal, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandRingProximal, + OVRSkeleton.BoneId.FullBody_LeftHandRingIntermediate) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandRingIntermediate, + new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandRingIntermediate, + OVRSkeleton.BoneId.FullBody_LeftHandRingDistal) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandRingDistal, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandRingDistal, + OVRSkeleton.BoneId.FullBody_LeftHandRingTip) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandRingTip, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandRingDistal, + OVRSkeleton.BoneId.FullBody_LeftHandRingTip) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandLittleMetacarpal, + new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandLittleMetacarpal, + OVRSkeleton.BoneId.FullBody_LeftHandLittleProximal) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandLittleProximal, + new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandLittleProximal, + OVRSkeleton.BoneId.FullBody_LeftHandLittleIntermediate) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandLittleIntermediate, + new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandLittleIntermediate, + OVRSkeleton.BoneId.FullBody_LeftHandLittleDistal) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandLittleDistal, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandLittleDistal, + OVRSkeleton.BoneId.FullBody_LeftHandLittleTip) + }, + { + OVRSkeleton.BoneId.FullBody_LeftHandLittleTip, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftHandLittleDistal, + OVRSkeleton.BoneId.FullBody_LeftHandRingTip) + }, + { + OVRSkeleton.BoneId.FullBody_RightShoulder, new Tuple( + OVRSkeleton.BoneId.FullBody_RightShoulder, + OVRSkeleton.BoneId.FullBody_RightArmUpper) + }, + { + OVRSkeleton.BoneId.FullBody_RightScapula, new Tuple( + OVRSkeleton.BoneId.FullBody_RightScapula, + OVRSkeleton.BoneId.FullBody_RightArmUpper) + }, + { + OVRSkeleton.BoneId.FullBody_RightArmUpper, new Tuple( + OVRSkeleton.BoneId.FullBody_RightArmUpper, + OVRSkeleton.BoneId.FullBody_RightArmLower) + }, + { + OVRSkeleton.BoneId.FullBody_RightArmLower, new Tuple( + OVRSkeleton.BoneId.FullBody_RightArmLower, + OVRSkeleton.BoneId.FullBody_RightHandWrist) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandWrist, new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandWrist, + OVRSkeleton.BoneId.FullBody_RightHandMiddleMetacarpal) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandPalm, new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandPalm, + OVRSkeleton.BoneId.FullBody_RightHandMiddleMetacarpal) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandWristTwist, new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandWristTwist, + OVRSkeleton.BoneId.FullBody_RightHandMiddleMetacarpal) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandThumbMetacarpal, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandThumbMetacarpal, + OVRSkeleton.BoneId.FullBody_RightHandThumbProximal) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandThumbProximal, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandThumbProximal, + OVRSkeleton.BoneId.FullBody_RightHandThumbDistal) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandThumbDistal, new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandThumbDistal, + OVRSkeleton.BoneId.FullBody_RightHandThumbTip) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandThumbTip, new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandThumbDistal, + OVRSkeleton.BoneId.FullBody_RightHandThumbTip) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandIndexMetacarpal, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandIndexMetacarpal, + OVRSkeleton.BoneId.FullBody_RightHandIndexProximal) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandIndexProximal, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandIndexProximal, + OVRSkeleton.BoneId.FullBody_RightHandIndexIntermediate) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandIndexIntermediate, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandIndexIntermediate, + OVRSkeleton.BoneId.FullBody_RightHandIndexDistal) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandIndexDistal, new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandIndexDistal, + OVRSkeleton.BoneId.FullBody_RightHandIndexTip) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandIndexTip, new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandIndexDistal, + OVRSkeleton.BoneId.FullBody_RightHandIndexTip) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandMiddleMetacarpal, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandMiddleMetacarpal, + OVRSkeleton.BoneId.FullBody_RightHandMiddleProximal) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandMiddleProximal, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandMiddleProximal, + OVRSkeleton.BoneId.FullBody_RightHandMiddleIntermediate) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandMiddleIntermediate, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandMiddleIntermediate, + OVRSkeleton.BoneId.FullBody_RightHandMiddleDistal) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandMiddleDistal, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandMiddleDistal, + OVRSkeleton.BoneId.FullBody_RightHandMiddleTip) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandMiddleTip, new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandMiddleDistal, + OVRSkeleton.BoneId.FullBody_RightHandMiddleTip) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandRingMetacarpal, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandRingMetacarpal, + OVRSkeleton.BoneId.FullBody_RightHandRingProximal) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandRingProximal, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandRingProximal, + OVRSkeleton.BoneId.FullBody_RightHandRingIntermediate) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandRingIntermediate, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandRingIntermediate, + OVRSkeleton.BoneId.FullBody_RightHandRingDistal) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandRingDistal, new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandRingDistal, + OVRSkeleton.BoneId.FullBody_RightHandRingTip) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandRingTip, new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandRingDistal, + OVRSkeleton.BoneId.FullBody_RightHandRingTip) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandLittleMetacarpal, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandLittleMetacarpal, + OVRSkeleton.BoneId.FullBody_RightHandLittleProximal) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandLittleProximal, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandLittleProximal, + OVRSkeleton.BoneId.FullBody_RightHandLittleIntermediate) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandLittleIntermediate, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandLittleIntermediate, + OVRSkeleton.BoneId.FullBody_RightHandLittleDistal) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandLittleDistal, + new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandLittleDistal, + OVRSkeleton.BoneId.FullBody_RightHandLittleTip) + }, + { + OVRSkeleton.BoneId.FullBody_RightHandLittleTip, new Tuple( + OVRSkeleton.BoneId.FullBody_RightHandLittleDistal, + OVRSkeleton.BoneId.FullBody_RightHandRingTip) + }, + { + OVRSkeleton.BoneId.FullBody_LeftUpperLeg, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftUpperLeg, + OVRSkeleton.BoneId.FullBody_LeftLowerLeg) + }, + { + OVRSkeleton.BoneId.FullBody_LeftLowerLeg, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftLowerLeg, + OVRSkeleton.BoneId.FullBody_LeftFootAnkle) + }, + { + OVRSkeleton.BoneId.FullBody_LeftFootAnkle, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftFootAnkle, + OVRSkeleton.BoneId.FullBody_LeftFootBall) + }, + { + OVRSkeleton.BoneId.FullBody_LeftFootBall, new Tuple( + OVRSkeleton.BoneId.FullBody_LeftFootAnkle, + OVRSkeleton.BoneId.FullBody_LeftFootBall) + }, + { + OVRSkeleton.BoneId.FullBody_RightUpperLeg, new Tuple( + OVRSkeleton.BoneId.FullBody_RightUpperLeg, + OVRSkeleton.BoneId.FullBody_RightLowerLeg) + }, + { + OVRSkeleton.BoneId.FullBody_RightLowerLeg, new Tuple( + OVRSkeleton.BoneId.FullBody_RightLowerLeg, + OVRSkeleton.BoneId.FullBody_RightFootAnkle) + }, + { + OVRSkeleton.BoneId.FullBody_RightFootAnkle, new Tuple( + OVRSkeleton.BoneId.FullBody_RightFootAnkle, + OVRSkeleton.BoneId.FullBody_RightFootBall) + }, + { + OVRSkeleton.BoneId.FullBody_RightFootBall, new Tuple( + OVRSkeleton.BoneId.FullBody_RightFootAnkle, + OVRSkeleton.BoneId.FullBody_RightFootBall) + }, + }; + } +} diff --git a/Runtime/Scripts/AnimationRigging/Legacy/FullBodyCustomMappings.cs.meta b/Runtime/Scripts/AnimationRigging/Legacy/FullBodyCustomMappings.cs.meta new file mode 100644 index 00000000..adf85427 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/Legacy/FullBodyCustomMappings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: df59d8c8b0e839f44ae6f421d6b43db5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/PlaybackAnimationConstraint.cs b/Runtime/Scripts/AnimationRigging/PlaybackAnimationConstraint.cs new file mode 100644 index 00000000..e336a9fe --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/PlaybackAnimationConstraint.cs @@ -0,0 +1,158 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using Oculus.Interaction; +using System; +using Oculus.Movement.Utils; +using UnityEngine; +using UnityEngine.Animations.Rigging; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// Interface for playback animation data. + /// + public interface IPlaybackAnimationData + { + /// + /// The animation playback type. + /// + public int PlaybackType { get; } + + /// + /// The capture animation constraint to source animation data from. + /// + public CaptureAnimationConstraint SourceConstraint { get; } + + /// + /// The avatar mask for masking the animation. + /// + public AvatarMask AnimationMask { get; } + + /// + /// The animation playback type int property. + /// + public string PlaybackTypeIntProperty { get; } + } + + /// + /// Data to handle animation playback. + /// + [Serializable] + public struct PlaybackAnimationData : IAnimationJobData, IPlaybackAnimationData + { + /// + /// The animation playback type. + /// + public enum AnimationPlaybackType + { + /// No animation is played back. + None = 0, + /// Animation is played back additively. + Additive = 1, + /// Animation is played back overriding any previous bone updates. + Override = 2 + } + + /// + int IPlaybackAnimationData.PlaybackType => _animationPlaybackType; + + /// + CaptureAnimationConstraint IPlaybackAnimationData.SourceConstraint => _captureAnimationConstraint; + + /// + AvatarMask IPlaybackAnimationData.AnimationMask => AvatarMaskComp; + + /// + string IPlaybackAnimationData.PlaybackTypeIntProperty => + ConstraintsUtils.ConstructConstraintDataPropertyName(nameof(_animationPlaybackType)); + + /// + /// Avatar mask instance accessor. + /// + public AvatarMask AvatarMaskComp + { + get => _avatarMaskInst; + set => _avatarMaskInst = value; + } + + /// + [SyncSceneToStream, SerializeField, IntAsEnum(typeof(AnimationPlaybackType))] + [Tooltip(PlaybackAnimationDataTooltips.AnimationPlaybackType)] + private int _animationPlaybackType; + + /// + [SerializeField] + [Tooltip(PlaybackAnimationDataTooltips.SourceConstraint)] + private CaptureAnimationConstraint _captureAnimationConstraint; + + /// + /// The optional avatar mask to mask out parts of the animation to be played. + /// + [SerializeField, Optional] + [Tooltip(PlaybackAnimationDataTooltips.AvatarMask)] + private AvatarMask _avatarMask; + + /// + /// Don't allow changing the original field directly, as that + /// has a side-effect of modifying the original mask object. + /// + private AvatarMask _avatarMaskInst; + + /// + /// Initializes mask instances based on what value is set + /// in the corresponding fields. + /// + public void CreateAvatarMaskInstances() + { + if (_avatarMask != null) + { + _avatarMaskInst = new AvatarMask(); + _avatarMaskInst.CopyOtherMaskBodyActiveValues( + _avatarMask); + } + else + { + _avatarMaskInst = null; + } + _avatarMask = _avatarMaskInst; + } + + bool IAnimationJobData.IsValid() + { + if (_captureAnimationConstraint == null) + { + return false; + } + return true; + } + + void IAnimationJobData.SetDefaultValues() + { + _captureAnimationConstraint = null; + _avatarMask = null; + _avatarMaskInst = null; + } + } + + /// + /// Playback animation constraint. Uses captured animation data to playback the current animator pose + /// additively or override. + /// + [DisallowMultipleComponent, AddComponentMenu("Movement Animation Rigging/Playback Animation Constraint")] + public class PlaybackAnimationConstraint : RigConstraint< + PlaybackAnimationJob, + PlaybackAnimationData, + PlaybackAnimationJobBinder>, + IOVRSkeletonConstraint + { + private void Awake() + { + data.CreateAvatarMaskInstances(); + } + + /// + public void RegenerateData() + { + } + } +} diff --git a/Runtime/Scripts/AnimationRigging/PlaybackAnimationConstraint.cs.meta b/Runtime/Scripts/AnimationRigging/PlaybackAnimationConstraint.cs.meta new file mode 100644 index 00000000..536ac575 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/PlaybackAnimationConstraint.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3ac6230484089474898c6890ca09d24e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/PlaybackAnimationJob.cs b/Runtime/Scripts/AnimationRigging/PlaybackAnimationJob.cs new file mode 100644 index 00000000..71903e46 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/PlaybackAnimationJob.cs @@ -0,0 +1,218 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using Unity.Collections; +using UnityEngine; +using UnityEngine.Animations; +using UnityEngine.Animations.Rigging; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// The playback animation job. Update the bones based on the transform deltas passed into + /// the animation job. + /// + [Unity.Burst.BurstCompile] + public struct PlaybackAnimationJob : IWeightedAnimationJob + { + /// + /// The animation playback type. + /// + public IntProperty PlaybackType; + + /// + /// The animator bones to be updated. + /// + public NativeArray Bones; + + /// + /// The position deltas to be applied to the bones. + /// + public NativeArray BonePositionDeltas; + + /// + /// The rotation deltas to be applied to the bones. + /// + public NativeArray BoneRotationDeltas; + + /// + /// The override bone positions. + /// + public NativeArray OverrideBonePositions; + + /// + /// The override bone rotations. + /// + public NativeArray OverrideBoneRotations; + + /// + /// The bones that should be skipped. + /// + public NativeArray BonesToSkip; + + /// + /// Job weight. + /// + public FloatProperty jobWeight { get; set; } + + /// + /// Defines what to do when processing the root motion. + /// + /// The animation stream to work on. + public void ProcessRootMotion(AnimationStream stream) { } + + /// + /// Defines what to do when processing the animation. + /// + /// The animation stream to work on. + public void ProcessAnimation(AnimationStream stream) + { + float weight = jobWeight.Get(stream); + if (weight > 0) + { + var playbackType = (PlaybackAnimationData.AnimationPlaybackType)PlaybackType.Get(stream); + for (int i = 0; i < Bones.Length; i++) + { + if (!Bones[i].IsValid(stream)) + { + continue; + } + + if (BonesToSkip[i]) + { + // Skip setting this bone. + continue; + } + + var targetBonePosition = Bones[i].GetLocalPosition(stream); + var targetBoneRotation = Bones[i].GetLocalRotation(stream); + if (playbackType == PlaybackAnimationData.AnimationPlaybackType.Additive) + { + targetBonePosition += Vector3.Lerp(Vector3.zero, BonePositionDeltas[i], weight); + targetBoneRotation *= Quaternion.Slerp(Quaternion.identity, BoneRotationDeltas[i], weight); + } + if (playbackType == PlaybackAnimationData.AnimationPlaybackType.Override) + { + if (i == (int)HumanBodyBones.Hips) + { + // Skip setting the hips bone. + // We want to keep the tracked position and rotation of the character + // when we apply the override animation to allow for blending between + // tracking and animation playback. + continue; + } + targetBonePosition = Vector3.Lerp(targetBonePosition, OverrideBonePositions[i], weight); + targetBoneRotation = Quaternion.Slerp(targetBoneRotation, OverrideBoneRotations[i], weight); + } + + Bones[i].SetLocalPosition(stream, targetBonePosition); + Bones[i].SetLocalRotation(stream, targetBoneRotation); + } + } + else + { + for (int i = 0; i < Bones.Length; i++) + { + if (!Bones[i].IsValid(stream)) + { + continue; + } + AnimationRuntimeUtils.PassThrough(stream, Bones[i]); + } + } + } + } + + /// + /// The playback animation job binder. + /// + /// Type to be used for the job. + public class PlaybackAnimationJobBinder : AnimationJobBinder + where T : struct, IAnimationJobData, IPlaybackAnimationData + { + /// + public override PlaybackAnimationJob Create(Animator animator, ref T data, Component component) + { + var job = new PlaybackAnimationJob(); + + job.Bones = new NativeArray((int)HumanBodyBones.LastBone, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.PlaybackType = + IntProperty.Bind(animator, component, data.PlaybackTypeIntProperty); + job.BonePositionDeltas = new NativeArray((int)HumanBodyBones.LastBone, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.BoneRotationDeltas = new NativeArray((int)HumanBodyBones.LastBone, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.OverrideBonePositions = new NativeArray((int)HumanBodyBones.LastBone, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.OverrideBoneRotations = new NativeArray((int)HumanBodyBones.LastBone, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + job.BonesToSkip = new NativeArray((int)HumanBodyBones.LastBone, Allocator.Persistent, + NativeArrayOptions.UninitializedMemory); + + for (var i = HumanBodyBones.Hips; i < HumanBodyBones.LastBone; i++) + { + var bone = animator.GetBoneTransform(i); + job.Bones[(int)i] = bone != null ? + ReadWriteTransformHandle.Bind(animator, bone) : + new ReadWriteTransformHandle(); + job.BonePositionDeltas[(int)i] = bone != null ? bone.localPosition : Vector3.zero; + job.BoneRotationDeltas[(int)i] = bone != null ? bone.localRotation : Quaternion.identity; + job.OverrideBonePositions[(int)i] = bone != null ? bone.localPosition : Vector3.zero; + job.OverrideBoneRotations[(int)i] = bone != null ? bone.localRotation : Quaternion.identity; + job.BonesToSkip[(int)i] = bone == null; + } + + return job; + } + + /// + public override void Update(PlaybackAnimationJob job, ref T data) + { + ICaptureAnimationData captureAnimationData = data.SourceConstraint.data; + for (var i = HumanBodyBones.Hips; i < HumanBodyBones.LastBone; i++) + { + var index = (int)i; + var playbackType = (PlaybackAnimationData.AnimationPlaybackType)data.PlaybackType; + + if (playbackType == PlaybackAnimationData.AnimationPlaybackType.None || + (data.AnimationMask != null && + !data.AnimationMask.GetHumanoidBodyPartActive(BoneMappingsExtension.HumanBoneToAvatarBodyPart[i]))) + { + job.BonePositionDeltas[index] = Vector3.zero; + job.BoneRotationDeltas[index] = Quaternion.identity; + job.OverrideBonePositions[index] = Vector3.zero; + job.OverrideBoneRotations[index] = Quaternion.identity; + job.BonesToSkip[index] = true; + continue; + } + + if (playbackType == PlaybackAnimationData.AnimationPlaybackType.Additive) + { + job.BonePositionDeltas[index] = data.SourceConstraint.data.GetBonePositionDelta(i); + job.BoneRotationDeltas[index] = data.SourceConstraint.data.GetBoneRotationDelta(i); + job.BonesToSkip[index] = false; + } + + if (playbackType == PlaybackAnimationData.AnimationPlaybackType.Override) + { + job.OverrideBonePositions[index] = captureAnimationData.CurrentPose[index].LocalPosition; + job.OverrideBoneRotations[index] = captureAnimationData.CurrentPose[index].LocalRotation; + job.BonesToSkip[index] = false; + } + } + + base.Update(job, ref data); + } + + /// + public override void Destroy(PlaybackAnimationJob job) + { + job.Bones.Dispose(); + job.BonesToSkip.Dispose(); + job.BonePositionDeltas.Dispose(); + job.BoneRotationDeltas.Dispose(); + job.OverrideBonePositions.Dispose(); + job.OverrideBoneRotations.Dispose(); + } + } +} diff --git a/Runtime/Scripts/AnimationRigging/PlaybackAnimationJob.cs.meta b/Runtime/Scripts/AnimationRigging/PlaybackAnimationJob.cs.meta new file mode 100644 index 00000000..323fc422 --- /dev/null +++ b/Runtime/Scripts/AnimationRigging/PlaybackAnimationJob.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 65e07604836ca0746905d3738e5efb95 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AnimationRigging/RetargetedBoneTargets.cs b/Runtime/Scripts/AnimationRigging/RetargetedBoneTargets.cs index 4ff68744..84fc3b50 100644 --- a/Runtime/Scripts/AnimationRigging/RetargetedBoneTargets.cs +++ b/Runtime/Scripts/AnimationRigging/RetargetedBoneTargets.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Linq; using UnityEngine; +using static OVRUnityHumanoidSkeletonRetargeter; namespace Oculus.Movement.AnimationRigging { @@ -44,7 +45,7 @@ public bool EnableSkeletonProcessing } /// - public string SkeletonProcessorLabel => "Retarget Hands"; + public string SkeletonProcessorLabel => "Retargeted Bone Targets"; /// /// The to give self to @@ -86,7 +87,7 @@ private void FindLocalProcessorAggregator() protected virtual void Awake() { var humanBodyBoneToOVRBoneId = - CustomMappings.BoneIdToHumanBodyBone.ToDictionary( + OVRHumanBodyBonesMappings.BoneIdToHumanBodyBone.ToDictionary( x => x.Value, x => x.Key); foreach (var retargetedBoneTarget in _retargetedBoneTargets) { @@ -109,9 +110,9 @@ private void Start() /// /// Update the bone targets with the retargeted bone transform data. - /// This should be used with . + /// This should be used with . /// - /// + /// public void ProcessSkeleton(OVRSkeleton skeleton) { IList bones = skeleton.Bones; diff --git a/Runtime/Scripts/AnimationRigging/RetargetingAnimationJob.cs b/Runtime/Scripts/AnimationRigging/RetargetingAnimationJob.cs index f8e90b97..72abd9fe 100644 --- a/Runtime/Scripts/AnimationRigging/RetargetingAnimationJob.cs +++ b/Runtime/Scripts/AnimationRigging/RetargetingAnimationJob.cs @@ -49,7 +49,19 @@ public struct RetargetingAnimationJob : IWeightedAnimationJob /// public void ProcessRootMotion(AnimationStream stream) { - // Not applicable to retargeting. For now. + float weight = jobWeight.Get(stream); + // Update hips for root motion. + if (weight > 0f) + { + UpdateTargetTransform(stream, 0, weight); + } + else + { + if (TargetTransforms.Length > 0) + { + AnimationRuntimeUtils.PassThrough(stream, TargetTransforms[0]); + } + } } /// @@ -60,30 +72,7 @@ public void ProcessAnimation(AnimationStream stream) { for (int i = 0; i < TargetTransforms.Length; ++i) { - var targetTransform = TargetTransforms[i]; - var sourceTransform = SourceTransforms[i]; - - if (ShouldUpdateRotation[i]) - { - var rotationOffset = RotationOffsets[i]; - var rotationAdjustment = RotationAdjustments[i]; - var originalRotation = sourceTransform.GetRotation(stream); - var finalRotation = originalRotation * rotationOffset * rotationAdjustment; - targetTransform.SetRotation(stream, - Quaternion.Slerp(targetTransform.GetRotation(stream), finalRotation, weight)); - } - - if (ShouldUpdatePosition[i]) - { - var originalPosition = targetTransform.GetPosition(stream); - var finalPosition = sourceTransform.GetPosition(stream); - targetTransform.SetPosition(stream, - Vector3.Lerp(originalPosition, finalPosition, weight)); - } - - // update handles with binding info - SourceTransforms[i] = sourceTransform; - TargetTransforms[i] = targetTransform; + UpdateTargetTransform(stream, i, weight); } } else @@ -94,6 +83,34 @@ public void ProcessAnimation(AnimationStream stream) } } } + + private void UpdateTargetTransform(AnimationStream stream, int i, float weight) + { + var targetTransform = TargetTransforms[i]; + var sourceTransform = SourceTransforms[i]; + + if (ShouldUpdateRotation[i]) + { + var rotationOffset = RotationOffsets[i]; + var rotationAdjustment = RotationAdjustments[i]; + var originalRotation = sourceTransform.GetRotation(stream); + var finalRotation = originalRotation * rotationOffset * rotationAdjustment; + targetTransform.SetRotation(stream, + Quaternion.Slerp(targetTransform.GetRotation(stream), finalRotation, weight)); + } + + if (ShouldUpdatePosition[i]) + { + var originalPosition = targetTransform.GetPosition(stream); + var finalPosition = sourceTransform.GetPosition(stream); + targetTransform.SetPosition(stream, + Vector3.Lerp(originalPosition, finalPosition, weight)); + } + + // update handles with binding info + SourceTransforms[i] = sourceTransform; + TargetTransforms[i] = targetTransform; + } } /// diff --git a/Runtime/Scripts/AnimationRigging/RetargetingLayer.cs b/Runtime/Scripts/AnimationRigging/RetargetingLayer.cs index b5041f5b..9a95fbc2 100644 --- a/Runtime/Scripts/AnimationRigging/RetargetingLayer.cs +++ b/Runtime/Scripts/AnimationRigging/RetargetingLayer.cs @@ -28,7 +28,7 @@ public partial class RetargetingLayer : OVRUnityHumanoidSkeletonRetargeter, /// /// Joint position adjustment to be applied to corrected positions. /// - [System.Serializable] + [Serializable] public class JointPositionAdjustment { /// @@ -68,7 +68,7 @@ public Vector3 GetPositionOffset() /// source (OVRBody) and target characters. To avoid gimbal lock, /// a series of rotations are permitted. /// - [System.Serializable] + [Serializable] public class JointRotationTweaks { /// @@ -83,45 +83,25 @@ public class JointRotationTweaks } /// - /// The array of joint position adjustments. - /// - public JointPositionAdjustment[] JointPositionAdjustments - { - get; - private set; - } - - /// - /// Allows correcting positions in LateUpdate for accuracy. + /// Triggered if proxy transforms were recreated. /// - [SerializeField] - [Tooltip(RetargetingLayerTooltips.CorrectPositionsLateUpdate)] - protected bool _correctPositionsLateUpdate = true; + public int ProxyChangeCount => _proxyTransformLogic.ProxyChangeCount; /// - /// Allow correcting rotations in LateUpdate. This can produce more - /// accurate hands, for instance. + /// Allows one to specify which positions to correct during late update. /// - [Tooltip(RetargetingLayerTooltips.LeftHandCorrectionWeightLateUpdate)] - [SerializeField, Range(0.0f, 1.0f)] - protected float _leftHandCorrectionWeightLateUpdate = 1.0f; - public float LeftHandCorrectionWeightLateUpdate + public AvatarMask CustomPositionsToCorrectLateUpdateMask { - get => _leftHandCorrectionWeightLateUpdate; - set => _leftHandCorrectionWeightLateUpdate = value; + get; set; } /// - /// Allow correcting rotations in LateUpdate. This can produce more - /// accurate hands, for instance. + /// The array of joint position adjustments. /// - [Tooltip(RetargetingLayerTooltips.RightHandCorrectionWeightLateUpdate)] - [SerializeField, Range(0.0f, 1.0f)] - protected float _rightHandCorrectionWeightLateUpdate = 1.0f; - public float RightHandCorrectionWeightLateUpdate + public JointPositionAdjustment[] JointPositionAdjustments { - get => _rightHandCorrectionWeightLateUpdate; - set => _rightHandCorrectionWeightLateUpdate = value; + get; + private set; } /// @@ -135,8 +115,8 @@ public float RightHandCorrectionWeightLateUpdate /// public bool ApplyAnimationConstraintsToCorrectedPositions { - get { return _applyAnimationConstraintsToCorrectedPositions; } - set { _applyAnimationConstraintsToCorrectedPositions = value; } + get => _applyAnimationConstraintsToCorrectedPositions; + set => _applyAnimationConstraintsToCorrectedPositions = value; } /// @@ -149,35 +129,50 @@ public bool ApplyAnimationConstraintsToCorrectedPositions /// [SerializeField] [Tooltip(RetargetingLayerTooltips.EnableTrackingByProxy)] - protected bool _enableTrackingByProxy = false; + protected bool _enableTrackingByProxy = true; /// public bool EnableTrackingByProxy { - get { return _enableTrackingByProxy; } - set { _enableTrackingByProxy = value; } + get => _enableTrackingByProxy; + set => _enableTrackingByProxy = value; } /// /// Triggers methods that can alter bone translations and rotations, before rendering and physics /// [SerializeField, Optional] - protected OVRSkeletonProcessor SkeletonPostProcessing; + protected OVRSkeletonProcessor _skeletonPostProcessing; + /// public OVRSkeletonProcessor SkeletonPostProcessingEv { - get { return SkeletonPostProcessing; } - set { SkeletonPostProcessing = value; } + get => _skeletonPostProcessing; + set => _skeletonPostProcessing = value; } /// /// Related retargeting constraint. /// [SerializeField] - [Tooltip(RetargetingLayerTooltips.RetargetingAnimationContraint)] + [Tooltip(RetargetingLayerTooltips.RetargetingAnimationConstraint)] protected RetargetingAnimationConstraint _retargetingAnimationConstraint; + /// public RetargetingAnimationConstraint RetargetingConstraint { - get { return _retargetingAnimationConstraint; } - set { _retargetingAnimationConstraint = value; } + get => _retargetingAnimationConstraint; + set => _retargetingAnimationConstraint = value; + } + + /// + /// List of retargeting processors, which run in late update after retargeting and animation rigging. + /// + [SerializeField] + [Tooltip(RetargetingLayerTooltips.RetargetingProcessors)] + protected List _retargetingProcessors = new(); + /// + public List RetargetingProcessors + { + get => _retargetingProcessors; + set => _retargetingProcessors = value; } /// @@ -186,64 +181,42 @@ public RetargetingAnimationConstraint RetargetingConstraint [SerializeField] [Tooltip(RetargetingLayerTooltips.JointRotationTweaks)] protected JointRotationTweaks[] _jointRotationTweaks; + /// public JointRotationTweaks[] JointRotationTweaksArray { get => _jointRotationTweaks; set => _jointRotationTweaks = value; } + /// /// Pre-compute these values each time the editor changes for the purposes /// of efficiency. /// private Dictionary _humanBoneToAccumulatedRotationTweaks = new Dictionary(); - private List _bonesToRemove = new List (); + private List _bonesToRemove = new List(); private Pose[] _defaultPoses; private IJointConstraint[] _jointConstraints; private ProxyTransformLogic _proxyTransformLogic = new ProxyTransformLogic(); - - /// - /// Triggered if proxy transforms were recreated. - /// - public int ProxyChangeCount => _proxyTransformLogic.ProxyChangeCount; - - /// - /// Allows one to specify which positions to correct during late update. - /// - public AvatarMask CustomPositionsToCorrectLateUpdateMask { get; set; } - private bool _isFocusedWhileInBuild = true; - /// - /// Gets number of transforms being retargeted currently. This can change during - /// initialization. - /// - /// Number of transforms with a valid correction quaternion. - public int GetNumberOfTransformsRetargeted() - { - int numTransforms = 0; - // return default case if this is called before initialization. - if (TargetSkeletonData == null || TargetSkeletonData.BodyToBoneData == null) - { - return numTransforms; - } - foreach (var boneData in TargetSkeletonData.BodyToBoneData.Values) - { - if (boneData.CorrectionQuaternion != null) - { - numTransforms++; - } - } - return numTransforms; - } - protected override void Awake() { base.Awake(); Assert.IsNotNull(_retargetingAnimationConstraint, "Please assign the retargeting constraint to RetargetingLayer."); + + for (int i = 0; i < _retargetingProcessors.Count; i++) + { + var retargetingProcessor = _retargetingProcessors[i]; + Assert.IsNotNull(retargetingProcessor, + "Please assign the retargeting processor to RetargetingLayer."); + var instance = Instantiate(_retargetingProcessors[i]); + instance.name = $"{name} {_retargetingProcessors[i].name}"; + _retargetingProcessors[i] = instance; + } } /// @@ -255,19 +228,23 @@ protected override void Start() try { base.Start(); + ConstructDefaultPoseInformation(); + ConstructBoneAdjustmentInformation(); + CacheJointConstraints(); + + ValidateHumanoid(); + + PrecomputeJointRotationTweaks(); + + foreach (var retargetingProcessor in _retargetingProcessors) + { + retargetingProcessor.SetupRetargetingProcessor(this); + } } catch (Exception e) { Debug.LogWarning(e); } - - ConstructDefaultPoseInformation(); - ConstructBoneAdjustmentInformation(); - CacheJointConstraints(); - - ValidateHumanoid(); - - PrecomputeJointRotationTweaks(); } private void ConstructDefaultPoseInformation() @@ -363,7 +340,7 @@ protected virtual void OnValidate() /// When the object's properties are modified, accumulate joint rotations /// and cache those values. This saves on computation when the tweaks field is used. /// - protected void PrecomputeJointRotationTweaks() + protected virtual void PrecomputeJointRotationTweaks() { #if UNITY_EDITOR if (!UnityEditor.EditorApplication.isPlaying) @@ -424,7 +401,7 @@ protected void PrecomputeJointRotationTweaks() _bonesToRemove.Add(bone); } } - foreach(var boneToRemove in _bonesToRemove) + foreach (var boneToRemove in _bonesToRemove) { _humanBoneToAccumulatedRotationTweaks.Remove(boneToRemove); } @@ -434,7 +411,7 @@ protected void PrecomputeJointRotationTweaks() protected override void Update() { UpdateSkeleton(); - SkeletonPostProcessing?.Invoke(this); + _skeletonPostProcessing?.Invoke(this); RecomputeSkeletalOffsetsIfNecessary(); if (_enableTrackingByProxy) @@ -444,8 +421,8 @@ protected override void Update() } /// - /// Allows fixing joints to T-pose. The avatar does not allow - /// precise finger positions even with translate dof checked. + /// Allows fixing joints via the retargeting processors. The avatar does not allow + /// precise finger positions even with translate DoF checked. /// protected virtual void LateUpdate() { @@ -453,164 +430,27 @@ protected virtual void LateUpdate() { return; } - CorrectBones(); - // apply constraints on character after fixing positions. - RunConstraints(); - } - private void CorrectBones() - { - bool handCorrectionTurnedOn = (_leftHandCorrectionWeightLateUpdate > Mathf.Epsilon) || - (_rightHandCorrectionWeightLateUpdate > Mathf.Epsilon); - if (!_correctPositionsLateUpdate && - !handCorrectionTurnedOn) + foreach (var retargetingProcessor in _retargetingProcessors) { - return; + retargetingProcessor.PrepareRetargetingProcessor(this, Bones); } - if (CustomBoneIdToHumanBodyBone == null || Bones == null) - { - return; - } - for (var i = 0; i < Bones.Count; i++) - { - if (Bones[i] == null) - { - continue; - } - if (!CustomBoneIdToHumanBodyBone.TryGetValue(Bones[i].Id, out var humanBodyBone)) - { - continue; - } - - if (!TargetSkeletonData.BodyToBoneData.TryGetValue(humanBodyBone, out var targetData)) - { - continue; - } - - // Skip if we cannot map the joint at all. - if (!targetData.CorrectionQuaternion.HasValue) - { - continue; - } - - var bodyPart = CustomMappings.HumanBoneToAvatarBodyPart[humanBodyBone]; - var targetJoint = targetData.OriginalJoint; - - // Make sure body part passes mask, and bone's position should be updated. - if (CustomPositionsToCorrectLateUpdateMask != null && - !CustomPositionsToCorrectLateUpdateMask.GetHumanoidBodyPartActive(bodyPart)) - { - continue; - } - var adjustment = FindAdjustment(humanBodyBone); - if (!ShouldUpdatePositionOfBone(humanBodyBone)) - { - continue; - } - var currentTargetPosition = targetJoint.position; - // Make sure the joint position is valid before fixing it. - if (!RiggingUtilities.IsFiniteVector3(currentTargetPosition)) - { - continue; - } - - var positionOffset = _applyAnimationConstraintsToCorrectedPositions ? - JointPositionAdjustments[(int)humanBodyBone].GetPositionOffset() : Vector3.zero; - var currentOVRBonePosition = Bones[i].Transform.position; - var errorRelativeToBodyTracking = (currentOVRBonePosition - currentTargetPosition).sqrMagnitude; - - // If generally correcting positions only and applying hand correction, - // skip positional fix a) if the error relative to body tracking is low, - // b) and the position influence due to IK fixes is small. - if ((_correctPositionsLateUpdate && !handCorrectionTurnedOn) && - errorRelativeToBodyTracking < Mathf.Epsilon && - positionOffset.sqrMagnitude < Mathf.Epsilon) - { - continue; - } - - var bodySectionOfJoint = OVRHumanBodyBonesMappings.BoneToBodySection[humanBodyBone]; - bool isLeftHandFingersOrWrist = - bodySectionOfJoint == OVRHumanBodyBonesMappings.BodySection.LeftHand || - humanBodyBone == HumanBodyBones.LeftHand; - bool isRightHandFingersOrWrist = - bodySectionOfJoint == OVRHumanBodyBonesMappings.BodySection.RightHand || - humanBodyBone == HumanBodyBones.RightHand; - bool isHandJoint = isLeftHandFingersOrWrist || isRightHandFingersOrWrist; - - // Pick the correct hand correction weight based on handedness. - float handWeight = isLeftHandFingersOrWrist ? - _leftHandCorrectionWeightLateUpdate : - _rightHandCorrectionWeightLateUpdate; - // Exclude any position offsets from IK if correcting hand joints to - // what body tracking indicates they are. - if (isHandJoint) - { - positionOffset = Vector3.Lerp(positionOffset, Vector3.zero, - handWeight); - } - - float rtWeight = _retargetingAnimationConstraint.weight; - if (adjustment == null) - { - if (handCorrectionTurnedOn && isHandJoint) - { - targetJoint.rotation = - Quaternion.Slerp(targetJoint.rotation, - Bones[i].Transform.rotation * - targetData.CorrectionQuaternion.Value * GetRotationTweak(humanBodyBone), - handWeight); - } - if (_correctPositionsLateUpdate) - { - targetJoint.position = - Vector3.Lerp(currentTargetPosition, - currentOVRBonePosition + positionOffset, rtWeight); - } - } - else - { - if (handCorrectionTurnedOn && isHandJoint) - { - if (!adjustment.DisableRotationTransform) - { - targetJoint.rotation = - Quaternion.Slerp(targetJoint.rotation, - Bones[i].Transform.rotation * - targetData.CorrectionQuaternion.Value * GetRotationTweak(humanBodyBone), - handWeight); - } - - targetJoint.rotation *= adjustment.RotationChange; - } - if (!adjustment.DisablePositionTransform && - _correctPositionsLateUpdate) - { - targetJoint.position = - Vector3.Lerp(currentTargetPosition, - currentOVRBonePosition + positionOffset, rtWeight); - } - } - } - } - - protected Quaternion GetRotationTweak(HumanBodyBones humanBody) - { - Quaternion rotation; - - if (!_humanBoneToAccumulatedRotationTweaks.TryGetValue(humanBody, out rotation)) + foreach (var retargetingProcessor in _retargetingProcessors) { - rotation = Quaternion.identity; + retargetingProcessor.ProcessRetargetingLayer(this, Bones); } - return rotation; + // Apply constraints on character after fixing positions. + RunConstraints(); } protected virtual bool ShouldUpdatePositionOfBone(HumanBodyBones humanBodyBone) { - var bodySectionOfJoint = OVRHumanBodyBonesMappings.BoneToBodySection[humanBodyBone]; - return IsBodySectionInArray(bodySectionOfJoint, BodySectionToPosition); + var bodySectionOfJoint = + OVRHumanBodyBonesMappings.BoneToBodySection[humanBodyBone]; + return IsBodySectionInArray(bodySectionOfJoint, + _skeletonType == SkeletonType.FullBody ? FullBodySectionToPosition : BodySectionToPosition); } private void RunConstraints() @@ -734,7 +574,7 @@ public void UpdateAdjustments(Quaternion[] rotationOffsets, if (avatarMask != null) { jointFailsMask = !avatarMask.GetHumanoidBodyPartActive( - CustomMappings.HumanBoneToAvatarBodyPart[targetHumanBodyBone]); + BoneMappingsExtension.HumanBoneToAvatarBodyPart[targetHumanBodyBone]); } if (adjustment == null) @@ -808,16 +648,145 @@ private void SetUpCustomAdjustment(HumanBodyBones humanBodyBone, Quaternion[] ro return (targetData, humanBodyBone); } + #region Public API + /// public void AddProcessor(IOVRSkeletonProcessor processor) { - SkeletonPostProcessing += processor.ProcessSkeleton; + _skeletonPostProcessing += processor.ProcessSkeleton; } /// public void RemoveProcessor(IOVRSkeletonProcessor processor) { - SkeletonPostProcessing -= processor.ProcessSkeleton; + _skeletonPostProcessing -= processor.ProcessSkeleton; } + + /// + /// Add the specified retargeting processor. + /// + /// The processor to be added. + public void AddRetargetingProcessor(RetargetingProcessor processor) + { + _retargetingProcessors.Add(processor); + } + + /// + /// Gets number of transforms being retargeted currently. This can change during + /// initialization. + /// + /// Number of transforms with a valid correction quaternion. + public int GetNumberOfTransformsRetargeted() + { + int numTransforms = 0; + // return default case if this is called before initialization. + if (TargetSkeletonData == null || TargetSkeletonData.BodyToBoneData == null) + { + return numTransforms; + } + foreach (var boneData in TargetSkeletonData.BodyToBoneData.Values) + { + if (boneData.CorrectionQuaternion != null) + { + numTransforms++; + } + } + return numTransforms; + } + + /// + /// Returns the custom bone id to human body bone pairing, if it exists. + /// + /// The bone id to check for. + /// The human body bone for a custom bone id. Returns null if it doesn't exist. + public HumanBodyBones? GetCustomBoneIdToHumanBodyBone(BoneId boneId) + { + if (CustomBoneIdToHumanBodyBone == null) + { + return null; + } + if (!CustomBoneIdToHumanBodyBone.TryGetValue(boneId, out var humanBodyBone)) + { + return null; + } + return humanBodyBone; + } + + /// + /// Returns the correction quaternion for a human body bone, if it exists. + /// + /// The human body bone to check for. + /// The correction quaternion for a human body bone. Returns null if it doesn't exist. + public Quaternion? GetCorrectionQuaternion(HumanBodyBones humanBodyBone) + { + if (!TargetSkeletonData.BodyToBoneData.TryGetValue(humanBodyBone, out var targetData)) + { + return null; + } + if (!targetData.CorrectionQuaternion.HasValue) + { + return null; + } + return targetData.CorrectionQuaternion.Value; + } + + /// + /// Returns the original joint for a human body bone. + /// + /// The human body bone to check for. + /// The original joint for a human body bone. + public Transform GetOriginalJoint(HumanBodyBones humanBodyBone) + { + if (!TargetSkeletonData.BodyToBoneData.TryGetValue(humanBodyBone, out var targetData)) + { + return null; + } + return targetData.OriginalJoint; + } + + /// + /// Returns the animator used for retargeting. + /// + /// The animator used for retargeting. + public Animator GetAnimatorTargetSkeleton() + { + return AnimatorTargetSkeleton; + } + + /// + /// Returns the rotation tweak for a human body bone. + /// + /// The human body bone to check for. + /// The rotation tweak for a human body bone. + public Quaternion GetRotationTweak(HumanBodyBones humanBodyBone) + { + if (!_humanBoneToAccumulatedRotationTweaks.TryGetValue(humanBodyBone, out var rotation)) + { + rotation = Quaternion.identity; + } + return rotation; + } + + /// + /// Returns the joint adjustment for a human body bone. + /// + /// The human body bone to check for. + /// The joint adjustment for a human body bone. + public JointAdjustment GetFindAdjustment(HumanBodyBones humanBodyBone) + { + return FindAdjustment(humanBodyBone); + } + + /// + /// Returns true if the position of a human body bone should be updated. + /// + /// The human body bone to check for. + /// True if the position of a human body should be updated. + public bool GetShouldUpdatePositionOfBone(HumanBodyBones humanBodyBone) + { + return ShouldUpdatePositionOfBone(humanBodyBone); + } + + #endregion } } diff --git a/Runtime/Scripts/AnimationRigging/RetargetingLayer.cs.meta b/Runtime/Scripts/AnimationRigging/RetargetingLayer.cs.meta index 87d3b647..5c59b87a 100644 --- a/Runtime/Scripts/AnimationRigging/RetargetingLayer.cs.meta +++ b/Runtime/Scripts/AnimationRigging/RetargetingLayer.cs.meta @@ -4,7 +4,7 @@ MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] - executionOrder: -20 + executionOrder: 220 icon: {instanceID: 0} userData: assetBundleName: diff --git a/Runtime/Scripts/AnimationRigging/RiggingUtilities.cs b/Runtime/Scripts/AnimationRigging/RiggingUtilities.cs index ae0176d1..aa4c3f72 100644 --- a/Runtime/Scripts/AnimationRigging/RiggingUtilities.cs +++ b/Runtime/Scripts/AnimationRigging/RiggingUtilities.cs @@ -2,6 +2,7 @@ using System; using UnityEngine; +using static OVRUnityHumanoidSkeletonRetargeter; namespace Oculus.Movement.AnimationRigging { @@ -61,16 +62,25 @@ public static Transform FindBoneTransformFromSkeleton( /// /// to query. /// of transform to find. + /// If is full body bone or not. /// public static Transform FindBoneTransformAnimator( Animator animator, - OVRSkeleton.BoneId boneId) + OVRSkeleton.BoneId boneId, + bool isFullBody) { - if (!CustomMappings.BoneIdToHumanBodyBone.ContainsKey(boneId)) + if ((isFullBody && !OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone.ContainsKey(boneId)) || + (!isFullBody && !OVRHumanBodyBonesMappings.BoneIdToHumanBodyBone.ContainsKey(boneId)) + ) { return null; } - return animator.GetBoneTransform(CustomMappings.BoneIdToHumanBodyBone[boneId]); + + if (isFullBody) + { + return animator.GetBoneTransform(OVRHumanBodyBonesMappings.FullBodyBoneIdToHumanBodyBone[boneId]); + } + return animator.GetBoneTransform(OVRHumanBodyBonesMappings.BoneIdToHumanBodyBone[boneId]); } /// @@ -83,6 +93,34 @@ public static bool IsFiniteVector3(Vector3 v) return float.IsFinite(v.x) && float.IsFinite(v.y) && float.IsFinite(v.z) && !float.IsNaN(v.x) && !float.IsNaN(v.y) && !float.IsNaN(v.z); } + + /// + /// Returns the result of diving a Vector3 by another Vector3. + /// + /// The Vector3 dividend. + /// The Vector3 divisor. + /// The divided Vector3. + public static Vector3 DivideVector3(Vector3 dividend, Vector3 divisor) + { + Vector3 targetScale = Vector3.one; + if (Vector3IsNonZero(divisor)) + { + targetScale = new Vector3( + dividend.x / divisor.x, dividend.y / divisor.y, dividend.z / divisor.z); + } + + return targetScale; + } + + /// + /// Returns true if this Vector3 contains no zero values. + /// + /// The Vector3 to test + /// True if this Vector3 contains no zero values. + public static bool Vector3IsNonZero(Vector3 v) + { + return v.x != 0.0f && v.y != 0.0f && v.z != 0.0f; + } } public static class AvatarMaskExtensionMethods diff --git a/Runtime/Scripts/AnimationRigging/TwistDistributionConstraint.cs b/Runtime/Scripts/AnimationRigging/TwistDistributionConstraint.cs index 9abcc767..f2efcf80 100644 --- a/Runtime/Scripts/AnimationRigging/TwistDistributionConstraint.cs +++ b/Runtime/Scripts/AnimationRigging/TwistDistributionConstraint.cs @@ -346,7 +346,7 @@ void IAnimationJobData.SetDefaultValues() /// begin with, so that it can compute metadata before the /// character can begin animating. /// - [DisallowMultipleComponent] + [DisallowMultipleComponent, AddComponentMenu("Movement Animation Rigging/Twist Distribution Constraint")] public class TwistDistributionConstraint : RigConstraint< TwistDistributionJob, TwistDistributionData, diff --git a/Runtime/Scripts/Effects/ExpressionDetection/MacroFacialExpressionDetector.cs b/Runtime/Scripts/Effects/ExpressionDetection/MacroFacialExpressionDetector.cs index 39833a4d..b978e533 100644 --- a/Runtime/Scripts/Effects/ExpressionDetection/MacroFacialExpressionDetector.cs +++ b/Runtime/Scripts/Effects/ExpressionDetection/MacroFacialExpressionDetector.cs @@ -19,13 +19,13 @@ public class MacroFacialExpressionDetector : MonoBehaviour public enum MacroExpressionType { /// - /// Smiling expression. + /// Smile /// - Happy = 0, + Smile = 0, /// - /// Angry or frowning expression. + /// Frowning /// - Angry = 1 + Frown = 1 } /// diff --git a/Runtime/Scripts/Effects/ExpressionDetection/SmileEffect.cs b/Runtime/Scripts/Effects/ExpressionDetection/SmileEffect.cs index ef394b6a..62f54c4a 100644 --- a/Runtime/Scripts/Effects/ExpressionDetection/SmileEffect.cs +++ b/Runtime/Scripts/Effects/ExpressionDetection/SmileEffect.cs @@ -126,7 +126,7 @@ private void MacroExpressionStateChange( { return; } - if (eventArgs.Expression != MacroExpressionType.Happy) + if (eventArgs.Expression != MacroExpressionType.Smile) { return; } @@ -152,12 +152,12 @@ private void Update() _smileTime = -1.0f; } - if (!_facialExpressionDetector.MacroExpressionTypeToStrength.ContainsKey(MacroExpressionType.Happy)) + if (!_facialExpressionDetector.MacroExpressionTypeToStrength.ContainsKey(MacroExpressionType.Smile)) { return; } - var currentStateInfo =_animator.GetCurrentAnimatorStateInfo(0); + var currentStateInfo = _animator.GetCurrentAnimatorStateInfo(0); bool isSmiling = currentStateInfo.IsName(_smileStateName); bool isSmileReversing = currentStateInfo.IsName(_reverseSmileStateName); if (isSmiling || isSmileReversing) @@ -168,7 +168,7 @@ private void Update() // lerp value obtained while smiling. float currentLerpValue = isSmiling ? currentStateInfo.normalizedTime : - _lastLerpValueSmiling*(1.0f - currentStateInfo.normalizedTime); + _lastLerpValueSmiling * (1.0f - currentStateInfo.normalizedTime); if (isSmiling) { _lastLerpValueSmiling = currentLerpValue; diff --git a/Runtime/Scripts/Effects/Legacy/TwistDistribution.cs b/Runtime/Scripts/Effects/Legacy/TwistDistribution.cs index a144356b..5ca55f48 100644 --- a/Runtime/Scripts/Effects/Legacy/TwistDistribution.cs +++ b/Runtime/Scripts/Effects/Legacy/TwistDistribution.cs @@ -1,6 +1,7 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. using Oculus.Interaction; +using Oculus.Movement.AnimationRigging; using UnityEngine; using UnityEngine.Assertions; @@ -144,6 +145,15 @@ public void ApplyTwist() return; } + if (!RiggingUtilities.IsFiniteVector3(_segmentStart.position)) + { + return; + } + if (!RiggingUtilities.IsFiniteVector3(_segmentEnd.position)) + { + return; + } + SpaceJoints(); TwistJoints(); } diff --git a/Runtime/Scripts/Effects/NormalRecalculation/RecalculateNormals.cs b/Runtime/Scripts/Effects/NormalRecalculation/RecalculateNormals.cs index 64209cb6..e9421ee9 100644 --- a/Runtime/Scripts/Effects/NormalRecalculation/RecalculateNormals.cs +++ b/Runtime/Scripts/Effects/NormalRecalculation/RecalculateNormals.cs @@ -22,7 +22,7 @@ public class RecalculateNormals : MonoBehaviour /// The layer of the duplicate mesh with recalculate normals, should /// be on a visible layer. /// - public string DuplicateLayerName { get => _duplicateLayerName; set => _duplicateLayerName = value; } + public int DuplicateLayer { get => _duplicateLayer; set => _duplicateLayer = value; } /// /// Skinned mesh renderer requiring normal recalc. @@ -61,8 +61,8 @@ public class RecalculateNormals : MonoBehaviour /// be on a visible layer. /// [SerializeField] - [Tooltip(RecalculateNormalsTooltips.DuplicateLayerName)] - protected string _duplicateLayerName = "Character"; + [Tooltip(RecalculateNormalsTooltips.DuplicateLayer)] + protected int _duplicateLayer = 11; /// /// The layer of original mesh with invalid normals, should be @@ -121,7 +121,7 @@ private void Awake() Assert.IsNotNull(_skinnedMeshRenderer); Assert.IsTrue(_recalculateMaterialIndices.Length > 0); Assert.IsTrue(LayerMask.NameToLayer(_hiddenMeshLayerName) > -1); - Assert.IsTrue(LayerMask.NameToLayer(_duplicateLayerName) > -1); + Assert.IsTrue(LayerMask.LayerToName(_duplicateLayer) != null); _instantiatedMaterials = _skinnedMeshRenderer.materials; foreach (var recalculateMaterialIndex in _recalculateMaterialIndices) @@ -248,18 +248,17 @@ private void ApplyLayerMask() private void ToggleVisibility(bool showNormalRecalculation) { int hiddenMeshLayer = LayerMask.NameToLayer(_hiddenMeshLayerName); - int visibleMeshLayer = LayerMask.NameToLayer(_duplicateLayerName); if (showNormalRecalculation) { _skinnedMeshRenderer.gameObject.layer = hiddenMeshLayer; if (_recalcObject) { - _recalcObject.gameObject.layer = visibleMeshLayer; + _recalcObject.gameObject.layer = _duplicateLayer; } } else { - _skinnedMeshRenderer.gameObject.layer = visibleMeshLayer; + _skinnedMeshRenderer.gameObject.layer = _duplicateLayer; if (_recalcObject) { _recalcObject.gameObject.layer = hiddenMeshLayer; @@ -282,7 +281,7 @@ private int GetHiddenMeshMask() private (MeshFilter, MeshRenderer) GetDuplicateMeshForNormalRecalculation() { _recalcObject = new GameObject(gameObject.name + "_NormalRecalc"); - _recalcObject.layer = LayerMask.NameToLayer(_duplicateLayerName); + _recalcObject.layer = _duplicateLayer; var meshFilterRecalc = _recalcObject.AddComponent(); var meshRendererRecalc = _recalcObject.AddComponent(); var recalcTransform = _recalcObject.transform; diff --git a/Runtime/Scripts/Locomotion.meta b/Runtime/Scripts/Locomotion.meta new file mode 100644 index 00000000..b0e00482 --- /dev/null +++ b/Runtime/Scripts/Locomotion.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d3071ac309b1d9745a52f783b36743ad +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Locomotion/ActivatableStateSet.cs b/Runtime/Scripts/Locomotion/ActivatableStateSet.cs new file mode 100644 index 00000000..55457eba --- /dev/null +++ b/Runtime/Scripts/Locomotion/ActivatableStateSet.cs @@ -0,0 +1,165 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEngine; +using UnityEngine.Events; + +namespace Oculus.Movement.Locomotion +{ + /// + /// A state machine similar to , except that this state machine + /// also keeps track of an activation (and deactivation) per state. + /// + public class ActivatableStateSet : MonoBehaviour + { + /// + /// Callback type that triggers with timer updates + /// + [System.Serializable] + public class UnityEvent_float : UnityEvent { } + + /// + /// A set of callbacks associated with each state + /// + [System.Serializable] + public class Set + { + public string Name; + public UnityEvent Initialize; + public UnityEvent Release; + public UnityEvent Activate; + public UnityEvent Deactivate; + } + + /// + /// Set of activatable states + /// + [Tooltip(ActivatableStateSetTooltips.Set)] + [SerializeField] + private Set[] _set = new Set[0]; + + /// + /// Index of current activatable state + /// + [Tooltip(ActivatableStateSetTooltips.Index)] + [SerializeField] + private int _index = 0; + + /// + /// Minimum number of seconds a state can count as active. Exit time. + /// + [Tooltip(ActivatableStateSetTooltips.MinimumActivationDuration)] + [SerializeField] + private float _minimumActivateDuration = 1; + + /// + /// Callback to notify as the activation timeout timer advances + /// + [Tooltip(ActivatableStateSetTooltips.OnTimerChange)] + [SerializeField] + private UnityEvent_float _onTimerChange; + + private bool _deactivateAfterDuration = true; + + private float _activeTimer; + + /// + public int Index + { + get => _index; + set + { + if (_index >= 0 && _index < _set.Length) + { + Release(); + } + _index = value; + Initialize(); + } + } + + private void OnEnable() + { + Initialize(); + } + + private void OnDisable() + { + Release(); + } + + private void Update() + { + if (_deactivateAfterDuration && _activeTimer >= 0) + { + _activeTimer -= Time.deltaTime; + if (_activeTimer <= 0) + { + Deactivate(); + _activeTimer = 0; + } + NotifyTimerListener(); + } + } + + private void NotifyTimerListener() + { + float progress = _deactivateAfterDuration && _activeTimer > 0 + ? 1f - (_activeTimer / _minimumActivateDuration) : 0; + _onTimerChange.Invoke(progress); + } + + private void Initialize() + { + _set[_index].Initialize.Invoke(); + } + + private void Release() + { + _set[_index].Release.Invoke(); + } + + /// + /// Activate the current state + /// + public void Activate() + { + _set[_index].Activate.Invoke(); + RefreshActiveDuration(); + } + + /// + /// Deactivate the current state + /// + public void Deactivate() + { + _set[_index].Deactivate.Invoke(); + } + + /// + /// Activate the current state without advancing the timeout timer + /// + public void ActivatePersistent() + { + _deactivateAfterDuration = false; + Activate(); + } + + /// + /// Ensure the timeout timer starts and deactivates the state when it reaches its duration + /// + public void DeactivateAfterDuration() + { + _deactivateAfterDuration = true; + RefreshActiveDuration(); + } + + /// + /// Restart the timeout timer + /// + public void RefreshActiveDuration() + { + _activeTimer = _minimumActivateDuration; + NotifyTimerListener(); + } + } +} diff --git a/Runtime/Scripts/Locomotion/ActivatableStateSet.cs.meta b/Runtime/Scripts/Locomotion/ActivatableStateSet.cs.meta new file mode 100644 index 00000000..4aef0e71 --- /dev/null +++ b/Runtime/Scripts/Locomotion/ActivatableStateSet.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1136cfcd2e9e3ed43ab0f850276a99cb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Locomotion/AnimationConstraintBlender.cs b/Runtime/Scripts/Locomotion/AnimationConstraintBlender.cs new file mode 100644 index 00000000..3399b329 --- /dev/null +++ b/Runtime/Scripts/Locomotion/AnimationConstraintBlender.cs @@ -0,0 +1,216 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using Oculus.Interaction; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Animations.Rigging; + +namespace Oculus.Movement.Locomotion +{ + /// + /// Blends animation playback on an , turning animation on + /// during an activity, and off after the activity stops for a given timeout period. + /// + public class AnimationConstraintBlender : MonoBehaviour + { + /// + /// Seconds of inactivity till entire animator follows body tracking again + /// + [Tooltip(AnimationConstraintBlenderTooltips.ActivityExitTime)] + [SerializeField] + protected float _activityExitTime = 1; + + /// + /// The body being animated + /// + [Tooltip(AnimationConstraintBlenderTooltips.Animator)] + [SerializeField] + protected Animator _animator; + + /// + /// Constraints to deactivate when animation is active. + /// + [Tooltip(AnimationConstraintBlenderTooltips.ConstraintsToDeactivate)] + [Interface(typeof(IRigConstraint)), SerializeField] + protected MonoBehaviour[] _constraintsToDeactivate; + + /// + /// Constraints to blend when animation is active. + /// + [Tooltip(AnimationConstraintBlenderTooltips.ConstraintsToBlend)] + [Interface(typeof(IRigConstraint)), SerializeField] + protected MonoBehaviour[] _constraintsToBlend; + + /// + /// Constraints that need to be turned off only while animating the activity + /// + private List _rigConstraintsToDeactivate; + + /// + /// Constraints that need the weight to be blended while animating the activity + /// + private List _rigConstraintsToBlend; + + /// + /// when the last request for masking ended + /// + private float _timeOfLastActivity; + + /// + /// when to actually stop masking + /// + private float _activityTimeout; + + /// + /// True if any sources requested the animation to activate + /// + private bool _shouldApplyAnim; + + /// + /// True if the animation is being applied + /// + private bool _isApplyingAnim; + + /// + /// True if the animation is being applied + /// + public bool IsApplyingAnimation + { + get => _isApplyingAnim; + set + { + if (value != _isApplyingAnim) + { + if (value) + { + StartApplyingAnim(); + } + else + { + FinishApplyingAnim(); + } + } + _isApplyingAnim = value; + } + } + + /// + /// If the mask should apply to the animator. Instead of setting this directly, use + /// and + /// + public bool ShouldApplyAnim + { + get => _shouldApplyAnim; + set + { + if (!value && _shouldApplyAnim) + { + _timeOfLastActivity = Time.time; + _activityTimeout = _timeOfLastActivity + _activityExitTime; + } + else if (value) + { + IsApplyingAnimation = true; + } + _shouldApplyAnim = value; + } + } + + /// + /// The animator to apply the animator mask to + /// + public Animator Animator + { + get => _animator; + set => SetAnimator(value); + } + +#if UNITY_EDITOR + private void Reset() + { + Animator = GetComponentInParent(); + } +#endif + + /// + protected void Start() + { + SetAnimator(Animator); + } + + /// + protected void Update() + { + if (!IsApplyingAnimation || ShouldApplyAnim) + { + return; + } + + foreach (var rigConstraint in _rigConstraintsToBlend) + { + rigConstraint.weight = Mathf.Clamp01((_activityTimeout - Time.time) / _activityExitTime); + } + if (Time.time >= _activityTimeout) + { + IsApplyingAnimation = false; + } + } + + /// + /// Used to identify that the animation should be applied to the animator + /// + public void StartApplyingAnimFor() + { + ShouldApplyAnim = true; + } + + /// + /// Used to identify that the animation is finished being applied to the animator + /// + public void FinishApplyingAnimFor() + { + ShouldApplyAnim = false; + } + + /// + /// Sets the animator, and recalculates internal variables, like related rig constraints. + /// + /// + private void SetAnimator(Animator value) + { + _animator = value; + FindRigConstraints(_animator); + } + + private void FindRigConstraints(Animator animator) + { + if (animator == null) + { + return; + } + + _rigConstraintsToDeactivate = new List(); + foreach (var constraint in _constraintsToDeactivate) + { + _rigConstraintsToDeactivate.Add(constraint as IRigConstraint); + } + + _rigConstraintsToBlend = new List(); + foreach (var constraint in _constraintsToBlend) + { + _rigConstraintsToBlend.Add(constraint as IRigConstraint); + } + } + + private void StartApplyingAnim() + { + _rigConstraintsToDeactivate.ForEach(c => c.weight = 0); + _rigConstraintsToBlend.ForEach(c => c.weight = 1); + } + + private void FinishApplyingAnim() + { + _rigConstraintsToDeactivate.ForEach(c => c.weight = 1); + } + } +} diff --git a/Runtime/Scripts/Locomotion/AnimationConstraintBlender.cs.meta b/Runtime/Scripts/Locomotion/AnimationConstraintBlender.cs.meta new file mode 100644 index 00000000..eb09abc0 --- /dev/null +++ b/Runtime/Scripts/Locomotion/AnimationConstraintBlender.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4ff1502fa0de15543a539011dffe8033 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Locomotion/AnimatorHooks.cs b/Runtime/Scripts/Locomotion/AnimatorHooks.cs new file mode 100644 index 00000000..d2307a63 --- /dev/null +++ b/Runtime/Scripts/Locomotion/AnimatorHooks.cs @@ -0,0 +1,402 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using System.Collections.Generic; +using UnityEngine; + +namespace Oculus.Movement.Locomotion +{ + /// + /// This class interfaces with animators using specifically architected + /// s. Multiple simultaneous + /// animators are controleld in parallel, for easy swapping, or layering. + /// + /// Variables + /// + /// * Horizontal (float) + /// * Vertical (float) + /// * Grounded (bool) + /// + /// States + /// + /// * Grounded + /// * NotGrounded + /// + /// + public class AnimatorHooks : MonoBehaviour + { + /// + /// Variables expected to exist in the Animator Controller + /// + public enum Variables + { + Horizontal, + Vertical, + Grounded + } + + /// + /// States expected to exist in the Animator Controller + /// + public enum States + { + Grounded, + NotGrounded + } + + /// + /// Converts string values into Hash IDs for fast lookup. + /// + private static int[] _variableIdLookup; + + /// + /// Converts string values into Hash IDs for fast lookup. + /// + private static int[] _stateIdLookup; + + /// + /// String array of the enum. + /// + private static string[] _variableNames = System.Enum.GetNames(typeof(Variables)); + + /// + /// String array of the enum. + /// + private static string[] _stateNames = System.Enum.GetNames(typeof(States)); + + /// + /// If true, will be dynamically set + /// + [Tooltip(AnimatorHooksTooltips.AutoAssignAnimatorsFromChildren)] + [SerializeField] + private bool _autoAssignAnimatorsFromChildren = true; + + /// + /// Animators who should receive signals to animate + /// + [Tooltip(AnimatorHooksTooltips.Animators)] + [SerializeField] + [ContextMenuItem(nameof(RefreshAnimators),nameof(RefreshAnimators))] + private Animator[] _animators; + + [SerializeField] + private float _maxInputAcceleration = 0.1f; + + /// + /// The raw input value, which is filtered by acceleration to smooth animations + /// + private Vector2 _targetDirection; + + /// + /// The cached direction value (result of smoothed _targetDirection) sent to the animators + /// + private Vector2 _animatorDirection; + + /// + /// A valid animator to querey for variable values + /// + private Animator _cachedValidAnimator; + + static AnimatorHooks() + { + CalculateHashIds(_variableNames, out _variableIdLookup); + CalculateHashIds(_stateNames, out _stateIdLookup); + } + + /// + /// Converts the given strings into a list of hash IDs + /// + /// + /// + protected static void CalculateHashIds(string[] names, out int[] hashIds) + { + hashIds = new int[names.Length]; + for (int i = 0; i < names.Length; ++i) + { + int hashId = Animator.StringToHash(names[i]); + hashIds[i] = hashId; + for (int j = 0; j < i; ++j) + { + if (hashIds[j] != hashId) + { + continue; + } + Debug.LogError($"Hash Collision '{names[i]}' vs '{names[j]}'"); + } + } + } + + /// + /// The current Animators managed by this class. + /// + public Animator[] Animators + { + get => _animators; + set + { + _animators = value; + _cachedValidAnimator = null; + } + } + + /// + /// The Horizontal axis value, as though it were from Input.GetAxis("Horizontal") + /// + public float Horizontal + { + get => _targetDirection.x; + set => _targetDirection.x = value; + } + + /// + /// The Vertical axis value, as though it were from Input.GetAxis("Vertical") + /// + public float Vertical + { + get => _targetDirection.y; + set => _targetDirection.y = value; + } + + /// + /// User axis input, from Horizontal and Vertical + /// + public Vector2 InputHorizontalVertical + { + get => _targetDirection; + set + { + _targetDirection = value; + float magnitude = _targetDirection.magnitude; + if (magnitude > 1) + { + _targetDirection /= magnitude; + } + } + } + + /// + /// Is the animator doing grounded animations (eg: walking/running) + /// + public bool Grounded + { + get => GetBool(Variables.Grounded); + set + { + SetBool(Variables.Grounded, value); + } + } + + /// + /// Ensures a valid animator is provided to querey variables from + /// + private Animator ValidAnimator + { + get + { + if (IsAnimatorValid(_cachedValidAnimator)) + { + return _cachedValidAnimator; + } + _cachedValidAnimator = null; + for (int i = 0; i < _animators.Length; ++i) + { + if (!IsAnimatorValid(_animators[i])) + { + continue; + } + _cachedValidAnimator = _animators[i]; + break; + } + return _cachedValidAnimator; + } + } + + /// + /// Facade for + /// + public float GetFloat(Variables variable) + { + return ValidAnimator.GetFloat(_variableIdLookup[(int)variable]); + } + + /// + /// Applies a function to each active animator. + /// + /// + public void ForEachActiveAnimator(System.Action action) + { + for (int i = 0; i < _animators.Length; ++i) + { + if (!IsAnimatorValid(_animators[i])) + { + continue; + } + action.Invoke(_animators[i]); + } + } + + private bool IsAnimatorValid(Animator animator) + { + return animator != null && animator.isActiveAndEnabled; + } + + /// + /// Sets float values for all active Animators of this object + /// + public void SetFloat(Variables variable, float value) + { + for (int i = 0; i < _animators.Length; ++i) + { + if (!IsAnimatorValid(_animators[i])) + { + continue; + } + _animators[i].SetFloat(_variableIdLookup[(int)variable], value); + } + } + + /// + /// Facade for + /// + public bool GetBool(Variables variable) + { + return ValidAnimator.GetBool(_variableIdLookup[(int)variable]); + } + + /// + /// Sets bool values for all active Animators of this object + /// + public void SetBool(Variables variable, bool value) + { + for (int i = 0; i < _animators.Length; ++i) + { + if (!IsAnimatorValid(_animators[i])) + { + continue; + } + _animators[i].SetBool(_variableIdLookup[(int)variable], value); + } + } + + /// + /// Sets bool values for all active Animators of this object + /// + public void SetState(States state) + { + for (int i = 0; i < _animators.Length; ++i) + { + if (!IsAnimatorValid(_animators[i])) + { + continue; + } + _animators[i].Play(_stateIdLookup[(int)state]); + } + } + + private void Start() + { + RefreshAnimators(); + } + + private void FixedUpdate() + { + if (_targetDirection != _animatorDirection) + { + MoveAnimatorDirectionTowardTarget(); + } + } + + private void MoveAnimatorDirectionTowardTarget() + { + Vector2 delta = _targetDirection - _animatorDirection; + float dist = delta.magnitude; + float desiredAccelerationThisFrame = dist / Time.deltaTime; + Vector2 previousAnimatorDireciton = _animatorDirection; + if (_maxInputAcceleration == 0 || desiredAccelerationThisFrame < _maxInputAcceleration) + { + _animatorDirection = _targetDirection; + } + else + { + Vector2 dir = delta / dist; + _animatorDirection += dir * _maxInputAcceleration; + float actualMagnitude = _animatorDirection.magnitude; + if (actualMagnitude > 1) + { + _animatorDirection /= actualMagnitude; + } + // prevent overshooting to zero + if (_targetDirection.x == 0 && ((_animatorDirection.x > 0) != (previousAnimatorDireciton.x > 0))) + { + _animatorDirection.x = 0; + } + if (_targetDirection.y == 0 && ((_animatorDirection.y > 0) != (previousAnimatorDireciton.y > 0))) + { + _animatorDirection.y = 0; + } + } + if (_animatorDirection.x != previousAnimatorDireciton.x) + { + SetFloat(Variables.Horizontal, _animatorDirection.x); + } + if (_animatorDirection.y != previousAnimatorDireciton.y) + { + SetFloat(Variables.Vertical, _animatorDirection.y); + } + } + + /// + /// Recalculates list of to send duplicate signals to. + /// Exits early if is false. + /// + public void RefreshAnimators() + { + if (!_autoAssignAnimatorsFromChildren) + { + return; + } + Animator[] childAnimators = GetComponentsInChildren(true); + List finalList = new List(); + for (int i = 0; i < childAnimators.Length; ++i) + { + Animator anim = childAnimators[i]; + if (anim == null) + { + continue; + } + int missingVariableCount = CountMissingVariables(anim, _variableNames); + if (missingVariableCount != 0 && missingVariableCount != _variableNames.Length) + { + Debug.LogWarning($"Animation \"{anim.name}\" does not have all variables:" + + $" [{string.Join(", ", _variableNames)}]"); + } + if (missingVariableCount != 0) + { + continue; + } + finalList.Add(anim); + } + Animators = finalList.ToArray(); + } + + /// + /// Check if the given animator has the expected animations. This method should be + /// refactored if or have more than a few + /// elements each. + /// + /// variables in the given list that are missing from the given animator + private static int CountMissingVariables(Animator animator, string[] variableNames) + { + List hasParameters = new List(); + for (int i = 0; i < animator.parameterCount; ++i) + { + int found = System.Array.IndexOf(variableNames, animator.GetParameter(i).name); + if (found < 0) + { + continue; + } + hasParameters.Add(variableNames[found]); + } + return variableNames.Length - hasParameters.Count; + } + } +} diff --git a/Runtime/Scripts/Locomotion/AnimatorHooks.cs.meta b/Runtime/Scripts/Locomotion/AnimatorHooks.cs.meta new file mode 100644 index 00000000..e9930d44 --- /dev/null +++ b/Runtime/Scripts/Locomotion/AnimatorHooks.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9d53676bd40688a4798c4ac5ef1c487c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Locomotion/JumpingRigidbody.cs b/Runtime/Scripts/Locomotion/JumpingRigidbody.cs new file mode 100644 index 00000000..f0f6f413 --- /dev/null +++ b/Runtime/Scripts/Locomotion/JumpingRigidbody.cs @@ -0,0 +1,358 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEngine; +using UnityEngine.Events; + +namespace Oculus.Movement.Locomotion +{ + /// + /// Controls jumping details for a based character controller. + /// + public class JumpingRigidbody : MonoBehaviour + { + /// + /// Callbacks to trigger at certain stages of jumping + /// + [System.Serializable] + public class JumpEvents + { + public UnityEvent OnJump = new UnityEvent(); + public UnityEvent OnCantJump = new UnityEvent(); + public UnityEvent OnJumpApexReached = new UnityEvent(); + public UnityEvent OnJumpCollided = new UnityEvent(); + public UnityEvent OnJumpFinished = new UnityEvent(); + } + + private static readonly Vector3 GravityDirection = Vector3.down; + + private static float GravityAcceleration => Mathf.Abs(Physics.gravity.y); + + /// + /// Should reference the main of the character controller + /// + [Tooltip(JumpingRigidbodyTooltips.Rigidbody)] + [SerializeField] + private Rigidbody _rigidbody; + + /// + /// How many units high the character controller should jump + /// + [Tooltip(JumpingRigidbodyTooltips.TargetJumpHeight)] + [SerializeField] + private float _targetJumpHeight = 1; + + /// + /// Prevents jump impulse if the character controller is not grounded + /// + [Tooltip(JumpingRigidbodyTooltips.CanOnlyJumpOnGround)] + [SerializeField] + private bool _canOnlyJumpOnGround = true; + + /// + /// These collision layers will be checked for collision as valid ground to jump from + /// + [Tooltip(JumpingRigidbodyTooltips.FloorLayerMask)] + [SerializeField] + private LayerMask _floorLayerMask = 1; + + /// + /// Callbacks to trigger at certain stages of jumping + /// + [Tooltip(JumpingRigidbodyTooltips.JumpEvents)] + [SerializeField] + private JumpEvents _jumpEvents = new JumpEvents(); + + /// + /// True while controller is moving up during jump + /// + private bool _isJumpAscending; + + /// + /// True while controller is falling, after a jump + /// + private bool _isFalling; + + /// + /// Used to ignore collision with the ground when a jump starts. + /// + private int _framesSinceJumpStarted; + + /// + /// If the user wants the controller to jump + /// + private bool _isJumpCurrentlyPressed; + + /// + /// If the controller requested a jump this frame already (prevents multiple jump application) + /// + private bool _receivedScriptedJumpButtonPressThisFrame; + + /// + /// how wide the character controller's standing base is + /// + private float _footRadius = .125f; + + /// + /// Distance expected of ray to determine grounding + /// + private float _defaultHeightAboveGround = 1; + + /// + /// The +/- wiggle-room for the height raycast calculation to determine grounding + /// + private float _heightEpsilon = 1f / 1024; + + /// + /// The jump velocity necessary to achieve the desired + /// + private float _jumpVelocity; + + /// + /// Timestamp of when a jump started + /// + private float _jumpStart; + + /// + /// Timestamp of when a jump's apex should be reached + /// + private float _jumpHalfway; + + /// + /// maximum distance to check for floor below the player + /// + private const float MaxStandDistance = 10; + + /// + /// Callbacks to trigger at certain stages of jumping + /// + public JumpEvents Events => _jumpEvents; + + /// + public bool JumpInput + { + get => _isJumpCurrentlyPressed; + set + { + if (value) + { + JumpButtonPressed(); + } + _receivedScriptedJumpButtonPressThisFrame = true; + } + } + + /// + /// Used to blend between jump/fall animations. Positive is jump, negative is fall. + /// If 1, the jump is starting. If 0, then we're at the apex. If negative, we're falling. + /// + public float CurrentJumpPower + { + get + { + float now = Time.time; + float secondsUntilApex = now - _jumpHalfway; + float jumpHalfDuration = _jumpHalfway - _jumpStart; + float power = secondsUntilApex / (float)jumpHalfDuration; + return Mathf.Clamp(power, -1, 1); + } + } + + /// + public float TargetJupmHeight + { + get => _targetJumpHeight; + set + { + _targetJumpHeight = value; + RefreshJumpVelocity(); + } + } + + /// + public bool IsFalling + { + get => _isFalling; + set => _isFalling = value; + } + + /// + /// Explicitly press the jump button. Do the jump physics if not already jumping. + /// + public void JumpButtonPressed() + { + _receivedScriptedJumpButtonPressThisFrame = true; + bool jumpWasOnlyJustPressed = !_isJumpCurrentlyPressed; + JumpOrNot(jumpWasOnlyJustPressed); + _isJumpCurrentlyPressed = true; + } + + /// + /// Jump if possible, or don't if logic should prevent it + /// + /// if true, failure to jump will trigger an event + private void JumpOrNot(bool canTriggerJumpFail) + { + if (_canOnlyJumpOnGround && !IsOnGround()) + { + if (canTriggerJumpFail) + { + _jumpEvents.OnCantJump.Invoke(); + } + return; + } + DoJump(); + } + + /// + /// Explicitly force the jump physics to happen + /// + public void DoJump() + { + Vector3 velocity = _rigidbody.velocity; + float fallSpeed = Vector3.Dot(_rigidbody.velocity, GravityDirection); + velocity -= GravityDirection * fallSpeed; + velocity += -GravityDirection * _jumpVelocity; + _rigidbody.velocity = velocity; + _jumpEvents.OnJump.Invoke(); + _jumpStart = Time.time; + float jumpArcDurationSeconds = CalculateCompleteJumpDuration(_jumpVelocity, GravityAcceleration); + float jumpHalfDuration = jumpArcDurationSeconds / 2; + _jumpHalfway = _jumpStart + jumpHalfDuration; + _isJumpAscending = true; + _isFalling = false; + _framesSinceJumpStarted = 0; + } + + /// + /// Determine if the character controller is on the ground, and able to jump + /// + public bool IsOnGround() + { + float height = HeightFromFloor(); + return height < _defaultHeightAboveGround + _heightEpsilon; + } + + private void RefreshJumpVelocity() + { + _jumpVelocity = CalcJumpVelocity(_targetJumpHeight, GravityAcceleration); + } + + public static float CalcJumpVelocity(float jumpHeight, float gForce) + { + return Mathf.Sqrt(2 * jumpHeight * gForce); + } + + private void Start() + { + RefreshJumpVelocity(); + if (_rigidbody == null) + { + _rigidbody = GetComponentInParent(); + Debug.LogWarning($"{this} is missing a {nameof(_rigidbody)} value, using \"{_rigidbody}\""); + } + CapsuleCollider capsule = GetComponent(); + if (capsule != null) + { + _defaultHeightAboveGround = capsule.height / 2 - capsule.center.y; + } + else + { + _defaultHeightAboveGround = HeightFromFloor(); + } + JumpCollision jumpCollision = _rigidbody.gameObject.AddComponent(); + jumpCollision.JupingRigidbody = this; + if (IsOnGround()) + { + _jumpEvents.OnJumpFinished.Invoke(); + } + else + { + _jumpEvents.OnJumpApexReached.Invoke(); + } + } + + private void FixedUpdate() + { + if (!_receivedScriptedJumpButtonPressThisFrame) + { + if (_isJumpCurrentlyPressed) + { + JumpButtonPressed(); + } + _isJumpCurrentlyPressed = false; + } + _receivedScriptedJumpButtonPressThisFrame = false; + + if (_isJumpAscending && Time.time > _jumpHalfway) + { + _isJumpAscending = false; + _isFalling = true; + _jumpEvents.OnJumpApexReached.Invoke(); + } + ++_framesSinceJumpStarted; + } + + private float HeightFromFloor() + { + // start ray slightly above position, we may be exactly on the floor + float extraOffset = _footRadius + _heightEpsilon; + Vector3 rayStart = _rigidbody.position - GravityDirection * extraOffset; + if (!Physics.SphereCast(rayStart, _footRadius, GravityDirection, out RaycastHit hit, + MaxStandDistance, _floorLayerMask)) + { + return float.PositiveInfinity; + } + return hit.distance - _heightEpsilon; + } + + private static float CalculateCompleteJumpDuration(float jumpVelocity, float gForce) + { + return 2 * jumpVelocity / gForce; + } + + /// + /// Called by + /// + /// + internal void Collided(Collision collision) + { + if (_framesSinceJumpStarted <= 1) + { + return; + } + _isJumpAscending = false; + float collisionDotProduct = Vector3.Dot(collision.contacts[0].normal, -GravityDirection); + const float minimumStableGroundValue = 1f / 32; + if (collisionDotProduct > minimumStableGroundValue) + { + if (_isFalling || _isJumpAscending) + { + _isFalling = _isJumpAscending = false; + _jumpEvents.OnJumpFinished.Invoke(); + } + } + else + { + _isFalling = true; + _jumpEvents.OnJumpCollided.Invoke(); + } + } + } + + /// + /// listener that notifies a + /// + public class JumpCollision : MonoBehaviour + { + public JumpingRigidbody JupingRigidbody; + + private void OnCollisionEnter(Collision collision) + { + if (!enabled) + { + return; + } + JupingRigidbody.Collided(collision); + } + } +} diff --git a/Runtime/Scripts/Locomotion/JumpingRigidbody.cs.meta b/Runtime/Scripts/Locomotion/JumpingRigidbody.cs.meta new file mode 100644 index 00000000..dd181c66 --- /dev/null +++ b/Runtime/Scripts/Locomotion/JumpingRigidbody.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: da4ab1658d3cee4479c2813f19f8cec9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Locomotion/Legacy.meta b/Runtime/Scripts/Locomotion/Legacy.meta new file mode 100644 index 00000000..250528d9 --- /dev/null +++ b/Runtime/Scripts/Locomotion/Legacy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e98ea469fe1d2964895dc84cfbece95b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Locomotion/Legacy/AnimationConstraintMasker.cs b/Runtime/Scripts/Locomotion/Legacy/AnimationConstraintMasker.cs new file mode 100644 index 00000000..e1ea7062 --- /dev/null +++ b/Runtime/Scripts/Locomotion/Legacy/AnimationConstraintMasker.cs @@ -0,0 +1,273 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using Oculus.Movement.AnimationRigging; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Animations.Rigging; + +namespace Oculus.Movement.Locomotion.Deprecated +{ + /// + /// Manages animation masking on an , turning masking on + /// during an activity, and off after the activity stops for a given timeout period. + /// + public class AnimationConstraintMasker : MonoBehaviour + { + /// + /// Section of body where body tracking continues animating while activity triggers + /// + [Tooltip(AnimationConstraintMaskerTooltips.Mask)] + [SerializeField] + private AvatarMask _mask; + + /// + /// Seconds of inactivity till entire animator follows body tracking again + /// + [Tooltip(AnimationConstraintMaskerTooltips.ActivityExitTime)] + [SerializeField] + private float _activityExitTime = 1; + + /// + /// The body being animated + /// + [Tooltip(AnimationConstraintMaskerTooltips.Animator)] + [SerializeField] + private Animator _animator; + + /// + /// Partial names of constraints to deactivate when animation masking is active. For + /// example, {"_Leg"} will disable all rig constraints with "_Leg" in the name. + /// + [Tooltip(AnimationConstraintMaskerTooltips.ConstraintsToDeactivate)] + [SerializeField] + private string[] _constraintsToDeactivate; + + /// + /// Body tracking constraints, populated from + /// + private RetargetingAnimationConstraint[] _retargetingConstraints; + + /// + /// Constraints that need to be turned off only while animating the activity + /// + private List _namedConstraintsToDeactivate = new List(); + + /// + /// What activities want to apply this animation mask? Needed because multiple activities + /// can try to apply the same mask, like walk and jump masking legs. + /// + private HashSet _sourcesRequestingMask = new HashSet(); + + /// + /// when the last request for masking ended + /// + private float _timeOfLastActivity; + + /// + /// when to actually stop masking + /// + private float _activityTimeout; + + /// + /// True if any sources requested the animation mask to activate + /// + private bool _shouldApplyMask; + + /// + /// True if the animation mask is being applied + /// + private bool _isApplyingMask; + + /// + /// True if the animation mask is being applied + /// + public bool IsApplyingMask + { + get => _isApplyingMask; + set + { + if (value != _isApplyingMask) + { + if (value) + { + StartApplyingMask(); + } + else + { + FinishApplyingMask(); + } + } + _isApplyingMask = value; + } + } + + /// + /// seconds since the last time an event requested the animation mask + /// + public float SecondsSinceLastLocomotionInput + { + get + { + if (_shouldApplyMask) + { + return 0; + } + return Time.time - _timeOfLastActivity; + } + } + + /// + /// What activities want to apply this animation mask? Needed because multiple activities + /// can try to apply the same mask, like walk and jump masking legs. + /// + public IEnumerable SourcesRequestingMask => _sourcesRequestingMask; + + /// + /// If the mask should apply to the animator. Instead of setting this directly, use + /// and + /// + public bool ShouldApplyMask + { + get => _shouldApplyMask; + set + { + if (!value && _shouldApplyMask) + { + if (_sourcesRequestingMask.Count != 0) + { + Debug.LogWarning($"Unresolved mask request from: {string.Join(", ", _sourcesRequestingMask)}"); + } + _timeOfLastActivity = Time.time; + _activityTimeout = _timeOfLastActivity + _activityExitTime; + } + else if (value) + { + IsApplyingMask = true; + } + _shouldApplyMask = value; + } + } + + /// + /// The animator to apply the animator mask to + /// + public Animator Animator + { + get => _animator; + set => SetAnimator(value); + } + +#if UNITY_EDITOR + private void Reset() + { + Animator = GetComponentInParent(); + } +#endif + + /// + private void Start() + { + SetAnimator(Animator); + } + + /// + private void Update() + { + if (IsApplyingMask && !ShouldApplyMask && Time.time >= _activityTimeout) + { + IsApplyingMask = false; + } + } + + /// + /// Used to identify that the animation mask should be applied to the animator + /// + /// a unique name for the acitivy applying the animation mask + public void StartApplyingMaskFor(string source) + { + _sourcesRequestingMask.Add(source); + ShouldApplyMask = true; + } + + /// + /// Used to identify that the animation mask is finished being applied to the animator + /// + /// a unique name for the acitivy applying the animation mask + public void FinishApplyingMaskFor(string source) + { + _sourcesRequestingMask.Remove(source); + if (_sourcesRequestingMask.Count == 0) + { + ShouldApplyMask = false; + } + } + + /// + /// Sets the animator, and recalculates internal variables, like related rig constraints. + /// + /// + public void SetAnimator(Animator value) + { + _animator = value; + FindValidRetargetingConstraints(_animator); + DeactivateMarkedRigConstraints(_animator); + } + + private void DeactivateMarkedRigConstraints(Animator animator) + { + if (animator == null) + { + return; + } + _namedConstraintsToDeactivate = GetNamedConstraints( + animator.GetComponentsInChildren(true), _constraintsToDeactivate); + } + + private List GetNamedConstraints(IRigConstraint[] constraints, string[] nameContains) + { + List found = new List(); + for (int i = constraints.Length-1; i >= 0; --i) + { + Object obj = constraints[i] as Object; + if (obj == null) + { + continue; + } + for (int j = 0; j < nameContains.Length; ++j) + { + if (obj.name.Contains(nameContains[j])) + { + found.Add(constraints[i]); + } + } + } + return found; + } + + private void FindValidRetargetingConstraints(Animator animator) + { + if (animator == null) + { + return; + } + _retargetingConstraints = animator.GetComponentsInChildren(true); + } + + private void StartApplyingMask() + { + SetRetargetingConstraintMask(_mask); + _namedConstraintsToDeactivate.ForEach(c => c.weight = 0); + } + + private void FinishApplyingMask() + { + SetRetargetingConstraintMask(null); + _namedConstraintsToDeactivate.ForEach(c => c.weight = 1); + } + + private void SetRetargetingConstraintMask(AvatarMask mask) + { + System.Array.ForEach(_retargetingConstraints, r => r.data.AvatarMaskComp = mask); + } + } +} diff --git a/Runtime/Scripts/Locomotion/Legacy/AnimationConstraintMasker.cs.meta b/Runtime/Scripts/Locomotion/Legacy/AnimationConstraintMasker.cs.meta new file mode 100644 index 00000000..3a658412 --- /dev/null +++ b/Runtime/Scripts/Locomotion/Legacy/AnimationConstraintMasker.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4154875e392cb344d9dd4d74b39327fb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Locomotion/MovementSDKLocomotion.cs b/Runtime/Scripts/Locomotion/MovementSDKLocomotion.cs new file mode 100644 index 00000000..60bd7186 --- /dev/null +++ b/Runtime/Scripts/Locomotion/MovementSDKLocomotion.cs @@ -0,0 +1,382 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEngine; +using UnityEngine.Events; + +namespace Oculus.Movement.Locomotion +{ + /// + /// A rigidbody physics based locomotion character controller designed to work with + /// . + /// + public class MovementSDKLocomotion : MonoBehaviour + { + /// + /// Triggered by changes to this transform's rotation + /// + [System.Serializable] + public class UnityEvent_Quaternion : UnityEvent { } + + /// + /// Triggered by notification that the controlling joystick has changed + /// + [System.Serializable] + public class UnityEvent_Vector2 : UnityEvent { } + + /// + /// Callcbacks to trigger on certain joystic input events + /// + [System.Serializable] + public class JoystickEvents + { + public UnityEvent_Quaternion OnDirectionChange = new UnityEvent_Quaternion(); + public UnityEvent_Vector2 OnUserInputChange = new UnityEvent_Vector2(); + public UnityEvent OnStartMove = new UnityEvent(); + public UnityEvent OnStopMove = new UnityEvent(); + } + + /// + /// The that is controlled by this character controller. + /// + [Tooltip(MovementSDKLocomotionTooltips.Rigidbody)] + [SerializeField] + protected Rigidbody _rigidbody; + + /// + /// The that counts as this character's feet + /// + [Tooltip(MovementSDKLocomotionTooltips.Collider)] + [SerializeField] + protected Collider _collider; + + /// + /// Joystick will move forward and backward, as well as strafe left and right at Speed + /// + [Tooltip(MovementSDKLocomotionTooltips.EnableMovement)] + [SerializeField] + private bool _enableMovement = true; + + /// + /// Joystick will turn according to RotationAngle + /// + [Tooltip(MovementSDKLocomotionTooltips.EnableRotation)] + [SerializeField] + private bool _enableRotation = true; + + /// + /// If Input given to input events reflects obstacles hampering velocity + /// + [Tooltip(MovementSDKLocomotionTooltips.ScaleInputByActualVelocity)] + [SerializeField] + private bool _scaleInputByActualVelocity = true; + + /// + /// Default snap turn amount. + /// + [Tooltip(MovementSDKLocomotionTooltips.RotationAngle)] + [SerializeField] + private float _rotationAngle = 360f / 8; + + /// + /// Default turn speed, when rotating smoothly + /// + [Tooltip(MovementSDKLocomotionTooltips.RotationPerSecond)] + [SerializeField] + private float _rotationPerSecond = 360f / 2; + + /// + /// How quickly the controller will move with fully extended joystick + /// + [Tooltip(MovementSDKLocomotionTooltips.Speed)] + [SerializeField] + private float _speed = 3.0f; + + /// + /// The Camera Rig + /// + [Tooltip(MovementSDKLocomotionTooltips.CameraRig)] + [SerializeField] + private OVRCameraRig _cameraRig; + + /// + /// Callbacks to trigger on certain joystic input events + /// + [Tooltip(MovementSDKLocomotionTooltips.JoystickEvents)] + [SerializeField] + private JoystickEvents _joystickEvents = new JoystickEvents(); + + /// + /// Keeps track of whether input is being received. If not, zero out the input vector. + /// + private bool _receivedScriptedJoystickInputThisFrame; + + /// + /// semaphore that prevents more than one snap per left/right joystick press + /// + private bool _readyToSnapTurn; + + /// + /// If true, will cause smooth left turning at runtime + /// + private bool _smoothTurnLeft; + + /// + /// If true, will cause smooth right turning at runtime + /// + private bool _smoothTurnRight; + + /// + /// If true, will cause left snap turning at runtime + /// + private bool _snapTurnLeft; + + /// + /// If true, will cause right snap turning at runtime + /// + private bool _snapTurnRight; + + /// + /// Not-normalized 3D direction that the user is indicating they want to travel in + /// + private Vector3 _locomotionDirection; + + /// + /// The value from last frame + /// + private Vector3 _lastLocomotionDirection; + + /// + /// Actual joystick input value + /// + private Vector2 _joystickInput; + + /// + /// value from last frame + /// + private Vector2 _lastReportedUserInput; + + /// + public Vector3 Direction => _locomotionDirection; + + /// + public Vector2 UserInput + { + get => _joystickInput; + set => SetJoystickInput(value); + } + + /// + public bool SmoothTurnLeft + { + get => _smoothTurnLeft; + set => _smoothTurnLeft = value; + } + + /// + public bool SmoothTurnRight + { + get => _smoothTurnRight; + set => _smoothTurnRight = value; + } + + /// + public bool SnapTurnLeft + { + get => _snapTurnLeft; + set => _snapTurnLeft = value; + } + + /// + public bool SnapTurnRight + { + get => _snapTurnRight; + set => _snapTurnRight = value; + } + + private bool _canUpdate; + + /// + private void Awake() + { + if (_rigidbody == null) + { + _rigidbody = GetComponentInParent(); + Debug.LogWarning($"{this} is missing a {nameof(_rigidbody)} value, using \"{_rigidbody}\""); + } + if (_cameraRig == null) + { + _cameraRig = GetComponentInChildren(); + } + _canUpdate = true; + } + + /// + private void Start() + { + _rigidbody.freezeRotation = true; + } + + /// + private void FixedUpdate() + { + if (!_canUpdate) + { + // Reset the inputs while the locomotion can't receive any updates, so that no erroneous input is + // captured and applied when update is enabled again. + SetJoystickInput(Vector2.zero); + _receivedScriptedJoystickInputThisFrame = false; + _rigidbody.velocity = _rigidbody.angularVelocity = Vector3.zero; + _locomotionDirection = Vector3.zero; + return; + } + if (_smoothTurnLeft) + { + transform.Rotate(0, -_rotationPerSecond * Time.deltaTime, 0); + } + if (_smoothTurnRight) + { + transform.Rotate(0, _rotationPerSecond * Time.deltaTime, 0); + } + if (_enableMovement) + { + if (!_receivedScriptedJoystickInputThisFrame) + { + SetJoystickInput(Vector2.zero); + } + UpdateMovement(); + _receivedScriptedJoystickInputThisFrame = false; + } + if (_enableRotation) + { + SnapTurn(); + } + } + + private void OnApplicationFocus(bool hasFocus) + { + _canUpdate = hasFocus; + _rigidbody.isKinematic = !hasFocus; + _rigidbody.velocity = _rigidbody.angularVelocity = Vector3.zero; + } + + /// + /// Calculates the move direction based on input + /// + private void SetJoystickInput(Vector2 joystickInput) + { + _receivedScriptedJoystickInputThisFrame = true; + Quaternion cameraOrientation = _cameraRig.centerEyeAnchor.rotation; + Quaternion avatarOrientation = transform.rotation; + Vector3 cameraOrientationEuler = cameraOrientation.eulerAngles; + cameraOrientationEuler.z = cameraOrientationEuler.x = 0f; + cameraOrientation = Quaternion.Euler(cameraOrientationEuler); + + _locomotionDirection = Vector3.zero; + _joystickInput = joystickInput; + _locomotionDirection += cameraOrientation * (_joystickInput.x * Vector3.right); + _locomotionDirection += cameraOrientation * (_joystickInput.y * Vector3.forward); + Vector3 avatarDirection; + + bool avatarOrientationNeedsMoreMath = cameraOrientation != avatarOrientation; + if (avatarOrientationNeedsMoreMath) + { + Vector3 avatarOrientationEuler = avatarOrientation.eulerAngles; + Quaternion avatarOrientationOffset = Quaternion.Euler(0, -avatarOrientationEuler.y, 0); + avatarDirection = cameraOrientation * avatarOrientationOffset * (_joystickInput.x * Vector3.right); + avatarDirection += cameraOrientation * avatarOrientationOffset * (_joystickInput.y * Vector3.forward); + } + else + { + avatarDirection = _locomotionDirection; + } + + Vector2 userInput = _scaleInputByActualVelocity ? ScaledByVelocity(avatarDirection) + : new Vector2(avatarDirection.x, avatarDirection.z); + + if (_locomotionDirection != _lastLocomotionDirection || _lastReportedUserInput != userInput) + { + if (_joystickInput == Vector2.zero) + { + _joystickEvents.OnUserInputChange.Invoke(Vector2.zero); + _joystickEvents.OnStopMove.Invoke(); + } + else + { + _joystickEvents.OnUserInputChange.Invoke(userInput); + Quaternion newDirection = Quaternion.LookRotation(_locomotionDirection, Vector3.up); + _joystickEvents.OnDirectionChange.Invoke(newDirection); + if (_lastLocomotionDirection == Vector3.zero) + { + _joystickEvents.OnStartMove.Invoke(); + } + } + _lastLocomotionDirection = _locomotionDirection; + _lastReportedUserInput = userInput; + } + } + + private Vector2 ScaledByVelocity(Vector3 directionInput) + { + if ( _joystickInput == Vector2.zero) + { + return Vector2.zero; + } + Vector3 realDirection = _locomotionDirection.normalized; + float actualSpeed = Vector3.Dot(realDirection, _rigidbody.velocity); + Vector3 scaledDirection = directionInput.normalized * (actualSpeed / _speed); + return new Vector2(scaledDirection.x, scaledDirection.z); + } + + private void UpdateMovement() + { + if (_rigidbody.isKinematic) + { + _rigidbody.MovePosition(_rigidbody.position + _locomotionDirection * (_speed * Time.fixedDeltaTime)); + } + else + { + Vector3 locomotionVelocity = _locomotionDirection * _speed; + _rigidbody.velocity = locomotionVelocity + CurrentFallVelocity(); + } + } + + private Vector3 CurrentFallVelocity() + { + float currentFallSpeed = Vector3.Dot(_rigidbody.velocity, Vector3.down); + return Vector3.down * currentFallSpeed; + } + + private void SnapTurn() + { + float amountToRotate = 0; + if (_snapTurnLeft) + { + if (_readyToSnapTurn) + { + amountToRotate = -_rotationAngle; + } + _snapTurnLeft = false; + } + else if (_snapTurnRight) + { + if (_readyToSnapTurn) + { + amountToRotate = _rotationAngle; + } + _snapTurnRight = false; + } + else + { + _readyToSnapTurn = true; + } + if (amountToRotate != 0) + { + _readyToSnapTurn = false; + Vector3 centerPoint = _collider.bounds.center; + Transform _transform = transform; + _transform.RotateAround(centerPoint, Vector3.up, amountToRotate); + _joystickEvents.OnDirectionChange.Invoke(_transform.rotation); + } + } + } +} diff --git a/Runtime/Scripts/Locomotion/MovementSDKLocomotion.cs.meta b/Runtime/Scripts/Locomotion/MovementSDKLocomotion.cs.meta new file mode 100644 index 00000000..28730bbc --- /dev/null +++ b/Runtime/Scripts/Locomotion/MovementSDKLocomotion.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3d8b04f7c021d17418b69af396cacb05 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Locomotion/ReappearAfterFall.cs b/Runtime/Scripts/Locomotion/ReappearAfterFall.cs new file mode 100644 index 00000000..fae36789 --- /dev/null +++ b/Runtime/Scripts/Locomotion/ReappearAfterFall.cs @@ -0,0 +1,58 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEngine; + +namespace Oculus.Movement.Locomotion +{ + /// + /// Respawns the player if they fall off "the world" + /// + public class ReappearAfterFall : MonoBehaviour + { + /// + /// Should reference the main of the character controller + /// + [Tooltip(ReappearAfterFallTooltips.Rigidbody)] + [SerializeField] + private Rigidbody _rigidbody; + + /// + /// When _rigidbody.transform.position.y is lower than this value, restart it + /// + [Tooltip(ReappearAfterFallTooltips.MinimumY)] + [SerializeField] + private float _minimumY = -10; + + private Vector3 _startPosition; + private Quaternion _startRotation; + + private void Start() + { + if (_rigidbody == null) + { + _rigidbody = GetComponentInParent(); + Debug.LogWarning($"{this} is missing a {nameof(_rigidbody)} value, using \"{_rigidbody}\""); + } + _startPosition = _rigidbody.position; + _startRotation = _rigidbody.rotation; + } + + private void FixedUpdate() + { + if (_rigidbody.position.y < _minimumY) + { + ReappearAtStart(); + } + } + + /// + /// Restarts the managed rigibody at it's starting position + /// + public void ReappearAtStart() + { + _rigidbody.position = _startPosition; + _rigidbody.rotation = _startRotation; + _rigidbody.velocity = _rigidbody.angularVelocity = Vector3.zero; + } + } +} diff --git a/Runtime/Scripts/Locomotion/ReappearAfterFall.cs.meta b/Runtime/Scripts/Locomotion/ReappearAfterFall.cs.meta new file mode 100644 index 00000000..da94d744 --- /dev/null +++ b/Runtime/Scripts/Locomotion/ReappearAfterFall.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cabb7e5fdbde6df419ebfea296cc3616 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Locomotion/SphereColliderStaysBelowHips.cs b/Runtime/Scripts/Locomotion/SphereColliderStaysBelowHips.cs new file mode 100644 index 00000000..b219c075 --- /dev/null +++ b/Runtime/Scripts/Locomotion/SphereColliderStaysBelowHips.cs @@ -0,0 +1,190 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEngine; + +namespace Oculus.Movement.Locomotion +{ + /// + /// Moves the given sphere collider to be appropriate to the feet of the user + /// + public class SphereColliderStaysBelowHips : MonoBehaviour + { + /// + /// The sphere collider at the foot of the body tracked user + /// + [Tooltip(SphereColliderStaysBelowHipsTooltips.Collider)] + [SerializeField] + protected SphereCollider _collider; + + /// + /// Capsule volume where the body is expected, should be a trigger + /// + [Tooltip(SphereColliderStaysBelowHipsTooltips.ExpectedBodyCapsule)] + [SerializeField] + protected CapsuleCollider _expectedBodyCapsule; + + /// + /// Root of the character object, which has specially named body tracked bones as children somewhere in it's hierarchy + /// + [Tooltip(SphereColliderStaysBelowHipsTooltips.CharacterRoot)] + [SerializeField] + protected Transform _characterRoot; + + /// + /// Collision layers to avoid merging foot collision area into (due to animation or body tracking) + /// + [Tooltip(SphereColliderStaysBelowHipsTooltips.FloorLayerMask)] + [SerializeField] + protected LayerMask _floorLayerMask = 1; + + /// + /// Transform that move when the player moves in real life. + /// + [Tooltip(SphereColliderStaysBelowHipsTooltips.TrackedHipTransform)] + [SerializeField] + protected Transform _trackingHips; + + /// + /// Transforms belonging to feet, at the ground, that move when the animated character moves. + /// + [Tooltip(SphereColliderStaysBelowHipsTooltips.TrackingToes)] + [SerializeField] + protected Transform[] _trackingToes; + + /// + /// If true, the sphere collider will be influenced by the y-position of toes + /// + [Tooltip(SphereColliderStaysBelowHipsTooltips.ColliderFollowsToes)] + [SerializeField] + private bool _colliderFollowsToes = false; + + /// + /// Last position of the target sphere collider + /// + private Vector3 _lastPosition; + + /// + /// Statically allocated memory for collision detection, for performance reasons + /// + private RaycastHit[] _nonallocSphereCastHits = new RaycastHit[10]; + + protected Vector3 GetPlausibleFeetAbsolutePosition() + { + Vector3 plausibleFeetPosition = _trackingHips.position; + if (!_colliderFollowsToes) + { + plausibleFeetPosition.y = transform.position.y; + } + else + { + plausibleFeetPosition.y = _trackingToes[0].position.y; + GetBestYValueForToes(ref plausibleFeetPosition.y); + } + return plausibleFeetPosition; + } + + private void GetBestYValueForToes(ref float toesY) + { + for (int i = 1; i < _trackingToes.Length; ++i) + { + Transform toe = _trackingToes[i]; + float toePositionY = toe.position.y; + if (toePositionY >= toesY) + { + toesY = toePositionY; + } + } + } + + private void Update() + { + Transform colliderTransform = _collider.transform; + Vector3 feetAbsolutePosition = GetPlausibleFeetAbsolutePosition(); + Vector3 targetSpherePosition = feetAbsolutePosition + Vector3.up * _collider.radius; + Vector3 targetSphereLocalPosition = colliderTransform.InverseTransformPoint(targetSpherePosition); + Vector3 previousSphereLocalPosition = _collider.center; + bool collisionSphereMovedUnexpectedly = previousSphereLocalPosition != targetSphereLocalPosition; + if (collisionSphereMovedUnexpectedly) + { + // this will cause OnCollisionEnter for the _collider + _collider.center = targetSphereLocalPosition; + CapsuleColliderFollowsSphereCollider(); + MoveOutOfPenetratedFloor(colliderTransform, targetSpherePosition); + } + _lastPosition = targetSpherePosition; + + void CapsuleColliderFollowsSphereCollider() + { + if (_expectedBodyCapsule == null) + { + return; + } + if (_expectedBodyCapsule.gameObject == _collider.gameObject) + { + _expectedBodyCapsule.center = _collider.center + (Vector3.up * (_expectedBodyCapsule.height / 2 - _collider.radius)); + } + else + { + Vector3 targetCapsulePosition = feetAbsolutePosition + Vector3.up * (_expectedBodyCapsule.height / 2); + Vector3 targetCapsuleLocalPosition = _expectedBodyCapsule.transform.InverseTransformPoint(targetCapsulePosition); + _expectedBodyCapsule.center = targetCapsuleLocalPosition; + } + } + } + + private void MoveOutOfPenetratedFloor(Transform colliderT, Vector3 targetSpherePosition) + { + Vector3 movedDelta = targetSpherePosition - _lastPosition; + float targetDistance = movedDelta.magnitude; + Vector3 direction = movedDelta / targetDistance; + _collider.enabled = false; + int hitCount = Physics.SphereCastNonAlloc(_lastPosition, _collider.radius, direction, + _nonallocSphereCastHits, targetDistance, _floorLayerMask); + _collider.enabled = true; + int mostFloorLikeCollision = -1; + float bestFloorLikeness = float.NegativeInfinity; + float floorLikeness; + const int DefaultLayerMask = 1; + bool assumeLayerMaskAvoidsSelf = _floorLayerMask != DefaultLayerMask; + for (int i = 0; i < hitCount; ++i) + { + RaycastHit hitInfo = _nonallocSphereCastHits[i]; + bool immediateContactCollision = hitInfo.distance == 0; + if (immediateContactCollision || hitInfo.collider.isTrigger + || (!assumeLayerMaskAvoidsSelf && DoesColliderBelongToController(hitInfo.collider))) + { + continue; + } + else if ((floorLikeness = Vector3.Dot(Vector3.up, hitInfo.normal)) > bestFloorLikeness) + { + mostFloorLikeCollision = i; + bestFloorLikeness = floorLikeness; + } + } + if (mostFloorLikeCollision >= 0) + { + RaycastHit hitInfo = _nonallocSphereCastHits[mostFloorLikeCollision]; + Vector3 stablePositionAfterOffset = hitInfo.point + hitInfo.normal * _collider.radius; + Vector3 currentTrackingSpaceCenter = colliderT.position; + Vector3 offset = targetSpherePosition - currentTrackingSpaceCenter; + Vector3 stablePosition = stablePositionAfterOffset - offset; + colliderT.position = stablePosition; + } + } + + private bool DoesColliderBelongToController(Collider collider) + { + Transform selfRoot = transform; + Transform t = collider.transform; + while (t != null) + { + if (t == selfRoot || t == _characterRoot) + { + return true; + } + t = t.parent; + } + return false; + } + } +} diff --git a/Runtime/Scripts/Locomotion/SphereColliderStaysBelowHips.cs.meta b/Runtime/Scripts/Locomotion/SphereColliderStaysBelowHips.cs.meta new file mode 100644 index 00000000..467f5d8f --- /dev/null +++ b/Runtime/Scripts/Locomotion/SphereColliderStaysBelowHips.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 09663e1973f351a4c96d0e674d862aa7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/RetargetingProcessing.meta b/Runtime/Scripts/RetargetingProcessing.meta new file mode 100644 index 00000000..b7134f5c --- /dev/null +++ b/Runtime/Scripts/RetargetingProcessing.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f43c059835f3af34fb63d0b3721b29a2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/RetargetingProcessing/RetargetingProcessor.cs b/Runtime/Scripts/RetargetingProcessing/RetargetingProcessor.cs new file mode 100644 index 00000000..9012faf7 --- /dev/null +++ b/Runtime/Scripts/RetargetingProcessing/RetargetingProcessor.cs @@ -0,0 +1,42 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace Oculus.Movement.AnimationRigging +{ + [Serializable] + public class RetargetingProcessor : ScriptableObject, IRetargetingProcessor + { + /// + /// The weight of this processor. + /// + [Range(0.0f, 1.0f)] + public float Weight = 1.0f; + + /// + /// Deep copy data from another processor to this processor. + /// + /// The source processor to copy from. + public virtual void CopyData(RetargetingProcessor source) + { + Weight = source.Weight; + } + + /// + public virtual void SetupRetargetingProcessor(RetargetingLayer retargetingLayer) + { + } + + /// + public virtual void PrepareRetargetingProcessor(RetargetingLayer retargetingLayer, IList ovrBones) + { + } + + /// + public virtual void ProcessRetargetingLayer(RetargetingLayer retargetingLayer, IList ovrBones) + { + } + } +} diff --git a/Runtime/Scripts/RetargetingProcessing/RetargetingProcessor.cs.meta b/Runtime/Scripts/RetargetingProcessing/RetargetingProcessor.cs.meta new file mode 100644 index 00000000..41ba3c53 --- /dev/null +++ b/Runtime/Scripts/RetargetingProcessing/RetargetingProcessor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7d2fd284ff21df944a445f2991a7258e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/RetargetingProcessing/RetargetingProcessorCorrectBones.cs b/Runtime/Scripts/RetargetingProcessing/RetargetingProcessorCorrectBones.cs new file mode 100644 index 00000000..2452cf03 --- /dev/null +++ b/Runtime/Scripts/RetargetingProcessing/RetargetingProcessorCorrectBones.cs @@ -0,0 +1,274 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Animations.Rigging; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// Retargeting processor used to apply corrected bone positions from the retargeted animation job output. + /// + [CreateAssetMenu(fileName = "Correct Bones", menuName = "Movement Samples/Data/Retargeting Processors/Correct Bones", order = 1)] + public sealed class RetargetingProcessorCorrectBones : RetargetingProcessor + { + /// + /// Allows correcting positions for accuracy. + /// + [SerializeField] + [Tooltip(RetargetingLayerTooltips.CorrectPositionsLateUpdate)] + private bool _correctPositionsLateUpdate = true; + /// + public bool CorrectPositionsLateUpdate + { + get => _correctPositionsLateUpdate; + set => _correctPositionsLateUpdate = value; + } + + /// + /// Allow correcting shoulder transforms in LateUpdate. This can produce more + /// accurate shoulders, for instance. + /// + [Tooltip(RetargetingLayerTooltips.ShoulderCorrectionWeightLateUpdate)] + [SerializeField, Range(0.0f, 1.0f)] + private float _shoulderCorrectionWeightLateUpdate = 1.0f; + /// + public float ShoulderCorrectionWeightLateUpdate + { + get => _shoulderCorrectionWeightLateUpdate; + set => _shoulderCorrectionWeightLateUpdate = value; + } + + /// + /// Allow correcting rotations. This can produce more + /// accurate hands, for instance. + /// + [Tooltip(RetargetingLayerTooltips.LeftHandCorrectionWeightLateUpdate)] + [SerializeField, Range(0.0f, 1.0f)] + private float _leftHandCorrectionWeightLateUpdate = 1.0f; + /// + public float LeftHandCorrectionWeightLateUpdate + { + get => _leftHandCorrectionWeightLateUpdate; + set => _leftHandCorrectionWeightLateUpdate = value; + } + + /// + /// Allow correcting rotations. This can produce more + /// accurate hands, for instance. + /// + [Tooltip(RetargetingLayerTooltips.RightHandCorrectionWeightLateUpdate)] + [SerializeField, Range(0.0f, 1.0f)] + private float _rightHandCorrectionWeightLateUpdate = 1.0f; + /// + public float RightHandCorrectionWeightLateUpdate + { + get => _rightHandCorrectionWeightLateUpdate; + set => _rightHandCorrectionWeightLateUpdate = value; + } + + /// + public override void CopyData(RetargetingProcessor source) + { + base.CopyData(source); + var sourceCorrectBones = source as RetargetingProcessorCorrectBones; + if (sourceCorrectBones == null) + { + Debug.LogError($"Failed to copy properties from {source.name} processor to {name} processor"); + return; + } + _correctPositionsLateUpdate = sourceCorrectBones.CorrectPositionsLateUpdate; + _shoulderCorrectionWeightLateUpdate = sourceCorrectBones.ShoulderCorrectionWeightLateUpdate; + _leftHandCorrectionWeightLateUpdate = sourceCorrectBones.LeftHandCorrectionWeightLateUpdate; + _rightHandCorrectionWeightLateUpdate = sourceCorrectBones.RightHandCorrectionWeightLateUpdate; + } + + /// + public override void ProcessRetargetingLayer(RetargetingLayer retargetingLayer, IList ovrBones) + { + if (Weight <= 0.0f) + { + return; + } + + bool handCorrectionTurnedOn = + LeftHandCorrectionWeightLateUpdate > Mathf.Epsilon || + RightHandCorrectionWeightLateUpdate > Mathf.Epsilon; + + if (ovrBones == null) + { + return; + } + + for (var i = 0; i < ovrBones.Count; i++) + { + if (ovrBones[i] == null) + { + continue; + } + var nullableHumanBodyBone = retargetingLayer.GetCustomBoneIdToHumanBodyBone(ovrBones[i].Id); + if (nullableHumanBodyBone == null) + { + continue; + } + var humanBodyBone = (HumanBodyBones)nullableHumanBodyBone; + + var nullableTargetCorrectionQuaternion = retargetingLayer.GetCorrectionQuaternion(humanBodyBone); + if (nullableTargetCorrectionQuaternion == null) + { + continue; + } + var targetCorrectionQuaternion = (Quaternion)nullableTargetCorrectionQuaternion; + + var bodyPart = BoneMappingsExtension.HumanBoneToAvatarBodyPart[humanBodyBone]; + var targetJoint = retargetingLayer.GetOriginalJoint(humanBodyBone); + + // Make sure body part passes mask, and bone's position should be updated. + if (retargetingLayer.CustomPositionsToCorrectLateUpdateMask != null && + !retargetingLayer.CustomPositionsToCorrectLateUpdateMask.GetHumanoidBodyPartActive(bodyPart)) + { + continue; + } + var adjustment = retargetingLayer.GetFindAdjustment(humanBodyBone); + if (!retargetingLayer.GetShouldUpdatePositionOfBone(humanBodyBone)) + { + continue; + } + + var currentTargetPosition = targetJoint.position; + // Make sure the joint position is valid before fixing it. + if (!RiggingUtilities.IsFiniteVector3(currentTargetPosition)) + { + continue; + } + + var rtWeight = Weight * retargetingLayer.RetargetingConstraint.weight; + var rotationTweak = retargetingLayer.GetRotationTweak(humanBodyBone); + + var bodySectionOfJoint = + OVRUnityHumanoidSkeletonRetargeter.OVRHumanBodyBonesMappings.BoneToBodySection[humanBodyBone]; + bool isLeftHandFingersOrWrist = + bodySectionOfJoint == OVRUnityHumanoidSkeletonRetargeter.OVRHumanBodyBonesMappings.BodySection.LeftHand || + humanBodyBone == HumanBodyBones.LeftHand; + bool isRightHandFingersOrWrist = + bodySectionOfJoint == OVRUnityHumanoidSkeletonRetargeter.OVRHumanBodyBonesMappings.BodySection.RightHand || + humanBodyBone == HumanBodyBones.RightHand; + bool isHandJoint = + isLeftHandFingersOrWrist || + isRightHandFingersOrWrist; + bool isShoulderJoint = + humanBodyBone == HumanBodyBones.LeftShoulder || + humanBodyBone == HumanBodyBones.RightShoulder; + + // Pick the correct hand correction weight based on handedness. + var handWeight = Weight * (isLeftHandFingersOrWrist ? + LeftHandCorrectionWeightLateUpdate : + RightHandCorrectionWeightLateUpdate); + + var positionOffset = retargetingLayer.ApplyAnimationConstraintsToCorrectedPositions ? + retargetingLayer.JointPositionAdjustments[(int)humanBodyBone].GetPositionOffset() : Vector3.zero; + var currentOVRBonePosition = ovrBones[i].Transform.position; + var errorRelativeToBodyTracking = (currentOVRBonePosition - currentTargetPosition).sqrMagnitude; + + if (isHandJoint) + { + // If generally correcting positions only and applying hand correction, + // skip positional fix a) if the error relative to body tracking is low, + // b) and the position influence due to IK fixes is small. + if (!handCorrectionTurnedOn && + errorRelativeToBodyTracking < Mathf.Epsilon && + positionOffset.sqrMagnitude < Mathf.Epsilon) + { + continue; + } + + // Exclude any position offsets from IK if correcting hand joints to + // what body tracking indicates they are. + positionOffset = Vector3.Lerp(positionOffset, Vector3.zero, handWeight); + } + + if (isShoulderJoint) + { + CorrectShoulders(targetJoint, + ovrBones[i].Transform.rotation, + targetCorrectionQuaternion, + rotationTweak, + adjustment); + } + + if (adjustment == null) + { + if (handCorrectionTurnedOn && isHandJoint) + { + targetJoint.rotation = + Quaternion.Slerp(targetJoint.rotation, + ovrBones[i].Transform.rotation * targetCorrectionQuaternion * rotationTweak, + handWeight); + } + + if (CorrectPositionsLateUpdate) + { + targetJoint.position = + Vector3.Lerp(currentTargetPosition, + currentOVRBonePosition + positionOffset, rtWeight); + } + } + else + { + if (handCorrectionTurnedOn && isHandJoint) + { + if (!adjustment.DisableRotationTransform) + { + targetJoint.rotation = + Quaternion.Slerp(targetJoint.rotation, + ovrBones[i].Transform.rotation * targetCorrectionQuaternion * rotationTweak, + handWeight); + } + + targetJoint.rotation *= adjustment.RotationChange; + } + + if (CorrectPositionsLateUpdate && !adjustment.DisablePositionTransform) + { + targetJoint.position = + Vector3.Lerp(currentTargetPosition, + currentOVRBonePosition + positionOffset, rtWeight); + } + } + } + } + + /// + /// Correct the shoulders rotation to not be restricted by muscle space. + /// + private void CorrectShoulders(Transform targetJoint, + Quaternion boneRotation, + Quaternion correctionQuaternion, + Quaternion rotationTweak, + OVRUnityHumanoidSkeletonRetargeter.JointAdjustment adjustment) + { + // Restore the child transform when correcting shoulders. + var childJoint = targetJoint.GetChild(0); + var childAffineTransform = new AffineTransform + { + rotation = childJoint != null ? childJoint.rotation : Quaternion.identity, + translation = childJoint != null ? childJoint.position : Vector3.zero + }; + var targetWeight = adjustment != null && adjustment.DisableRotationTransform ? + 0.0f : ShoulderCorrectionWeightLateUpdate; + var rotationChange = adjustment?.RotationChange ?? Quaternion.identity; + targetJoint.rotation = + Quaternion.Slerp(targetJoint.rotation, + boneRotation * correctionQuaternion * rotationTweak, + targetWeight) * + rotationChange; + + if (childJoint != null) + { + childJoint.SetPositionAndRotation(childAffineTransform.translation, + childAffineTransform.rotation); + } + } + + } +} diff --git a/Runtime/Scripts/RetargetingProcessing/RetargetingProcessorCorrectBones.cs.meta b/Runtime/Scripts/RetargetingProcessing/RetargetingProcessorCorrectBones.cs.meta new file mode 100644 index 00000000..24d069ae --- /dev/null +++ b/Runtime/Scripts/RetargetingProcessing/RetargetingProcessorCorrectBones.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 99f3c86fa39b08a438ed987947aa34c7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/RetargetingProcessing/RetargetingProcessorCorrectHand.cs b/Runtime/Scripts/RetargetingProcessing/RetargetingProcessorCorrectHand.cs new file mode 100644 index 00000000..b42a89da --- /dev/null +++ b/Runtime/Scripts/RetargetingProcessing/RetargetingProcessorCorrectHand.cs @@ -0,0 +1,206 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using Oculus.Interaction; +using Oculus.Interaction.Input; +using System.Collections.Generic; +using UnityEngine; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// Retargeting processor used to fix the arm via an IK algorithm so that the retargeted hand position matches + /// the tracked hand position. + /// + [CreateAssetMenu(fileName = "Correct Hand", menuName = "Movement Samples/Data/Retargeting Processors/Correct Hand", order = 1)] + public sealed class RetargetingProcessorCorrectHand : RetargetingProcessor + { + /// + /// The types of IK available to be used. + /// + public enum IKType + { + None, + CCDIK + } + + /// + /// The hand that this is correcting. + /// + [SerializeField] + private Handedness _handedness = Handedness.Left; + /// + public Handedness Handedness + { + get => _handedness; + set => _handedness = value; + } + + /// + /// The type of IK that should be applied to modify the arm bones toward the + /// correct hand target. + /// + [Tooltip(RetargetingLayerTooltips.HandIKType)] + [SerializeField] + private IKType _handIKType = IKType.None; + /// + public IKType HandIKType + { + get => _handIKType; + set => _handIKType = value; + } + + /// + /// The maximum stretch for the hand to reach the target position that is allowed. + /// + [Tooltip(RetargetingLayerTooltips.MaxHandStretch)] + [SerializeField] + private float _maxHandStretch = 0.01f; + /// + public float MaxHandStretch + { + get => _maxHandStretch; + set => _maxHandStretch = value; + } + + /// + /// The maximum stretch for the shoulder to help the hand reach the target position that is allowed. + /// + [Tooltip(RetargetingLayerTooltips.MaxHandStretch)] + [SerializeField] + private float _maxShoulderStretch = 0.1f; + /// + public float MaxShoulderStretch + { + get => _maxShoulderStretch; + set => _maxShoulderStretch = value; + } + + /// + /// The maximum distance between the resulting position and target position that is allowed. + /// + [Tooltip(RetargetingLayerTooltips.IKTolerance)] + [SerializeField, ConditionalHide("_handIKType", IKType.CCDIK)] + private float _ikTolerance = 1e-6f; + /// + public float IKTolerance + { + get => _ikTolerance; + set => _ikTolerance = value; + } + + /// + /// The maximum number of iterations allowed for the IK algorithm. + /// + [Tooltip(RetargetingLayerTooltips.IKIterations)] + [SerializeField, ConditionalHide("_handIKType", IKType.CCDIK)] + private int _ikIterations = 10; + /// + public int IKIterations + { + get => _ikIterations; + set => _ikIterations = value; + } + + private Transform[] _armBones; + private Vector3 _originalHandPosition; + + /// + public override void CopyData(RetargetingProcessor source) + { + base.CopyData(source); + var sourceCorrectHand = source as RetargetingProcessorCorrectHand; + if (sourceCorrectHand == null) + { + Debug.LogError($"Failed to copy properties from {source.name} processor to {name} processor"); + return; + } + _handedness = sourceCorrectHand.Handedness; + _handIKType = sourceCorrectHand.HandIKType; + _ikTolerance = sourceCorrectHand.IKTolerance; + _ikIterations = sourceCorrectHand.IKIterations; + } + + /// + public override void SetupRetargetingProcessor(RetargetingLayer retargetingLayer) + { + // Skip the finger bones. + var armBones = new List(); + var animator = retargetingLayer.GetAnimatorTargetSkeleton(); + + // We iterate from the jaw downward, as the first bone is the effector, which is the hand. + // Hand -> Lower Arm -> Upper Arm -> Shoulder. + for (var i = HumanBodyBones.Jaw; i >= HumanBodyBones.Hips; i-- ) + { + var boneTransform = animator.GetBoneTransform(i); + if (boneTransform == null) + { + continue; + } + + if ((Handedness == Handedness.Left && + BoneMappingsExtension.HumanBoneToAvatarBodyPart[i] == AvatarMaskBodyPart.LeftArm) || + (Handedness == Handedness.Right && + BoneMappingsExtension.HumanBoneToAvatarBodyPart[i] == AvatarMaskBodyPart.RightArm)) + { + armBones.Add(boneTransform); + } + } + _armBones = armBones.ToArray(); + } + + /// + public override void PrepareRetargetingProcessor(RetargetingLayer retargetingLayer, IList ovrBones) + { + _originalHandPosition = _armBones[0].position; + } + + /// + public override void ProcessRetargetingLayer(RetargetingLayer retargetingLayer, IList ovrBones) + { + var isFullBody = retargetingLayer.GetSkeletonType() == OVRSkeleton.SkeletonType.FullBody; + var leftHandWristIndex = isFullBody ? (int)OVRSkeleton.BoneId.FullBody_LeftHandWrist : + (int)OVRSkeleton.BoneId.Body_LeftHandWrist; + var rightHandWristIndex = isFullBody ? (int)OVRSkeleton.BoneId.FullBody_RightHandWrist : + (int)OVRSkeleton.BoneId.Body_RightHandWrist; + + if ((Handedness == Handedness.Left && + ovrBones.Count < leftHandWristIndex) || + (Handedness == Handedness.Right && + ovrBones.Count < rightHandWristIndex)) + { + return; + } + + var targetHand = ovrBones[Handedness == Handedness.Left ? + leftHandWristIndex : + rightHandWristIndex]?.Transform; + if (targetHand == null) + { + return; + } + + var handBone = _armBones[0]; + handBone.position = _originalHandPosition; + var handRotation = handBone.rotation; + Vector3 targetPosition = Vector3.Lerp(handBone.position, targetHand.position, Weight); + bool solvedIK = false; + if (Weight > 0.0f) + { + if (HandIKType == IKType.CCDIK) + { + solvedIK = AnimationUtilities.SolveCCDIK(_armBones, targetPosition, IKTolerance, IKIterations); + } + } + handBone.position = Vector3.MoveTowards(handBone.position, targetPosition, MaxHandStretch); + handBone.rotation = handRotation; + + if (!solvedIK && MaxShoulderStretch > 0.0f) + { + var shoulderStretchDirection = targetPosition - handBone.position; + var shoulderStretchMagnitude = Mathf.Clamp(shoulderStretchDirection.magnitude, 0, MaxShoulderStretch); + var shoulderStretchVector = shoulderStretchDirection.normalized * shoulderStretchMagnitude; + _armBones[^1].position += shoulderStretchVector; + } + } + } +} diff --git a/Runtime/Scripts/RetargetingProcessing/RetargetingProcessorCorrectHand.cs.meta b/Runtime/Scripts/RetargetingProcessing/RetargetingProcessorCorrectHand.cs.meta new file mode 100644 index 00000000..6aafcded --- /dev/null +++ b/Runtime/Scripts/RetargetingProcessing/RetargetingProcessorCorrectHand.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e245a3cf228c72d4ab693be869f73596 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/SkeletonProcessing/SkeletonHandAdjustment.cs b/Runtime/Scripts/SkeletonProcessing/SkeletonHandAdjustment.cs index d62ab1b6..e523524a 100644 --- a/Runtime/Scripts/SkeletonProcessing/SkeletonHandAdjustment.cs +++ b/Runtime/Scripts/SkeletonProcessing/SkeletonHandAdjustment.cs @@ -7,7 +7,7 @@ using System.Collections.Generic; using UnityEngine; -namespace Oculus.Movement.Experimental.Effects.SkeletonPostprocess +namespace Oculus.Movement.AnimationRigging { /// /// A filter for skeleton data that will apply a hand pose. diff --git a/Runtime/Scripts/SkeletonProcessing/SkeletonProcessAggregator.cs b/Runtime/Scripts/SkeletonProcessing/SkeletonProcessAggregator.cs index 4dde7be0..350e851d 100644 --- a/Runtime/Scripts/SkeletonProcessing/SkeletonProcessAggregator.cs +++ b/Runtime/Scripts/SkeletonProcessing/SkeletonProcessAggregator.cs @@ -225,18 +225,48 @@ public virtual void ProcessSkeleton(OVRSkeleton skeleton) } } + /// + /// Adds a to the list + /// public void AddProcessor(IOVRSkeletonProcessor processor) { _skeletonProcessors.Add(new Item(processor)); } + /// + /// Removes the given from the list + /// public void RemoveProcessor(IOVRSkeletonProcessor processor) { int index = _skeletonProcessors.FindIndex(item => item.IProcessor == processor); if (index >= 0) { _skeletonProcessors.RemoveAt(index); +#if UNITY_EDITOR + UnityEditor.EditorUtility.SetDirty(this); +#endif + } + } + + /// + /// Removes the given from the list, if it is valid + /// + public void RemoveProcessor(Component processorComponent) + { + IOVRSkeletonProcessor processor = processorComponent as IOVRSkeletonProcessor; + if (processor != null) + { + RemoveProcessor(processor); } } + + /// + /// Removes the in this Transform from the list + /// + public void RemoveProcessorsInTransform(Transform processorObject) + { + IOVRSkeletonProcessor[] processors = processorObject.GetComponents(); + Array.ForEach(processors, p => RemoveProcessor(p)); + } } } diff --git a/Runtime/Scripts/SkeletonProcessing/SkeletonTranslateProcessor.cs b/Runtime/Scripts/SkeletonProcessing/SkeletonTranslateProcessor.cs new file mode 100644 index 00000000..cda132ba --- /dev/null +++ b/Runtime/Scripts/SkeletonProcessing/SkeletonTranslateProcessor.cs @@ -0,0 +1,126 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using System; +using Oculus.Movement.Utils; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; + +namespace Oculus.Movement.AnimationRigging +{ + /// + /// Use this script to pull the skeleton's bones to follow this transform. + /// If a tracked skeleton's rigged-mesh transform is stationary, this script + /// will translate the skeleton's apparent position/rotation to this object. + /// + /// More context: + /// If a rigged mesh is stationary, but the OVRCameraRig is moving, put this + /// script on an object moving with the OVRCameraRig, and have the + /// SkeletonPostprocessing of the retargeting layer use this script's + /// SkeletonPostprocess function + /// + public class SkeletonTranslateProcessor : MonoBehaviour, IOVRSkeletonProcessor + { + /// + /// Module for updating objects that care if this processor is working + /// + [System.Serializable] + public class NotifyOnChange + { + /// + /// Notifies that + /// should change when this object adjusts bone positioning behavior. + /// + public SkeletonHandAdjustment[] hands; + /// + /// The bone-containing animator that follows the player transform + /// or moves back to it's neutral position/rotation. + /// + public TransformsFollowMe AlternativeCharacterMover; + public UnityEvent OnEnable; + public UnityEvent OnDisable; + + public void Enable() + { + OnEnable.Invoke(); + System.Array.ForEach(hands, h => h.HandsAreOffset = true); + if (AlternativeCharacterMover != null) + { + AlternativeCharacterMover.SetTransformsToZero(); + AlternativeCharacterMover.enabled = false; + } + } + + public void Disable() + { + OnDisable.Invoke(); + System.Array.ForEach(hands, h => h.HandsAreOffset = false); + if (AlternativeCharacterMover != null) + { + AlternativeCharacterMover.enabled = true; + } + } + } + + /// + /// Which transform will offset the skeleton passed into this skeleton processor + /// + [SerializeField] private Transform _transformOffsetForSkeleton; + [SerializeField] private NotifyOnChange _notifyOnStateChange = new NotifyOnChange(); + + public bool EnableSkeletonProcessing { get => enabled; set => enabled = value; } + + public string SkeletonProcessorLabel => name; + + private void OnEnable() + { + _notifyOnStateChange.Enable(); + } + + private void OnDisable() + { + _notifyOnStateChange.Disable(); + } + + private void Reset() + { + _transformOffsetForSkeleton = transform; + } + + /// + /// Start method ensures toggle in Unity editor for this script + /// + protected void Start() + { + if (_transformOffsetForSkeleton == null) + { + _transformOffsetForSkeleton = transform; + } + } + + private void OnApplicationFocus(bool hasFocus) + { + enabled = hasFocus; + } + + /// + /// Applies transform position and rotation to the given OVRSkeleton data + /// + public void ProcessSkeleton(OVRSkeleton skeleton) + { + IList bones = skeleton != null ? skeleton.Bones : null; + if (bones == null || bones.Count == 0 || !enabled) + { + return; + } + Vector3 p = _transformOffsetForSkeleton.position; + Quaternion r = _transformOffsetForSkeleton.rotation; + for (int i = 0; i < bones.Count; ++i) + { + Transform bone = bones[i].Transform; + bone.position = p + r * bone.position; + bone.rotation = r * bone.rotation; + } + } + } +} diff --git a/Runtime/Scripts/SkeletonProcessing/SkeletonTranslateProcessor.cs.meta b/Runtime/Scripts/SkeletonProcessing/SkeletonTranslateProcessor.cs.meta new file mode 100644 index 00000000..d1fe9b75 --- /dev/null +++ b/Runtime/Scripts/SkeletonProcessing/SkeletonTranslateProcessor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ba18dbd753781ca4b8d165a694902ead +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Tooltips.cs b/Runtime/Scripts/Tooltips.cs index 5a7f1ce4..b7491e32 100644 --- a/Runtime/Scripts/Tooltips.cs +++ b/Runtime/Scripts/Tooltips.cs @@ -224,7 +224,7 @@ public static class RecalculateNormalsTooltips public const string RecalculateIndependently = "Allows recalculate normals to be calculated independently on LateUpdate, instead of being driven from DriveSkeletalLateUpdateLogic."; - public const string DuplicateLayerName = + public const string DuplicateLayer = "The visible layer of the duplicate mesh with recalculate normals."; public const string HiddenMeshLayerName = @@ -775,6 +775,27 @@ public static class FingerOffset public const string FingerOffsets = "Offsets that will be applied to the fingers."; + + public const string Animator = + "The character's animator."; + + public const string Skeleton = + "The source skeleton."; + + public const string LeftHand = + "The character's left hand bone."; + + public const string RightHand = + "The character's right hand bone."; + + public const string InterpolatedFingers = + "Possible metacarpal bones."; + + public const string Fingers = + "All finger joints."; + + public const string CalculateFingerData = + "If finger data has been calculated or not."; } public static class DeformationLogicTooltips @@ -917,10 +938,6 @@ public static class HipPinningNotificationTooltips public static class DeformationDataTooltips { - public const string Skeleton = - "[Deprecated] The OVR Skeleton component. " + - "NOTE: not recommended as this was experimental."; - public const string CustomSkeleton = "The OVRCustomSkeleton component for the character."; @@ -930,44 +947,62 @@ public static class DeformationDataTooltips public const string SpineTranslationCorrectionType = "The type of spine translation correction that should be applied."; - public const string ApplyToArms = - "Apply deformation on arms."; + public const string SpineAlignmentWeight = + "The weight for the spine alignment."; - public const string ApplyToHands = - "Apply deformation on hands."; + public const string ChestAlignmentWeight = + "The weight for the chest alignment."; - public const string CorrectSpineOnce = - "Allows the spine correction to run only once, assuming the skeleton's positions don't get updated multiple times."; + public const string LeftShoulderWeight = + "The weight for the deformation on the left shoulder."; - public const string MoveTowardsArms = - "If true, the arms will move towards the deformation target position."; + public const string RightShoulderWeight = + "The weight for the deformation on the right shoulder."; + + public const string LeftArmWeight = + "The weight for the deformation on the left arm."; + + public const string RightArmWeight = + "The weight for the deformation on the right arm."; + + public const string LeftHandWeight = + "The weight for the deformation on the left hand."; - public const string SnapThreshold = - "The distance between the target and current position before the bone snaps to the target position."; + public const string RightHandWeight = + "The weight for the deformation on the right hand."; - public const string ArmWeight = - "The weight for the deformation on arms."; + public const string LeftLegWeight = + "The weight for the deformation on the left leg."; - public const string HandWeight = - "The weight for the deformation on hands."; + public const string RightLegWeight = + "The weight for the deformation on the right leg."; - public const string ArmMoveSpeed = - "The move towards speed for the arms."; + public const string LeftToesWeight = + "The weight for the deformation on the left toe."; + + public const string RightToesWeight = + "The weight for the deformation on the right toe."; + + public const string AlignFeetWeight = + "Weight used for feet alignment."; public const string HipsToHeadBones = "Array of transform bones from hips to head."; + public const string HipsToHeadBoneTargets = + "Array of transform bone targets from hips to head."; + public const string LeftArmData = "Left arm data."; - public const string LeftArmDataInitialized = - "Whether the left arm data is initialized or not."; - public const string RightArmData = "Right arm data."; - public const string RightArmDataInitialized = - "Whether the right arm data is initialized or not."; + public const string LeftLegData = + "Left leg data."; + + public const string RightLegData = + "Right leg data."; public const string BonePairData = "All bone pair data."; @@ -977,6 +1012,15 @@ public static class DeformationDataTooltips public const string HipsToHeadDistance = "Distances between head and hips."; + + public const string HipsToFootDistance = + "Distances between hips and feet."; + } + + public static class FullBodyDeformationConstraintToolTips + { + public const string CalculateBoneData = + "Allows calculating bone data via a button."; } public static class HipPinningDataTooltips @@ -984,6 +1028,9 @@ public static class HipPinningDataTooltips public const string Skeleton = "The OVR Skeleton component."; + public const string Animator = + "Animator component."; + public const string HipPinningTargets = "The list of hip pinning targets in the scene."; @@ -997,6 +1044,36 @@ public static class HipPinningDataTooltips "The range from the hip pinning target before hip pinning is disabled."; } + public static class CaptureAnimationDataTooltips + { + public const string ConstraintAnimator = + "The animator used by the constraint."; + + public const string TargetAnimatorLayer = + "The target animator layer to capture animations on."; + + public const string ReferencePoseTime = + "The normalized time from which the reference pose should be captured from."; + + public const string ReferencePose = + "The bone data for the reference pose."; + + public const string CurrentPose = + "The bone data for the current pose."; + } + + public static class PlaybackAnimationDataTooltips + { + public const string AnimationPlaybackType = + "The animation playback type."; + + public const string SourceConstraint = + "The capture animation constraint to source animation data from."; + + public const string AvatarMask = + "The avatar mask for masking the animation."; + } + public static class AnimationRigSetupTooltips { public const string Skeleton = @@ -1217,24 +1294,42 @@ public static class RetargetingLayerTooltips "Allow correcting rotations in LateUpdate. This can produce more " + "accurate hands, for instance."; + public const string ShoulderCorrectionWeightLateUpdate = + "Allow correcting shoulder transforms in LateUpdate. This can produce more " + + "accurate shoulders, for instance."; + + public const string HandIKType = + "The type of IK that should be applied to modify the arm bones toward the " + + "correct hand target."; + + public const string MaxHandStretch = + "The maximum stretch for the hand to reach the target position that is allowed."; + + public const string MaxShoulderStretch = + "The maximum stretch for the shoulder to help the hand reach the target position that is allowed."; + + public const string IKTolerance = + "The maximum distance between the resulting position and target position that is allowed."; + + public const string IKIterations = + "The maximum number of iterations allowed for the IK algorithm.."; + public const string ApplyAnimationConstraintsToCorrectedPositions = "Apply position offsets done by animation rigging constraints for corrected " + "positions. Due to the limited motion of humanoid avatars, this should be set if any " + "animation rigging constraints are applied after the retargeting job runs."; - public const string BonesToExcludeDuringCorrection = - "Bones to exclude when correcting positions. " + - "This can be necessary if you use a constraint that affects a specific bone, " + - "and the correction mask might include it."; - public const string EnableTrackingByProxy = "Create proxy transforms that track the skeletal bones. If the " + "skeletal bone transforms change, that won't necessitate creating new " + "proxy transforms in most cases."; - public const string RetargetingAnimationContraint = + public const string RetargetingAnimationConstraint = "Related retargeting constraint."; + public const string RetargetingProcessors = + "List of retargeting processors, which run in late update after retargeting and animation rigging."; + public const string JointRotationTweaks = "Joint rotation tweaks array."; } @@ -1296,6 +1391,9 @@ public static class RetargetedBoneTargetTooltips public const string Target = "The target transform to update with the retargeted bone data."; + + public const string PositionOffset = + "The position offset from the target transform."; } public const string RetargetedBoneTargets = @@ -1452,4 +1550,262 @@ public static class ActivateToggleTooltips public const string Set_ObjectsToActivate = "Objects that will activate and deactivate with this state"; } + + public static class TransformsFollowTooltips + { + public const string FollowingTransforms = + "Other Transforms that will follow this Transform"; + } + + public static class AnimationConstraintMaskerTooltips + { + public const string Mask = + "Section of body where body tracking continues animating while activity triggers"; + + public const string ActivityExitTime = + "Seconds of inactivity till entire animator follows body tracking again"; + + public const string Animator = + "The body being animated"; + + public const string ConstraintsToDeactivate = + "Partial names of constraints to deactivate when animation masking is active. For" + + "example, {\"_Leg\"} will disable all rig constraints with \"_Leg\" in the name."; + } + + public static class AnimationConstraintBlenderTooltips + { + public const string ActivityExitTime = + "Seconds of inactivity till entire animator follows body tracking again."; + + public const string Animator = + "The body being animated."; + + public const string ConstraintsToDeactivate = + "Constraints to deactivate when animation is active."; + + public const string ConstraintsToBlend = + "Constraints to blend when animation is active."; + } + + public static class AnimatorHooksTooltips + { + public const string AutoAssignAnimatorsFromChildren = + "If true, Animators field will be dynamically set"; + + public const string Animators = + "Animators who should receive signals to animate"; + } + + public static class JumpingRigidbodyTooltips + { + public const string Rigidbody = + "Should reference the main Rigidbody of the character controller"; + + public const string TargetJumpHeight = + "How many units high the character controller should jump"; + + public const string CanOnlyJumpOnGround = + "Prevents jump impulse if the character controller is not grounded"; + + public const string JumpEvents = + "Callbacks to trigger at certain stages of jumping"; + + public const string FloorLayerMask = + "These collision layers will be checked for collision as valid ground to jump from"; + } + + public static class MovementSDKLocomotionTooltips + { + public const string Rigidbody = + "Should reference the main Rigidbody of the character controller"; + + public const string Collider = + "The Collider that counts as this character's feet"; + + public const string EnableMovement = + "Joystick will move forward and backward, as well as strafe left and right at Speed"; + + public const string EnableRotation = + "Joystick will turn according to RotationAngle"; + + public const string ScaleInputByActualVelocity = + "If Input given to input events reflects obstacles hampering velocity"; + + public const string RotationAngle = + "Default snap turn amount."; + + public const string RotationPerSecond = + "Default turn speed, when rotating smoothly"; + + public const string Speed = + "How quickly the controller will move with fully extended joystick"; + + public const string CameraRig = + "The Camera Rig"; + + public const string JoystickEvents = + "Callbacks to trigger on certain joystic input events"; + } + + public static class ReappearAfterFallTooltips + { + public const string Rigidbody = + "Should reference the main Rigidbody of the character controller"; + + public const string MinimumY = + "When _rigidbody.transform.position.y is lower than this value, restart it"; + + } + + public static class SphereColliderFollowerTooltips + { + public const string Collider = + "Which sphere is being followed by this graphic?"; + } + + public static class SphereColliderStaysBelowHipsTooltips + { + public const string Collider = + "The sphere collider at the foot of the body tracked user"; + + public const string CharacterRoot = + "Root of the character object, which has specially named body tracked bones as children somewhere in it's hierarchy"; + + public const string TrackedHipTransform = + "Transform that move when the player moves in real life."; + + public const string TrackingToes = + "Transforms belonging to feet, at the ground, that move when the animated character moves."; + + public const string ColliderFollowsToes = + "If true, the sphere collider will be influenced by the y-position of toes"; + + public const string FloorLayerMask = + "Collision layers to avoid merging foot collision area into (due to animation or body tracking)"; + + public const string ExpectedBodyCapsule = + "Capsule volume where the body is expected, should be a trigger"; + } + + public static class ActivatableStateSetTooltips + { + public const string Set = + "Set of activatable states"; + + public const string Index = + "Index of current activatable state"; + + public const string MinimumActivationDuration = + "Minimum number of seconds a state can count as active. Exit time."; + + public const string OnTimerChange = + "Callback to notify as the activation timeout timer advances"; + } + + public static class OVRInputBindingTooltips + { + public const string ButtonBindings = + "Button state listeners"; + + public const string JoystickBindings = + "Joysticks state listeners"; + + public const string OnUpdate = + "Check input bindings on Update"; + + public const string OnFixedUpdate = + "Check input bindings on FixedUpdate"; + } + + public static class UnityInputBindingTooltips + { + public const string ButtonJump = + "Triggered by Input.GetButton(\"Jump\")"; + + public const string AxisHorizontalVertical = + "Triggered by Input.GetAxis() \"Hoizontal\" and \"Vertical\""; + + public const string KeyBindings = + "Key bindings listening to Input.GetKey(KeyCode)"; + } + + public static class ReorderInHierarchyTooltips + { + public const string HowToReorder = + "How to reorder this transform in the hierarchy"; + + public const string Target = + "Which object to reorder in relation to"; + } + + public static class OVRBodyTrackingStateListenerTooltips + { + public const string StateListeners = + "Body tracking state listeners"; + + public const string MaxWaitTimeForBodyTracking = + "How many seconds before body tracking times out and is considered disconnected"; + } + + public static class ToggleConstraintsSkeletonStateTooltips + { + public const string Constraints = + "Constraints to control the weight of."; + + public const string Skeleton = + "The skeleton object that needs to be tracked."; + } + + public static class BodyTrackingFidelityToggleTooltips + { + public const string CurrentFidelity = + "The current fidelity set."; + + public const string WorldText = + "The text to update after body tracking fidelity is changed."; + } + + public static class SuggestBodyTrackingCalibrationButtonTooltips + { + public const string WorldText = + "The text to modify once height is modified."; + + public const string Height = + "The height to set in meters."; + + public const string CalibrateOnStartup = + "Allows calibration on startup."; + } + + public static class BlendHandConstraintsFullBodyTooltips + { + public const string Constraints = + "Constraints to control the weight of."; + + public const string RetargetingLayer = + "The character's retargeting layer."; + + public const string BoneIdToTest = + "Bone ID, usually the wrist. Can be modified depending " + + "on the skeleton used."; + + public const string HeadTransform = + "Head transform to do distance checks against."; + + public const string AutoAddTo = + "MonoBehaviour to add to."; + + public const string ConstraintsMinDistance = + "Distance where constraints are set to 1.0."; + + public const string ConstraintsMaxDistance = + "Distance where constraints are set to 0.0."; + + public const string BlendCurve = + "Multiplier that influences weight interpolation based on distance."; + + public const string MaxWeight = + "Max constraint weight."; + } } diff --git a/Runtime/Scripts/Tracking/DeformationRig.meta b/Runtime/Scripts/Tracking/DeformationRig.meta new file mode 100644 index 00000000..1c303f15 --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c18e89b2671b24a9f9618b31ab6c9219 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Tracking/DeformationRig/AutoCorrectiveShapeDriver.cs b/Runtime/Scripts/Tracking/DeformationRig/AutoCorrectiveShapeDriver.cs new file mode 100644 index 00000000..5602bf51 --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/AutoCorrectiveShapeDriver.cs @@ -0,0 +1,161 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEngine.Assertions; + +namespace DeformationRig +{ + /// + /// Driver for corrective shapes that automatically finds and drives the appropriate shapes. + /// + /// Only drives correctives that can be derived from already-set driver shapes. Shapes that + /// require the mutation or replacement of driver shapes (i.e. opposing shapes) should use + /// + [ExecuteInEditMode] + public class AutoCorrectiveShapeDriver : MonoBehaviour + { + /// + /// An enumeration of the types of corrective blendshapes that can be driven by this driver. + /// + [Flags] + private enum DriveableTypes + { + /// Required for Unity inspector. + None = 0, + /// A blendshape driven by combining 1 or more driver shapes.. + Combination = 1, + /// A blendshape driven during part of a driver shape signal.. + InBetween = 2, + } + + /// Enum specifying when this driver should update correctives. + private enum UpdateTime + { + /// + /// Don't automatically update correctives. Useful for deactivating the driver or + /// controlling updates manually. + /// + ExternallyDriven, + /// Update correctives during Update(). + Update, + /// Update correctives during LateUpdate(). + LateUpdate, + /// Do not drive the correctives at any time. + Disabled, + } + + /// A simple pairing of a renderer with its configured correctives. + private struct CorrectiveConfig + { + public IBlendshapeInterface BlendshapeInterface; + public List Correctives; + } + + [SerializeField] + [Tooltip("Renderers whose corrective shapes should be driven.")] + private SkinnedMeshRenderer[] _renderers; + + [SerializeField] + [Tooltip("Which shape type or types to drive.")] + private DriveableTypes _drivenShapeTypes = + DriveableTypes.Combination | DriveableTypes.InBetween; + + [SerializeField] + [Tooltip("What lifecycle events this driver should run on.")] + private UpdateTime _updateTime = UpdateTime.LateUpdate; + + private List _perMeshCorrectiveConfigs = null; + + private bool IsDriving(DriveableTypes type) => _drivenShapeTypes.HasFlag(type); + + private bool IsConfigured => _perMeshCorrectiveConfigs is not null; + + private void Awake() + { + Assert.IsNotNull(_renderers); + Configure(); + } + + // Runs when things are changed in editor in EditMode. + private void OnValidate() => Configure(); + + private void Update() => MaybeDriveCorrectives(UpdateTime.Update); + + private void LateUpdate() => MaybeDriveCorrectives(UpdateTime.LateUpdate); + + /// + /// Find all driven shapes and their drivers, and save that information to apply on updates. + /// + [ContextMenu("Configure Driver")] + private void Configure() + { + _perMeshCorrectiveConfigs = _renderers + .Select(renderer => new CorrectiveConfig() + { + BlendshapeInterface = new SkinnedMeshRendererBlendshapeInterface(renderer), + Correctives = NamingSchemes.V0.ParseCorrectives( + GetAllShapeNames(renderer.sharedMesh)), + }) + .ToList(); + } + + /// + /// Gets all blendshape names for a given mesh, stripping a leading geometry name if found. + /// + private List GetAllShapeNames(Mesh mesh) => + Enumerable + .Range(0, mesh.blendShapeCount) + .Select(idx => mesh.GetBlendShapeName(idx)) + .Select( + name => + { + var dotIdx = name.IndexOf("."); + return dotIdx != -1 ? name.Substring(dotIdx + 1) : name; + }) + .Select(name => name.Trim()) + .ToList(); + + /// + /// Drives correctives if the provided update time is the one this driver is configured to + /// update during. Simplifies the update methods above. + /// + private void MaybeDriveCorrectives(UpdateTime updateTime) + { + if (updateTime == _updateTime) + { + DriveCorrectives(); + } + } + + /// + /// Drives correctives. Is a no-op if the driver has not yet been configured. + /// + public void DriveCorrectives() + { + if (!IsConfigured) + { + Debug.LogError("Attempted to drive unconfigured correctives.", this); + return; + } + else if (_updateTime == UpdateTime.Disabled) + { + Debug.LogError("Attempted to drive a disabled correctives driver.", this); + return; + } + + // This would look cleaner as a foreach, but you can't use foreach iterator fields as + // ref arguments. + for (int i = 0; i < _perMeshCorrectiveConfigs.Count; i++) + { + var config = _perMeshCorrectiveConfigs[i]; + foreach (var corrective in config.Correctives) + { + corrective.Apply(config.BlendshapeInterface); + } + } + } + } +} diff --git a/Runtime/Scripts/Tracking/DeformationRig/AutoCorrectiveShapeDriver.cs.meta b/Runtime/Scripts/Tracking/DeformationRig/AutoCorrectiveShapeDriver.cs.meta new file mode 100644 index 00000000..d56626ca --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/AutoCorrectiveShapeDriver.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a4e539bfcfffb47a0b39556956a8b609 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Tracking/DeformationRig/BlendshapeInterfaces.cs b/Runtime/Scripts/Tracking/DeformationRig/BlendshapeInterfaces.cs new file mode 100644 index 00000000..cac8f299 --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/BlendshapeInterfaces.cs @@ -0,0 +1,48 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using DeformationRig.Utils; +using UnityEngine; + +namespace DeformationRig +{ + /// + /// An abstraction over the functionality for getting and setting blendshape weights by index. + /// + /// This provides a nice seam to both improve testability as well as separate the implementation + /// of the deformation rig from the exact driving logic. + /// + public interface IBlendshapeInterface + { + /// + /// Get or set the weight of a blendshape at a given index. The returned value (and the + /// value being set) should be in the range [0, 1]. + /// + public float this[int index] { get; set; } + } + + /// + /// An implementation of IBlendshapeInterface for Unity's SkinnedMeshRenderer. + /// + public class SkinnedMeshRendererBlendshapeInterface : IBlendshapeInterface + { + private SkinnedMeshRenderer _renderer; + + public SkinnedMeshRendererBlendshapeInterface(SkinnedMeshRenderer renderer) + { + _renderer = renderer; + } + + /// + public float this[int index] + { + get + { + return ConversionHelpers.PercentToDecimal(_renderer.GetBlendShapeWeight(index)); + } + set + { + _renderer.SetBlendShapeWeight(index, ConversionHelpers.DecimalToPercent(value)); + } + } + } +} diff --git a/Runtime/Scripts/Tracking/DeformationRig/BlendshapeInterfaces.cs.meta b/Runtime/Scripts/Tracking/DeformationRig/BlendshapeInterfaces.cs.meta new file mode 100644 index 00000000..14edc959 --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/BlendshapeInterfaces.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3372e38b8f7eb4cef88087f1e5d59274 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Tracking/DeformationRig/Combination.cs b/Runtime/Scripts/Tracking/DeformationRig/Combination.cs new file mode 100644 index 00000000..62edcc37 --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/Combination.cs @@ -0,0 +1,28 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using System.Linq; + +namespace DeformationRig +{ + /// + /// Defines a combination target. + /// + public class Combination : ICorrectiveShape + { + /// + /// The blendshape index to be driven on the skinned mesh renderer. + /// + public int DrivenIndex; + + /// + /// The blendshape indices used in calculating the blendshape weight for the driven index. + /// + public int[] DriverIndices; + + /// + public void Apply(IBlendshapeInterface blendshapeInterface) => + blendshapeInterface[DrivenIndex] = DriverIndices + .Select(idx => blendshapeInterface[idx]) + .Aggregate(1f, (cur, next) => cur * next); + } +} diff --git a/Runtime/Scripts/Tracking/DeformationRig/Combination.cs.meta b/Runtime/Scripts/Tracking/DeformationRig/Combination.cs.meta new file mode 100644 index 00000000..ad7ba792 --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/Combination.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2e09db5ac2850408581a5dbbe4251369 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Tracking/DeformationRig/DriverShape.cs b/Runtime/Scripts/Tracking/DeformationRig/DriverShape.cs new file mode 100644 index 00000000..a7894a95 --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/DriverShape.cs @@ -0,0 +1,21 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +namespace DeformationRig +{ + /// + /// A faux-Corrective representing a driver shape. + /// + public class DriverShape : ICorrectiveShape + { + /// + /// The driver and driven index of this shape. + /// + public int Index { get; private set; } + + public DriverShape(int index) => Index = index; + + /// + public void Apply(IBlendshapeInterface blendshapeInterface) => + blendshapeInterface[Index] = blendshapeInterface[Index]; + } +} diff --git a/Runtime/Scripts/Tracking/DeformationRig/DriverShape.cs.meta b/Runtime/Scripts/Tracking/DeformationRig/DriverShape.cs.meta new file mode 100644 index 00000000..b9e87d21 --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/DriverShape.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5f24c914dd4fa443bb1f16e29edf64f1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Tracking/DeformationRig/ICorrectiveShape.cs b/Runtime/Scripts/Tracking/DeformationRig/ICorrectiveShape.cs new file mode 100644 index 00000000..bbbc8b36 --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/ICorrectiveShape.cs @@ -0,0 +1,20 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +namespace DeformationRig +{ + /// + /// An interface describing a corrective shape. + /// + /// A corrective shape generally operates by taking inputs (previously set shape weights) and + /// updating one or more other shapes' weights. All implementers should implement their version + /// of this logic in their override of the Apply method. + /// + public interface ICorrectiveShape + { + /// + /// Calculate the weight of this corrective shape and apply it to the shape (or shapes) + /// it drives. + /// + void Apply(IBlendshapeInterface blendshapeInterface); + } +} diff --git a/Runtime/Scripts/Tracking/DeformationRig/ICorrectiveShape.cs.meta b/Runtime/Scripts/Tracking/DeformationRig/ICorrectiveShape.cs.meta new file mode 100644 index 00000000..d13e7d3e --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/ICorrectiveShape.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5cc40127329d849ee87917d2aea5b73e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Tracking/DeformationRig/InBetween.cs b/Runtime/Scripts/Tracking/DeformationRig/InBetween.cs new file mode 100644 index 00000000..551d472a --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/InBetween.cs @@ -0,0 +1,93 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using System.Collections.Generic; +using System.Linq; +using UnityEngine; + +namespace DeformationRig +{ + /// + /// Defines an in-between. More specifically, defines a single in-between (i.e. jawDrop50) that + /// has a single peak. + /// + public class InBetween : ICorrectiveShape + { + /// + /// Constructs a list of independently usable InBetweens by inferring their influence + /// curves' keyframes based on other Partials for the same driver index. + /// + public static List BuildFromPartials(List partials) + { + var partitionedPartials = partials + .GroupBy(partial => partial.DriverIndex) + .ToDictionary( + grouping => grouping.Key, + grouping => grouping.OrderBy(partial => partial.PeakValue).ToList()); + + var inBetweens = new List(partials.Count); + foreach (var (driverIndex, subshapes) in partitionedPartials) + { + for (int i = 0; i < subshapes.Count; i++) + { + var keyframes = new List(); + keyframes.Add(new Keyframe(0, 0)); + if (i != 0) + { + keyframes.Add(new Keyframe(subshapes[i - 1].PeakValue, 0)); + } + keyframes.Add(new Keyframe(subshapes[i].PeakValue, 1)); + if (i < subshapes.Count - 1) + { + keyframes.Add(new Keyframe(subshapes[i + 1].PeakValue, 0)); + } + keyframes.Add(new Keyframe(1, 0)); + + inBetweens.Add(new InBetween() + { + DriverIndex = driverIndex, + DrivenIndex = subshapes[i].DrivenIndex, + InfluenceCurve = new AnimationCurve(keyframes.ToArray()), + }); + } + } + return inBetweens; + } + + /// + /// The target blendshape index used for calculating the blendshape weight. + /// + public int DriverIndex; + + /// + /// The blendshape index to be driven on the skinned mesh renderer. + /// + public int DrivenIndex; + + /// + /// A curve describing how this inbetween's weight should vary with the driver. + /// + public AnimationCurve InfluenceCurve; + + // InBetweens should be constructed via BuildFromPartials to ensure the correct curves are + // being set for groupings of InBetweens. + private InBetween() { } + + /// + public void Apply(IBlendshapeInterface blendshapeInterface) + { + var driverWeight = blendshapeInterface[DriverIndex]; + blendshapeInterface[DrivenIndex] = InfluenceCurve.Evaluate(driverWeight); + } + + /// + /// Parsed data for a single inbetween (that may belong to a group of in-betweens for a + /// shared driver shape). + /// + public class Partial + { + public int DriverIndex; + public int DrivenIndex; + public float PeakValue; + } + } +} diff --git a/Runtime/Scripts/Tracking/DeformationRig/InBetween.cs.meta b/Runtime/Scripts/Tracking/DeformationRig/InBetween.cs.meta new file mode 100644 index 00000000..4bc75051 --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/InBetween.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e24b9e74344fa4691ac1791b64ee134a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Tracking/DeformationRig/NamingSchemes.cs b/Runtime/Scripts/Tracking/DeformationRig/NamingSchemes.cs new file mode 100644 index 00000000..5174fbe2 --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/NamingSchemes.cs @@ -0,0 +1,312 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using DeformationRig.Utils; +using System; +using System.Linq; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using UnityEngine; + +namespace DeformationRig +{ + /// + /// A naming scheme describes how to parse the various corrective shapes' ICorrectiveShape + /// representations from a list of shape names. + /// + public interface INamingScheme + { + /// + /// Parses all provided shape names looking for known corrective shapes. + /// + /// This list is returned IN ORDER. Meaning, if all correctives are driven in the order they + /// are returned, all dependent blendshapes will have their driver values available when + /// needed. + /// + List ParseCorrectives(List shapeNames); + + /// The human-readable name of this parsing version. + string VersionName { get; } + } + + /// + /// Available naming schemes to use when parsing the names of corrective shapes. + /// + public static class NamingSchemes + { + private class NamingSchemeV0 : INamingScheme + { + /// + /// Regex describing the name of a directly driven shape. + /// + /// Group 0, Capture 0: Full matching shape name (unused) + /// Group 1, Capture 0: Shape name + /// Group 2, Capture 0: Suffix (caps expected), prefixed with underscore (unused) + /// Group 3, Capture 0: Suffix (caps expected) + /// + private static readonly Regex DRIVER_PATTERN = new Regex( + @"^([a-zA-Z]{4,}|pc_[0-9]{1,2})(_([A-Z]{1,2}))?$"); + + /// + /// Regex describing the name of a directly driven shape (alternate pattern, used by + /// Mobile Genesis). + /// + /// Group 0, Capture 0: Full matching shape name (unused) + /// Group 1, Capture 0: Shape name + /// + private static readonly Regex ALT_DRIVER_PATTERN = new Regex( + @"^(Blendshape_[0-9]+_0)$"); + + /// + /// Regex describing the name of an inbetween shape. + /// + /// Group 0, Capture 0: Full matching shape name (unused) + /// Group 1, Capture 0: Shape name without value + /// Group 2, Capture 0: Value + /// Group 3, Capture 0: Suffix, prefixed with underscore (unused) + /// Group 4, Capture 0: Suffix + /// + private static readonly Regex IN_BETWEEN_PATTERN = new Regex( + @"^([a-zA-Z]+)([0-9]{2})(_([A-Z]{1,2}))?$"); + + /// + /// Regex describing the name of a combination shape. + /// + /// Group 0, Capture 0: Full matching shape name (unused) + /// Group 1, Capture 0: All non-suffix elements, still joined + /// Group 2, Capture N: Combo element N+1 prefixed with underscore + /// Example: full shape name: mesh.foo_bar_baz, N = 0, returns "_bar" + /// Group 3, Capture 0: Suffix, prefixed with underscore (unused) + /// Group 4, Capture 0: Suffix + /// + private static readonly Regex COMBINATION_PATTERN = new Regex( + @"^([a-zA-Z0-9]{4,25}(_[a-zA-Z0-9]{4,25})+)(_([A-Z]{1,2}))?$"); + + public string VersionName => "V0"; + + /// + public List ParseCorrectives(List shapeNames) + { + var drivers = new List(); + var combinations = new List(); + var partialInBetweens = new List(); + + for (int shapeIdx = 0; shapeIdx < shapeNames.Count; shapeIdx++) + { + if (TryParseDriver(shapeNames, shapeIdx, out var driver)) + { + drivers.Add(driver); + } + else if (TryParseCombination(shapeNames, shapeIdx, out var combination)) + { + combinations.Add(combination); + } + else if (TryParseInBetween(shapeNames, shapeIdx, out var inBetween)) + { + partialInBetweens.Add(inBetween); + } + else + { + Debug.LogWarning($"Found unparseable shape name [{shapeNames[shapeIdx]}]."); + } + } + + var inBetweens = InBetween.BuildFromPartials(partialInBetweens); + var ret = new List( + drivers.Count + combinations.Count + inBetweens.Count); + ret.AddRange(drivers); + ret.AddRange(inBetweens); + ret.AddRange(combinations); + return ret; + } + + private static bool TryParseDriver( + List shapeNames, int index, out DriverShape driver) + { + var shapeName = shapeNames[index]; + var match = DRIVER_PATTERN.Match(shapeName); + if (match.Success) + { + if (match.Groups.Count < 4) + { + throw new MissingMemberException( + $"Matched a standard driver shape [{shapeName}], but was missing " + + "parsed data."); + } + + driver = new DriverShape(index); + return true; + } + + match = ALT_DRIVER_PATTERN.Match(shapeName); + if (match.Success) + { + if (match.Groups.Count < 2) + { + throw new MissingMemberException( + $"Matched an alt driver shape [{shapeName}], but was missing parsed " + + "data."); + } + + driver = new DriverShape(index); + return true; + } + + driver = null; + return false; + } + + private static bool TryParseCombination( + List shapeNames, int index, out Combination combination) + { + var shapeName = shapeNames[index]; + var match = COMBINATION_PATTERN.Match(shapeName); + if (!match.Success) + { + combination = null; + return false; + } + else if (match.Groups.Count < 5) + { + throw new MissingMemberException( + $"Matched a combination shape [{shapeName}], but was missing parsed data."); + } + + var elements = match.Groups[1].Captures[0].ToString().Split("_"); + + var suffix = ""; + if (match.Groups[4].Captures.Count > 0) + { + suffix = match.Groups[4].Captures[0].ToString(); + } + + var driverIndices = elements.Select(element => + { + var idx = FindShape(shapeNames, element, suffix); + if (idx == -1) + { + throw new IndexOutOfRangeException( + $"Invalid named combo: {shapeName}. " + + $"Could not find driver shape {element} with suffix '{suffix}'"); + } + return idx; + }) + .ToArray(); + + combination = new Combination() + { + DrivenIndex = index, + DriverIndices = driverIndices, + }; + return true; + } + + private static bool TryParseInBetween( + List shapeNames, int index, out InBetween.Partial inBetween) + { + var shapeName = shapeNames[index]; + Match match = IN_BETWEEN_PATTERN.Match(shapeName); + if (!match.Success) + { + inBetween = null; + return false; + } + + if (match.Groups.Count < 5) + { + throw new MissingMemberException( + $"Matched an in between shape [{shapeName}], but was missing parsed data."); + } + + var driverName = match.Groups[1].Captures[0].ToString(); + if (!Int32.TryParse(match.Groups[2].Captures[0].ToString(), out int peakValue)) + { + throw new ArgumentException( + $"Could not parse value from in between {shapeName}"); + } + else if (peakValue <= 0 || peakValue >= 100) + { + throw new ArgumentException( + $"Parsed value in {shapeName} is outside of (0, 100): {peakValue}"); + + } + + var suffix = ""; + if (match.Groups[4].Captures.Count > 0) + { + suffix = match.Groups[4].Captures[0].ToString(); + } + + var driverIndex = FindShape(shapeNames, driverName, suffix); + if (driverIndex == -1) + { + throw new IndexOutOfRangeException( + $"Invalid named in between: {shapeName}. " + + $"Could not find driver shape {driverName} with suffix '{suffix}'"); + } + + inBetween = new InBetween.Partial() + { + DrivenIndex = index, + DriverIndex = driverIndex, + PeakValue = ConversionHelpers.PercentToDecimal(peakValue), + }; + return true; + } + + /// + /// Searches a list of shape names for a given shape, trying different combinations of + /// potential suffixes if the shape is not immediately found. + /// + /// TODO: This could be made more elegant to actually construct all possible suffixes + /// from a suffix of arbitrary length, but when we expect a suffix to be 0-2 characters, + /// manually checking each is probably fine. If we start having 3 character suffixes, + /// this should be replaced with the elegant version. + /// + private static int FindShape( + List shapeNames, string shapeName, string fullSuffix) + { + var driverIndex = shapeNames.IndexOf(shapeName); + if (driverIndex != -1) + { + return driverIndex; + } + + if (fullSuffix.Length > 2) + { + throw new ArgumentException($"Expected suffix of length 0-2, got {fullSuffix}"); + } + + if (fullSuffix.Length > 0) + { + driverIndex = shapeNames.IndexOf($"{shapeName}_{fullSuffix[0]}"); + if (driverIndex != -1) + { + return driverIndex; + } + } + + if (fullSuffix.Length > 1) + { + driverIndex = shapeNames.IndexOf($"{shapeName}_{fullSuffix[1]}"); + if (driverIndex != -1) + { + return driverIndex; + } + + driverIndex = shapeNames.IndexOf($"{shapeName}_{fullSuffix}"); + if (driverIndex != -1) + { + return driverIndex; + } + } + + return -1; + } + } + + /// + /// The V0 corrective naming scheme. + /// + public static readonly INamingScheme V0 = new NamingSchemeV0(); + } +} diff --git a/Runtime/Scripts/Tracking/DeformationRig/NamingSchemes.cs.meta b/Runtime/Scripts/Tracking/DeformationRig/NamingSchemes.cs.meta new file mode 100644 index 00000000..77f9ba12 --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/NamingSchemes.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7ddca7009de0a4237bc517a5dcd76574 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Tracking/DeformationRig/Utils.meta b/Runtime/Scripts/Tracking/DeformationRig/Utils.meta new file mode 100644 index 00000000..a79d23d0 --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/Utils.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a79bd1904d62410896dbd581f84655b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Tracking/DeformationRig/Utils/ConversionHelpers.cs b/Runtime/Scripts/Tracking/DeformationRig/Utils/ConversionHelpers.cs new file mode 100644 index 00000000..9bab9b0f --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/Utils/ConversionHelpers.cs @@ -0,0 +1,23 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +namespace DeformationRig.Utils +{ + /// + /// A class with some common conversions used across the library. Since most of these are just + /// multiplication with a constant, this ends up being more readable and tidier than having those + /// constants scattered across classes. + /// + public static class ConversionHelpers { + /// + /// Converts a float representing a percentage (i.e. 100 representing 100%) into its decimal + /// equivalent (i.e. 100f -> 1f). + /// + public static float PercentToDecimal(float percent) => percent * 0.01f; + + /// + /// Converts a float representing a percentage in decimal (i.e. 0.5 representing 50%) + /// into its percentage equivalent (i.e. 0.5f -> 50f). + /// + public static float DecimalToPercent(float dec) => dec * 100f; + } +} diff --git a/Runtime/Scripts/Tracking/DeformationRig/Utils/ConversionHelpers.cs.meta b/Runtime/Scripts/Tracking/DeformationRig/Utils/ConversionHelpers.cs.meta new file mode 100644 index 00000000..997bba98 --- /dev/null +++ b/Runtime/Scripts/Tracking/DeformationRig/Utils/ConversionHelpers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ce697017bce9842bc8235d7058cabdf1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Tracking/FaceTrackingData/CorrectivesFace.cs b/Runtime/Scripts/Tracking/FaceTrackingData/CorrectivesFace.cs index 33b05774..74431e61 100644 --- a/Runtime/Scripts/Tracking/FaceTrackingData/CorrectivesFace.cs +++ b/Runtime/Scripts/Tracking/FaceTrackingData/CorrectivesFace.cs @@ -1,7 +1,6 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. using Oculus.Interaction; -using System; using UnityEngine; namespace Oculus.Movement.Tracking @@ -27,6 +26,28 @@ public class CorrectivesFace : OVRCustomFace /// public bool FreezeExpressionWeights { get; set; } + /// + /// Forces the jaw to drop to accomodate the tongue if it is being stuck out. + /// + [SerializeField] + [Tooltip("Whether or not to force the jaw open to accomodate an extended tongue")] + protected bool _forceJawDropForTongue = true; + + /// + public bool ForceJawDropForTongue + { + get { return _forceJawDropForTongue; } + set { _forceJawDropForTongue = value; } + } + + [SerializeField] + [Tooltip("Minimum value of TongueOut to force JawDrop open")] + private float _tongueOutThreshold = 0.25f; + + [SerializeField] + [Tooltip("Minimum value of JawDrop to force when the user's tongue is out")] + private float _minJawDrop = 0.5f; + /// /// Optional blendshape modifier component. /// @@ -249,6 +270,16 @@ protected void UpdateCachedMeshValues() { currentWeight += ExpressionWeights[(int)OVRFaceExpressions.FaceExpression.EyesLookDownR]; } + else if (ForceJawDropForTongue && blendShapeToFaceExpression == OVRFaceExpressions.FaceExpression.JawDrop) + { + // Fetch this from the underlying expressions in case the renderer being fixed + // has JawDrop but not TongueOut. + var tongueWeight = _faceExpressions[OVRFaceExpressions.FaceExpression.TongueOut]; + if (tongueWeight > _tongueOutThreshold) + { + currentWeight = Mathf.Max(_minJawDrop, currentWeight); + } + } if (_blendshapeModifier != null) { diff --git a/Runtime/Scripts/UI/CustomAnimToggle.cs b/Runtime/Scripts/UI/CustomAnimToggle.cs index 938ef5fa..6f9c3342 100644 --- a/Runtime/Scripts/UI/CustomAnimToggle.cs +++ b/Runtime/Scripts/UI/CustomAnimToggle.cs @@ -1,4 +1,4 @@ -// Copyright (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. +// Copyright (c) Meta Platforms, Inc. and affiliates. using Oculus.Movement.AnimationRigging; using UnityEngine; diff --git a/Runtime/Scripts/UI/HipPinningConstraintCalibration.cs b/Runtime/Scripts/UI/HipPinningConstraintCalibration.cs index 5ba8c462..89f2eb8a 100644 --- a/Runtime/Scripts/UI/HipPinningConstraintCalibration.cs +++ b/Runtime/Scripts/UI/HipPinningConstraintCalibration.cs @@ -110,7 +110,10 @@ private void ExitHipPinning(HipPinningConstraintTarget target) /// public void Calibrate() { - Vector3 hipTranslation = _skeleton.CustomBones[(int)OVRSkeleton.BoneId.Body_Hips].localPosition; + var isFullBody = _skeleton.GetSkeletonType() == OVRSkeleton.SkeletonType.FullBody; + Vector3 hipTranslation = _skeleton.CustomBones[isFullBody ? + (int)OVRSkeleton.BoneId.FullBody_Hips : + (int)OVRSkeleton.BoneId.Body_Hips].localPosition; var mainChairTransform = _mainHipPinningTargetRenderer.transform; mainChairTransform.localPosition = new Vector3(hipTranslation.x, mainChairTransform.localPosition.y, hipTranslation.z); diff --git a/Runtime/Scripts/UI/RetargetingMenu.cs b/Runtime/Scripts/UI/RetargetingMenu.cs index 03ebe1e6..2b18a62c 100644 --- a/Runtime/Scripts/UI/RetargetingMenu.cs +++ b/Runtime/Scripts/UI/RetargetingMenu.cs @@ -35,13 +35,20 @@ public class RetargetingMenu : MonoBehaviour protected Vector3 _spawnOffset = new Vector3(-1.0f, 0.0f, 0.0f); private const int _characterSpawnLimit = 20; - private Vector3 _currentSpawnOffset; + private Vector3 _currentSpawnOffset, _currentSpawnOffsetNotParented; private List _charactersSpawned = new List(); + /// + /// Move the non-mirrored characters out further so that they don't intersect any menus to the + /// right of the user. + /// + private const float _NON_MIRRORED_OFFSET_MULTIPLIER = 1.5f; + private void Awake() { Assert.IsNotNull(_characterToSpawn); _currentSpawnOffset = _spawnOffset; + _currentSpawnOffsetNotParented = -_spawnOffset * _NON_MIRRORED_OFFSET_MULTIPLIER; } /// @@ -55,9 +62,9 @@ public void AddNormalRetargetedCharacter() return; } GameObject newCharacter = Instantiate(_characterToSpawn); - AddComponentsRuntime.SetupCharacterForRetargeting(newCharacter); + AddComponentsRuntime.SetupCharacterForRetargeting(newCharacter, true); - AdjustSpawnedCharacterTransform(newCharacter); + AdjustSpawnedCharacterTransform(newCharacter, true, _currentSpawnOffset); _currentSpawnOffset += _spawnOffset; _charactersSpawned.Add(newCharacter); } @@ -73,13 +80,31 @@ public void AddRiggedRetargetedCharacter() return; } GameObject newCharacter = Instantiate(_characterToSpawn); - AddComponentsRuntime.SetupCharacterForAnimationRiggingRetargeting(newCharacter); + AddComponentsRuntime.SetupCharacterForAnimationRiggingRetargeting(newCharacter, true, false); - AdjustSpawnedCharacterTransform(newCharacter); + AdjustSpawnedCharacterTransform(newCharacter, true, _currentSpawnOffset); _currentSpawnOffset += _spawnOffset; _charactersSpawned.Add(newCharacter); } + /// + /// Spawn retargeted character with animation rigging support, along with constraints. + /// + public void AddRiggedRetargetedCharacterWithConstraints() + { + if (_charactersSpawned.Count >= _characterSpawnLimit) + { + Debug.LogWarning("Reached the limit of characters to spawn."); + return; + } + GameObject newCharacter = Instantiate(_characterToSpawn); + AddComponentsRuntime.SetupCharacterForAnimationRiggingRetargeting(newCharacter, true, true); + + AdjustSpawnedCharacterTransform(newCharacter, false, -_currentSpawnOffsetNotParented); + _currentSpawnOffsetNotParented -= _spawnOffset * _NON_MIRRORED_OFFSET_MULTIPLIER; + _charactersSpawned.Add(newCharacter); + } + /// /// Removes last character spawned. /// @@ -95,14 +120,15 @@ public void RemoveLastCharacter() _currentSpawnOffset -= _spawnOffset; } - private void AdjustSpawnedCharacterTransform(GameObject newCharacter) + private void AdjustSpawnedCharacterTransform(GameObject newCharacter, + bool reparent, Vector3 offsetToUse) { var characterTransform = newCharacter.transform; - if (_spawnParent != null) + if (_spawnParent != null && reparent) { characterTransform.SetParent(_spawnParent, false); } - characterTransform.localPosition = _currentSpawnOffset; + characterTransform.localPosition = offsetToUse; } } } diff --git a/Runtime/Scripts/Utils/AddComponentsRuntime.cs b/Runtime/Scripts/Utils/AddComponentsRuntime.cs index 861a66fb..a4248d0c 100644 --- a/Runtime/Scripts/Utils/AddComponentsRuntime.cs +++ b/Runtime/Scripts/Utils/AddComponentsRuntime.cs @@ -5,6 +5,12 @@ using UnityEngine.Animations.Rigging; using UnityEngine; using Oculus.Movement.Tracking; +using System.Reflection; +using Oculus.Interaction.Input; +using System.Collections.Generic; +using static Oculus.Movement.AnimationRigging.RetargetedBoneTargets; +using static OVRUnityHumanoidSkeletonRetargeter; +using UnityEditor; namespace Oculus.Movement.Utils { @@ -17,10 +23,18 @@ public class AddComponentsRuntime /// Sets up character for retargeting. /// /// GameObject used for setup process. - public static void SetupCharacterForRetargeting(GameObject selectedGameObject) + /// Allows toggling full body or not. + public static void SetupCharacterForRetargeting(GameObject selectedGameObject, + bool isFullBody = false) { - selectedGameObject.AddComponent(); - selectedGameObject.AddComponent(); + var ovrBodyComponent = selectedGameObject.AddComponent(); + var retargeterComponent = selectedGameObject.AddComponent(); + typeof(RetargetingLayer).GetField( + "_skeletonType", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue( + retargeterComponent, isFullBody ? OVRSkeleton.SkeletonType.FullBody : OVRSkeleton.SkeletonType.Body); + typeof(OVRBody).GetField( + "_providedSkeletonType", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue( + ovrBodyComponent, isFullBody ? OVRPlugin.BodyJointSet.FullBody : OVRPlugin.BodyJointSet.UpperBody); } /// @@ -102,8 +116,12 @@ public static void SetupCharacterForARKitFace( /// no undo actions since those are not allowed at runtime. /// /// GameObject to add animation rigging + retargeting too. + /// Allows toggling full body or not. + /// Allows adding constraints or not. public static void SetupCharacterForAnimationRiggingRetargeting( - GameObject selectedGameObject) + GameObject selectedGameObject, + bool isFullBody = false, + bool addConstraints = false) { try { @@ -120,29 +138,147 @@ public static void SetupCharacterForAnimationRiggingRetargeting( var mainParent = selectedGameObject; // Add the retargeting and body tracking components at root first. - RetargetingLayer retargetingLayer = AddMainRetargetingComponents(mainParent); + RetargetingLayer retargetingLayer = AddMainRetargetingComponents(mainParent, isFullBody); GameObject rigObject; RigBuilder rigBuilder; (rigBuilder, rigObject) = AddBasicAnimationRiggingComponents(mainParent); + // disable rig builder. in case we need to set up any constraints, we might need to enable + // the animator. but we don't want the rig to evaluate any constraints, so keep the rig disabled + // until the character has been set up. + rigBuilder.enabled = false; + List constraintMonos = new List(); RetargetingAnimationConstraint retargetConstraint = AddRetargetingConstraint(rigObject, retargetingLayer); retargetingLayer.RetargetingConstraint = retargetConstraint; + constraintMonos.Add(retargetConstraint); + + Animator animatorComp = selectedGameObject.GetComponent(); + + // Body deformation. + if (addConstraints) + { + if (isFullBody) + { + RetargetedBoneTarget[] spineBoneTargets = AddSpineBoneTargets(rigObject, animatorComp); + FullBodyDeformationConstraint deformationConstraint = + AddFullBodyDeformationConstraint(rigObject, animatorComp, spineBoneTargets); + + AddRetargetedFullBodyBoneTargetComponent(selectedGameObject, spineBoneTargets); + + // enable only to get the transform, then disable. + // if blendhand constraint is added on a enabled gameobject, errors might be thrown + // due to Awake being run too early. + animatorComp.gameObject.SetActive(true); + var headTransform = animatorComp.GetBoneTransform(HumanBodyBones.Head); + animatorComp.gameObject.SetActive(false); + AddHandBlendConstraintFullBody(selectedGameObject, null, + retargetingLayer, OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_LeftHandWrist, + headTransform); + + AddHandBlendConstraintFullBody(selectedGameObject, null, + retargetingLayer, OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_RightHandWrist, + headTransform); + } + else + { + RetargetedBoneTarget[] spineBoneTargets = AddSpineBoneTargets(rigObject, animatorComp); + DeformationConstraint deformationConstraint = + AddDeformationConstraint(rigObject, animatorComp, spineBoneTargets); + constraintMonos.Add(deformationConstraint); + + AddRetargetedBoneTargetComponent(selectedGameObject, spineBoneTargets); + + // enable only to get the transform, then disable. + // if blendhand constraint is added on a enabled gameobject, errors might be thrown + // due to Awake being run too early. + animatorComp.gameObject.SetActive(true); + var headTransform = animatorComp.GetBoneTransform(HumanBodyBones.Head); + animatorComp.gameObject.SetActive(false); + AddHandBlendConstraint(selectedGameObject, + retargetingLayer, OVRHumanBodyBonesMappings.BodyTrackingBoneId.Body_LeftHandWrist, + headTransform); + AddHandBlendConstraint(selectedGameObject, + retargetingLayer, OVRHumanBodyBonesMappings.BodyTrackingBoneId.Body_RightHandWrist, + headTransform); + } + } // Add final components to tie everything together. AddAnimationRiggingLayer(mainParent, retargetingLayer, rigBuilder, - retargetConstraint, retargetingLayer); + constraintMonos.ToArray(), retargetingLayer); + + // Add retargeting processors to the retargeting layer. + AddCorrectBonesRetargetingProcessor(retargetingLayer); + AddCorrectHandRetargetingProcessor(retargetingLayer, Handedness.Left); + AddCorrectHandRetargetingProcessor(retargetingLayer, Handedness.Right); + + if (isFullBody) + { + animatorComp.gameObject.SetActive(true); + var leftHand = animatorComp.GetBoneTransform(HumanBodyBones.LeftHand); + var rightHand = animatorComp.GetBoneTransform(HumanBodyBones.RightHand); + animatorComp.gameObject.SetActive(false); + AddFullBodyHandDeformation(selectedGameObject, + animatorComp, retargetingLayer, leftHand, + rightHand); + } + + rigBuilder.enabled = true; selectedGameObject.SetActive(true); } - private static RetargetingLayer AddMainRetargetingComponents(GameObject mainParent) + private static RetargetingLayer AddMainRetargetingComponents( + GameObject mainParent, + bool isFullBody) { RetargetingLayer retargetingLayer = mainParent.GetComponent(); if (!retargetingLayer) { retargetingLayer = mainParent.AddComponent(); } + retargetingLayer.EnableTrackingByProxy = true; + + var bodySectionToPosition = + typeof(OVRUnityHumanoidSkeletonRetargeter).GetField( + isFullBody ? "_fullBodySectionToPosition" : "_bodySectionToPosition", + BindingFlags.Instance | BindingFlags.NonPublic); + + if (bodySectionToPosition != null) + { + if (isFullBody) + { + bodySectionToPosition.SetValue(retargetingLayer, new[] + { + OVRHumanBodyBonesMappings.BodySection.LeftArm, + OVRHumanBodyBonesMappings.BodySection.RightArm, + OVRHumanBodyBonesMappings.BodySection.LeftHand, + OVRHumanBodyBonesMappings.BodySection.RightHand, + OVRHumanBodyBonesMappings.BodySection.Hips, + OVRHumanBodyBonesMappings.BodySection.Back, + OVRHumanBodyBonesMappings.BodySection.Neck, + OVRHumanBodyBonesMappings.BodySection.Head, + OVRHumanBodyBonesMappings.BodySection.LeftLeg, + OVRHumanBodyBonesMappings.BodySection.LeftFoot, + OVRHumanBodyBonesMappings.BodySection.RightLeg, + OVRHumanBodyBonesMappings.BodySection.RightFoot + }); + } + else + { + bodySectionToPosition.SetValue(retargetingLayer, new[] + { + OVRHumanBodyBonesMappings.BodySection.LeftArm, + OVRHumanBodyBonesMappings.BodySection.RightArm, + OVRHumanBodyBonesMappings.BodySection.LeftHand, + OVRHumanBodyBonesMappings.BodySection.RightHand, + OVRHumanBodyBonesMappings.BodySection.Hips, + OVRHumanBodyBonesMappings.BodySection.Neck, + OVRHumanBodyBonesMappings.BodySection.Head + }); + } + } OVRBody bodyComp = mainParent.GetComponent(); if (!bodyComp) @@ -150,6 +286,13 @@ private static RetargetingLayer AddMainRetargetingComponents(GameObject mainPare bodyComp = mainParent.AddComponent(); } + typeof(RetargetingLayer).GetField( + "_skeletonType", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue( + retargetingLayer, isFullBody ? OVRSkeleton.SkeletonType.FullBody : OVRSkeleton.SkeletonType.Body); + typeof(OVRBody).GetField( + "_providedSkeletonType", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue( + bodyComp, isFullBody ? OVRPlugin.BodyJointSet.FullBody : OVRPlugin.BodyJointSet.UpperBody); + return retargetingLayer; } @@ -168,7 +311,7 @@ private static (RigBuilder, GameObject) AddBasicAnimationRiggingComponents(GameO if (!rigBuilder) { rigBuilder = mainParent.AddComponent(); - rigBuilder.layers = new System.Collections.Generic.List + rigBuilder.layers = new List { new RigLayer(rigComponent, true) }; @@ -210,9 +353,250 @@ private static RetargetingAnimationConstraint AddRetargetingConstraint( return retargetConstraint; } + private static RetargetedBoneTarget[] AddSpineBoneTargets(GameObject rigObject, + Animator animator) + { + var boneTargets = new List(); + Transform hipsTarget = AddSpineTarget(rigObject, "HipsTarget", + animator.GetBoneTransform(HumanBodyBones.Hips)); + Transform spineLowerTarget = AddSpineTarget(rigObject, "SpineLowerTarget", + animator.GetBoneTransform(HumanBodyBones.Spine)); + Transform spineUpperTarget = AddSpineTarget(rigObject, "SpineUpperTarget", + animator.GetBoneTransform(HumanBodyBones.Chest)); + Transform chestTarget = AddSpineTarget(rigObject, "ChestTarget", + animator.GetBoneTransform(HumanBodyBones.UpperChest)); + Transform neckTarget = AddSpineTarget(rigObject, "NeckTarget", + animator.GetBoneTransform(HumanBodyBones.Neck)); + Transform headTarget = AddSpineTarget(rigObject, "HeadTarget", + animator.GetBoneTransform(HumanBodyBones.Head)); + + Tuple[] bonesToRetarget = + { + new(OVRSkeleton.BoneId.Body_Hips, hipsTarget), + new(OVRSkeleton.BoneId.Body_SpineLower, spineLowerTarget), + new(OVRSkeleton.BoneId.Body_SpineUpper, spineUpperTarget), + new(OVRSkeleton.BoneId.Body_Chest, chestTarget), + new(OVRSkeleton.BoneId.Body_Neck, neckTarget), + new(OVRSkeleton.BoneId.Body_Head, headTarget), + }; + + foreach (var boneToRetarget in bonesToRetarget) + { + RetargetedBoneTarget boneRTTarget = new RetargetedBoneTarget(); + boneRTTarget.BoneId = boneToRetarget.Item1; + boneRTTarget.Target = boneToRetarget.Item2; + boneRTTarget.HumanBodyBone = OVRHumanBodyBonesMappings.BoneIdToHumanBodyBone[boneRTTarget.BoneId]; + boneTargets.Add(boneRTTarget); + } + return boneTargets.ToArray(); + } + + private static Transform AddSpineTarget(GameObject mainParent, + string nameOfTarget, Transform targetTransform = null) + { + Transform spineTarget = + mainParent.transform.FindChildRecursive(nameOfTarget); + if (spineTarget == null) + { + GameObject spineTargetObject = + new GameObject(nameOfTarget); + spineTargetObject.transform.SetParent(mainParent.transform, true); + spineTarget = spineTargetObject.transform; + } + + if (targetTransform != null) + { + spineTarget.position = targetTransform.position; + spineTarget.rotation = targetTransform.rotation; + spineTarget.localScale = targetTransform.localScale; + } + else + { + spineTarget.localPosition = Vector3.zero; + spineTarget.localRotation = Quaternion.identity; + spineTarget.localScale = Vector3.one; + } + return spineTarget; + } + + private static DeformationConstraint AddDeformationConstraint( + GameObject rigObject, Animator animator, RetargetedBoneTarget[] spineBoneTargets) + { + DeformationConstraint deformationConstraint; + GameObject deformationConstraintObject = + new GameObject("Deformation"); + deformationConstraint = + deformationConstraintObject.AddComponent(); + + deformationConstraintObject.transform.SetParent(rigObject.transform, false); + deformationConstraintObject.transform.localPosition = Vector3.zero; + deformationConstraintObject.transform.localRotation = Quaternion.identity; + deformationConstraintObject.transform.localScale = Vector3.one; + + foreach (var spineBoneTarget in spineBoneTargets) + { + spineBoneTarget.Target.SetParent(deformationConstraint.transform, false); + } + + deformationConstraint.data.SpineTranslationCorrectionTypeField + = DeformationData.SpineTranslationCorrectionType.AccurateHipsAndHead; + deformationConstraint.data.SpineLowerAlignmentWeight = 1.0f; + deformationConstraint.data.SpineUpperAlignmentWeight = 0.5f; + deformationConstraint.data.ChestAlignmentWeight = 0.0f; + deformationConstraint.data.LeftShoulderWeight = 0.75f; + deformationConstraint.data.RightShoulderWeight = 0.75f; + deformationConstraint.data.LeftArmWeight = 1.0f; + deformationConstraint.data.RightArmWeight = 1.0f; + deformationConstraint.data.LeftHandWeight = 1.0f; + deformationConstraint.data.RightHandWeight = 1.0f; + + // enable to find bones + animator.gameObject.SetActive(true); + // set up deformation but prevent it from running any code at runtime + deformationConstraint.enabled = false; + deformationConstraint.data.AssignAnimator(animator); + deformationConstraint.data.SetUpLeftArmData(); + deformationConstraint.data.SetUpRightArmData(); + deformationConstraint.data.SetUpHipsToHeadBones(); + deformationConstraint.data.SetUpHipsToHeadBoneTargets(deformationConstraint.transform); + deformationConstraint.data.SetUpBonePairs(); + deformationConstraint.data.InitializeStartingScale(); + animator.gameObject.SetActive(false); + // re-enable deformation so that when the animator game object is turned on, it will activate + deformationConstraint.enabled = true; + + return deformationConstraint; + } + + private static FullBodyDeformationConstraint AddFullBodyDeformationConstraint( + GameObject rigObject, Animator animator, RetargetedBoneTarget[] spineBoneTargets) + { + FullBodyDeformationConstraint deformationConstraint = null; + + GameObject deformationConstraintObject = + new GameObject("Deformation"); + deformationConstraint = + deformationConstraintObject.AddComponent(); + + deformationConstraintObject.transform.SetParent(rigObject.transform, false); + deformationConstraintObject.transform.localPosition = Vector3.zero; + deformationConstraintObject.transform.localRotation = Quaternion.identity; + deformationConstraintObject.transform.localScale = Vector3.one; + + foreach (var spineBoneTarget in spineBoneTargets) + { + spineBoneTarget.Target.SetParent(deformationConstraint.transform, false); + } + + deformationConstraint.data.SpineTranslationCorrectionTypeField + = FullBodyDeformationData.SpineTranslationCorrectionType.AccurateHipsAndHead; + deformationConstraint.data.SpineLowerAlignmentWeight = 1.0f; + deformationConstraint.data.SpineUpperAlignmentWeight = 0.5f; + deformationConstraint.data.ChestAlignmentWeight = 0.0f; + deformationConstraint.data.LeftShoulderWeight = 0.75f; + deformationConstraint.data.RightShoulderWeight = 0.75f; + deformationConstraint.data.LeftArmWeight = 1.0f; + deformationConstraint.data.RightArmWeight = 1.0f; + deformationConstraint.data.LeftHandWeight = 1.0f; + deformationConstraint.data.RightHandWeight = 1.0f; + deformationConstraint.data.LeftLegWeight = 1.0f; + deformationConstraint.data.RightLegWeight = 1.0f; + deformationConstraint.data.LeftToesWeight = 1.0f; + deformationConstraint.data.RightToesWeight = 1.0f; + deformationConstraint.data.AlignFeetWeight = 0.75f; + + // enable to find bones + animator.gameObject.SetActive(true); + // set up deformation but prevent it from running any code at runtime + deformationConstraint.enabled = false; + deformationConstraint.data.AssignAnimator(animator); + deformationConstraint.data.SetUpLeftArmData(); + deformationConstraint.data.SetUpRightArmData(); + deformationConstraint.data.SetUpLeftLegData(); + deformationConstraint.data.SetUpRightLegData(); + deformationConstraint.data.SetUpHipsAndHeadBones(); + deformationConstraint.data.SetUpBonePairs(); + deformationConstraint.data.SetUpBoneTargets(deformationConstraint.transform); + deformationConstraint.data.InitializeStartingScale(); + animator.gameObject.SetActive(false); + // re-enable deformation so that when the animator game object is turned on, it will activate + deformationConstraint.enabled = true; + + return deformationConstraint; + } + + private static RetargetedBoneTargets AddRetargetedBoneTargetComponent(GameObject mainParent, + RetargetedBoneTarget[] boneTargetsArray) + { + RetargetedBoneTargets retargetedBoneTargets = + mainParent.AddComponent(); + + retargetedBoneTargets.AutoAddTo = mainParent.GetComponent(); + retargetedBoneTargets.RetargetedBoneTargetsArray = boneTargetsArray; + return retargetedBoneTargets; + } + + private static FullBodyRetargetedBoneTargets AddRetargetedFullBodyBoneTargetComponent(GameObject mainParent, + RetargetedBoneTarget[] boneTargetsArray) + { + FullBodyRetargetedBoneTargets retargetedBoneTargets = + mainParent.AddComponent(); + + retargetedBoneTargets.AutoAdd = mainParent.GetComponent(); + retargetedBoneTargets.RetargetedBoneTargets = boneTargetsArray; + + return retargetedBoneTargets; + } + + private static FullBodyRetargetedBoneTargets AddFullBodyRetargetedBoneTargetComponent(GameObject mainParent, + RetargetedBoneTarget[] boneTargetsArray) + { + FullBodyRetargetedBoneTargets retargetedBoneTargets = + mainParent.AddComponent(); + + retargetedBoneTargets.AutoAdd = mainParent.GetComponent(); + retargetedBoneTargets.RetargetedBoneTargets = boneTargetsArray; + + return retargetedBoneTargets; + } + + private static BlendHandConstraints AddHandBlendConstraint( + GameObject mainParent, RetargetingLayer retargetingLayer, + OVRHumanBodyBonesMappings.BodyTrackingBoneId boneIdToTest, Transform headTransform) + { + BlendHandConstraints blendConstraint = + mainParent.AddComponent(); + + blendConstraint.Constraints = null; + blendConstraint.RetargetingLayerComp = retargetingLayer; + blendConstraint.BoneIdToTest = boneIdToTest; + blendConstraint.HeadTransform = headTransform; + blendConstraint.AutoAddTo = mainParent.GetComponent(); + blendConstraint.BlendCurve = new AnimationCurve(new Keyframe(0, 0), new Keyframe(1, 1)); + + return blendConstraint; + } + + private static BlendHandConstraintsFullBody AddHandBlendConstraintFullBody( + GameObject mainParent, MonoBehaviour[] constraints, RetargetingLayer retargetingLayer, + OVRHumanBodyBonesMappings.FullBodyTrackingBoneId boneIdToTest, Transform headTransform) + { + BlendHandConstraintsFullBody blendConstraint = + mainParent.AddComponent(); + + blendConstraint.Constraints = null; + blendConstraint.RetargetingLayerComp = retargetingLayer; + blendConstraint.BoneIdToTest = boneIdToTest; + blendConstraint.HeadTransform = headTransform; + blendConstraint.AutoAddTo = mainParent.GetComponent(); + blendConstraint.BlendCurve = new AnimationCurve(new Keyframe(0, 0), new Keyframe(1, 1)); + + return blendConstraint; + } + private static void AddAnimationRiggingLayer(GameObject mainParent, OVRSkeleton skeletalComponent, RigBuilder rigBuilder, - MonoBehaviour constraintComponent, + MonoBehaviour[] constraintComponents, RetargetingLayer retargetingLayer) { AnimationRigSetup rigSetup = mainParent.GetComponent(); @@ -225,14 +609,81 @@ private static void AddAnimationRiggingLayer(GameObject mainParent, rigSetup.Skeleton = skeletalComponent; rigSetup.AnimatorComp = animatorComponent; rigSetup.RigbuilderComp = rigBuilder; - if (constraintComponent != null) + if (constraintComponents != null) { - rigSetup.AddSkeletalConstraint(constraintComponent); + foreach (var constraintComponent in constraintComponents) + { + rigSetup.AddSkeletalConstraint(constraintComponent); + } } rigSetup.RebindAnimator = true; rigSetup.ReEnableRig = true; rigSetup.RetargetingLayerComp = retargetingLayer; + rigSetup.CheckSkeletalUpdatesByProxy = true; + } + + private static void AddCorrectBonesRetargetingProcessor(RetargetingLayer retargetingLayer) + { + bool needCorrectBones = true; + foreach (var processor in retargetingLayer.RetargetingProcessors) + { + if (processor as RetargetingProcessorCorrectBones != null) + { + needCorrectBones = false; + } + } + + if (needCorrectBones) + { + var retargetingProcessorCorrectBones = ScriptableObject.CreateInstance(); + retargetingProcessorCorrectBones.name = "CorrectBones"; + retargetingLayer.AddRetargetingProcessor(retargetingProcessorCorrectBones); + } + } + + private static void AddCorrectHandRetargetingProcessor(RetargetingLayer retargetingLayer, Handedness handedness) + { + bool needCorrectHand = true; + foreach (var processor in retargetingLayer.RetargetingProcessors) + { + var correctHand = processor as RetargetingProcessorCorrectHand; + if (correctHand != null) + { + if (correctHand.Handedness == handedness) + { + needCorrectHand = false; + } + } + } + + if (needCorrectHand) + { + var retargetingProcessorCorrectHand = ScriptableObject.CreateInstance(); + var handednessString = handedness == Handedness.Left ? "Left" : "Right"; + retargetingProcessorCorrectHand.Handedness = handedness; + retargetingProcessorCorrectHand.HandIKType = RetargetingProcessorCorrectHand.IKType.CCDIK; + retargetingProcessorCorrectHand.name = $"Correct{handednessString}Hand"; + retargetingLayer.AddRetargetingProcessor(retargetingProcessorCorrectHand); + } + } + + private static void AddFullBodyHandDeformation(GameObject mainParent, + Animator animatorComp, OVRSkeleton skeletalComponent, Transform leftHand, + Transform rightHand) + { + FullBodyHandDeformation fullBodyHandDeformation = + mainParent.AddComponent(); + + fullBodyHandDeformation.AnimatorComp = animatorComp; + fullBodyHandDeformation.Skeleton = skeletalComponent; + fullBodyHandDeformation.LeftHand = leftHand; + fullBodyHandDeformation.RightHand = rightHand; + fullBodyHandDeformation.FingerOffsets = new FullBodyHandDeformation.FingerOffset[0]; + // enable animator to be able to calculate finger data + animatorComp.gameObject.SetActive(true); + fullBodyHandDeformation.CalculateFingerData(); + animatorComp.gameObject.SetActive(false); } private static void ValidateGameObjectForAnimationRigging(GameObject go) diff --git a/Runtime/Scripts/Utils/AnimatorBoneVisualizer.cs b/Runtime/Scripts/Utils/AnimatorBoneVisualizer.cs index 8a074842..8751a929 100644 --- a/Runtime/Scripts/Utils/AnimatorBoneVisualizer.cs +++ b/Runtime/Scripts/Utils/AnimatorBoneVisualizer.cs @@ -3,6 +3,7 @@ using Oculus.Movement.AnimationRigging; using UnityEngine; using UnityEngine.Assertions; +using static OVRUnityHumanoidSkeletonRetargeter; namespace Oculus.Movement.Utils { @@ -41,7 +42,7 @@ protected override int GetBoneCount() /// protected override BoneTuple GetBoneTuple(int currentBone) { - var boneTuple = CustomMappings.BoneToJointPair[(HumanBodyBones)currentBone]; + var boneTuple = OVRHumanBodyBonesMappings.BoneToJointPair[(HumanBodyBones)currentBone]; return new BoneTuple((int)boneTuple.Item1, (int)boneTuple.Item2); } @@ -70,7 +71,7 @@ protected override bool TryGetBoneTransforms(BoneTuple tupleItem, /// protected override AvatarMaskBodyPart GetAvatarBodyPart(int currentBone) { - return CustomMappings.HumanBoneToAvatarBodyPart[(HumanBodyBones)currentBone]; + return BoneMappingsExtension.HumanBoneToAvatarBodyPart[(HumanBodyBones)currentBone]; } /// diff --git a/Runtime/Scripts/Utils/BodyTrackingFidelityToggle.cs b/Runtime/Scripts/Utils/BodyTrackingFidelityToggle.cs new file mode 100644 index 00000000..0d6844fc --- /dev/null +++ b/Runtime/Scripts/Utils/BodyTrackingFidelityToggle.cs @@ -0,0 +1,57 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEngine; +using UnityEngine.Assertions; +using static OVRPlugin; + +namespace Oculus.Movement.Utils +{ + /// + /// Allows setting body tracking fidelity. + /// + public class BodyTrackingFidelityToggle : MonoBehaviour + { + /// + /// The current body tracking fidelity set. + /// + [SerializeField] + [Tooltip(BodyTrackingFidelityToggleTooltips.CurrentFidelity)] + protected BodyTrackingFidelity2 _currentFidelity = BodyTrackingFidelity2.Low; + /// + /// The text to update after body tracking fidelity is changed. + /// + [SerializeField] + [Tooltip(BodyTrackingFidelityToggleTooltips.WorldText)] + protected TMPro.TextMeshPro _worldText; + + private const string _LOW_FIDELITY = "Three Point BT"; + private const string _HIGH_FIDELITY = "IOBT"; + + private void Awake() + { + Assert.IsNotNull(_worldText); + } + + private void Start() + { + EnforceFidelity(); + } + + /// + /// Changes the body tracking fidelity from low to high or vice versa. + /// + public void SwapFidelity() + { + _currentFidelity = _currentFidelity == BodyTrackingFidelity2.Low ? + BodyTrackingFidelity2.High : BodyTrackingFidelity2.Low; + EnforceFidelity(); + } + + private void EnforceFidelity() + { + OVRPlugin.RequestBodyTrackingFidelity(_currentFidelity); + _worldText.text = _currentFidelity == BodyTrackingFidelity2.Low ? + _LOW_FIDELITY : _HIGH_FIDELITY; + } + } +} diff --git a/Runtime/Scripts/Utils/BodyTrackingFidelityToggle.cs.meta b/Runtime/Scripts/Utils/BodyTrackingFidelityToggle.cs.meta new file mode 100644 index 00000000..7da8f7b1 --- /dev/null +++ b/Runtime/Scripts/Utils/BodyTrackingFidelityToggle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0f0c3d53485cacb428310b4c5c3d6d9b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Utils/BoneVisualizer.cs b/Runtime/Scripts/Utils/BoneVisualizer.cs index 78a829f9..3b4f0ab4 100644 --- a/Runtime/Scripts/Utils/BoneVisualizer.cs +++ b/Runtime/Scripts/Utils/BoneVisualizer.cs @@ -279,9 +279,10 @@ public CustomBoneVisualData() { } /// Copy constructor /// /// - public CustomBoneVisualData(CustomBoneVisualData original) { + public CustomBoneVisualData(CustomBoneVisualData original) + { BoneTuples = new List(original.BoneTuples.Count); - for(int i = 0; i < original.BoneTuples.Count; ++i) + for (int i = 0; i < original.BoneTuples.Count; ++i) { BoneTuples.Add(new BoneTuple(original.BoneTuples[i])); } @@ -415,7 +416,7 @@ public void Initialize(int jointCount) [SerializeField] [Tooltip(BoneVisualizerTooltips.BoneVisualData)] [Interaction.ConditionalHide("_visualizationGuideType", 1)] - [ContextMenuItem(nameof(UseStandardBones),nameof(UseStandardBones))] + [ContextMenuItem(nameof(UseStandardBones), nameof(UseStandardBones))] protected CustomBoneVisualData _customBoneVisualData; /// @@ -669,7 +670,7 @@ protected bool ShouldVisualizeJoint(int bone) private void VisualizeBoneLines() { - if(!IsShowingLines) + if (!IsShowingLines) { foreach (var tupleItem in _customBoneVisualData.BoneTuples) { @@ -722,7 +723,9 @@ protected bool GetBoneTransforms(BoneTuple tupleItem, { string edge = $"{tupleItem.FirstBone}-{tupleItem.SecondBone}"; int i = _customBoneVisualData.BoneTuples.IndexOf(tupleItem); - Debug.LogWarning($"Cannot find transform for tuple {edge}\n" + + Debug.LogWarning($"Cannot find transform for tuple {edge}, " + + $"first joint null? {(firstJoint != null ? "no" : "yes")}, " + + $"second joint null? {(secondJoint != null ? "no" : "yes")}.\n" + $"Hiding {this}." + $"{nameof(_customBoneVisualData)}." + $"{nameof(_customBoneVisualData.BoneTuples)}[{i}]:" + diff --git a/Runtime/Scripts/Utils/BoneVisualizerLineColor.cs b/Runtime/Scripts/Utils/BoneVisualizerLineColor.cs index ce19c4fc..3ce8739b 100644 --- a/Runtime/Scripts/Utils/BoneVisualizerLineColor.cs +++ b/Runtime/Scripts/Utils/BoneVisualizerLineColor.cs @@ -1,6 +1,7 @@ // Copyright (c) Meta Platforms, Inc. and affiliates. - + using UnityEngine; +using UnityEngine.Assertions; namespace Oculus.Movement.Utils { @@ -67,6 +68,7 @@ private void Awake() Debug.LogWarning($"{nameof(_boneVisualizer)} not initialized, auto-populating"); _boneVisualizer = GetComponent(); } + Assert.IsNotNull(_boneVisualizer); _boneVisualizer.OnNewLine += SetLineColor; } diff --git a/Runtime/Scripts/Utils/FullBodyOVRSkeletonBoneVisualizer.cs b/Runtime/Scripts/Utils/FullBodyOVRSkeletonBoneVisualizer.cs new file mode 100644 index 00000000..a4ac14c2 --- /dev/null +++ b/Runtime/Scripts/Utils/FullBodyOVRSkeletonBoneVisualizer.cs @@ -0,0 +1,109 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using Oculus.Movement.AnimationRigging; +using UnityEngine; +using UnityEngine.Assertions; +using static OVRUnityHumanoidSkeletonRetargeter; + +namespace Oculus.Movement.Utils +{ + /// + /// Allows visualizing bones found in an OVRSkeleton component for full-body characters. + /// + [DefaultExecutionOrder(230)] + public class FullBodyOVRSkeletonBoneVisualizer + : BoneVisualizer + { + /// + /// OVRSkeleton component to visualize bones for. + /// + [SerializeField] + [Tooltip(OVRSkeletonBoneVisualizerTooltips.OVRSkeletonComp)] + protected OVRSkeleton _ovrSkeletonComp; + + /// + /// Whether to visualize bind pose or not. + /// + [SerializeField] + [Tooltip(OVRSkeletonBoneVisualizerTooltips.VisualizeBindPose)] + protected bool _visualizeBindPose = false; + + /// + protected override void Awake() + { + base.Awake(); + } + + protected override void Start() + { + base.Start(); + Assert.IsNotNull(_ovrSkeletonComp); + } + + /// + protected override int GetBoneCount() + { + return (int)OVRSkeleton.BoneId.FullBody_End; + } + + /// + protected override BoneTuple GetBoneTuple(int currentBone) + { + // avoid visualizing root to hips, since we have legs now + if ((OVRSkeleton.BoneId)currentBone == OVRSkeleton.BoneId.FullBody_Root) + { + currentBone = (int)OVRSkeleton.BoneId.FullBody_Hips; + } + // TODO: figure out how to visualize twist joints in foot, + // OVRHumanBodeBonesMapping does not have it right now + if (!OVRHumanBodyBonesMappings.FullBoneIdToJointPair.ContainsKey((OVRSkeleton.BoneId)currentBone)) + { + currentBone = (int)OVRSkeleton.BoneId.FullBody_Hips; + } + + var boneTuple = OVRHumanBodyBonesMappings.FullBoneIdToJointPair[(OVRSkeleton.BoneId)currentBone]; + return new BoneTuple((int)boneTuple.Item1, (int)boneTuple.Item2); + } + + /// + protected override Transform GetBoneTransform(int currentBone) + { + return RiggingUtilities.FindBoneTransformFromSkeleton(_ovrSkeletonComp, + (OVRSkeleton.BoneId)currentBone, _visualizeBindPose); + } + + /// + protected override bool TryGetBoneTransforms(BoneTuple tupleItem, + out Transform firstJoint, out Transform secondJoint) + { + if (!_ovrSkeletonComp.IsDataValid) + { + firstJoint = secondJoint = null; + return false; + } + + firstJoint = RiggingUtilities.FindBoneTransformFromSkeleton( + _ovrSkeletonComp, + (OVRSkeleton.BoneId)tupleItem.FirstBoneId, + _visualizeBindPose); + secondJoint = (tupleItem.SecondBoneId >= (int)OVRHumanBodyBonesMappings.FullBodyTrackingBoneId.FullBody_End) + ? firstJoint.GetChild(0) + : RiggingUtilities.FindBoneTransformFromSkeleton(_ovrSkeletonComp, + (OVRSkeleton.BoneId)tupleItem.SecondBoneId, _visualizeBindPose); + return true; + } + + /// + protected override AvatarMaskBodyPart GetAvatarBodyPart(int currentBone) + { + return BoneMappingsExtension.OVRSkeletonFullBodyBoneIdToAvatarBodyPart[(OVRSkeleton.BoneId)currentBone]; + } + + /// + public override void SetBody(GameObject body) + { + _ovrSkeletonComp = body.GetComponent(); + ResetBoneVisuals(); + } + } +} diff --git a/Runtime/Scripts/Utils/FullBodyOVRSkeletonBoneVisualizer.cs.meta b/Runtime/Scripts/Utils/FullBodyOVRSkeletonBoneVisualizer.cs.meta new file mode 100644 index 00000000..6bb8954c --- /dev/null +++ b/Runtime/Scripts/Utils/FullBodyOVRSkeletonBoneVisualizer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f7ef839cc9cacff4091af449079bbce3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Utils/IntAsEnumAttribute.cs b/Runtime/Scripts/Utils/IntAsEnumAttribute.cs new file mode 100644 index 00000000..3b59b70b --- /dev/null +++ b/Runtime/Scripts/Utils/IntAsEnumAttribute.cs @@ -0,0 +1,18 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEngine; + +namespace Oculus.Movement.Utils +{ + /// + /// Attribute used to display an int as an enum. + /// + public class IntAsEnumAttribute : PropertyAttribute + { + public System.Type Type { get; private set; } + public IntAsEnumAttribute(System.Type type) + { + Type = type; + } + } +} diff --git a/Runtime/Scripts/Utils/IntAsEnumAttribute.cs.meta b/Runtime/Scripts/Utils/IntAsEnumAttribute.cs.meta new file mode 100644 index 00000000..75c0a92b --- /dev/null +++ b/Runtime/Scripts/Utils/IntAsEnumAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6f272c90339b6994383dd8ece9773dec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Utils/OVRBodyTrackingStateListener.cs b/Runtime/Scripts/Utils/OVRBodyTrackingStateListener.cs new file mode 100644 index 00000000..9089a4ab --- /dev/null +++ b/Runtime/Scripts/Utils/OVRBodyTrackingStateListener.cs @@ -0,0 +1,152 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEngine; +using UnityEngine.Events; + +namespace Oculus.Movement.Utils +{ + /// + /// Recognizes if runtime has functional body tracking, and notifies with callbacks. + /// + public class OVRBodyTrackingStateListener : MonoBehaviour + { + /// + /// General availability state of body tracking + /// + public enum BodyInputState + { + /// + /// Calculation is not yet finished + /// + None, + /// + /// The headset is not even connected + /// + HeadsetNotConnected, + /// + /// Headset is connected, but body tracking is missing (permissions, OS, Link version) + /// + BodyTrackingNotAvailable, + /// + /// Body tracking data is available, all is well. + /// + BodyTrackingAvailable + } + + /// + /// Named body tracking state listeners + /// + [System.Serializable] + public class StateListeners + { + public UnityEvent HeadsetNotConnected = new UnityEvent(); + public UnityEvent BodyTrackingNotWorking = new UnityEvent(); + public UnityEvent BodyTrackingWorking = new UnityEvent(); + + public void ExecuteCallbacksByState(BodyInputState state) + { + switch (state) + { + case BodyInputState.HeadsetNotConnected: + HeadsetNotConnected.Invoke(); + break; + case BodyInputState.BodyTrackingNotAvailable: + BodyTrackingNotWorking.Invoke(); + break; + case BodyInputState.BodyTrackingAvailable: + BodyTrackingWorking.Invoke(); + break; + } + } + } + + private BodyInputState _currentState; + + /// + /// Named body tracking state listeners + /// + [Tooltip(OVRBodyTrackingStateListenerTooltips.StateListeners)] + [SerializeField] + protected StateListeners _stateListeners; + + /// + /// How many seconds before body tracking times out and is considered disconnected + /// + [Tooltip(OVRBodyTrackingStateListenerTooltips.MaxWaitTimeForBodyTracking)] + [SerializeField] + private float _maxWaitTimeForBodyTracking = 2; + + private float _durationBodyTrackingIsntWorking; + + private static OVRPlugin.BodyState _bodyState; + + private void Start() + { + _currentState = BodyInputState.None; + _durationBodyTrackingIsntWorking = 0; + } + + private void Refresh() + { + if (_currentState == BodyInputState.BodyTrackingAvailable) + { + return; + } + BodyInputState nextState = _currentState; + if (nextState == BodyInputState.None) + { + nextState = BodyInputState.HeadsetNotConnected; + } + if (nextState == BodyInputState.HeadsetNotConnected && IsHeadsetConnected()) + { + nextState = BodyInputState.BodyTrackingNotAvailable; + } + if (nextState == BodyInputState.BodyTrackingNotAvailable && IsBodyWorking()) + { + nextState = BodyInputState.BodyTrackingAvailable; + } + if (_durationBodyTrackingIsntWorking < _maxWaitTimeForBodyTracking) + { + // ignore lag spikes, like when a scene is loading in the editor + if (Time.unscaledDeltaTime > 1) + { + return; + } + _durationBodyTrackingIsntWorking += Time.unscaledDeltaTime; + if (nextState != BodyInputState.BodyTrackingAvailable) + { + return; + } + } + if (_currentState != nextState) + { + _stateListeners.ExecuteCallbacksByState(nextState); + _currentState = nextState; + enabled = false; + } + } + + /// + /// Check if the headset is connected in this scene. TODO validate with other experts + /// + /// + public static bool IsHeadsetConnected() + { + return Application.platform == RuntimePlatform.Android || OVRManager.runtimeSettings != null; + } + + /// + /// Check if the body tracking is working in this scene. + /// + /// + private static bool IsBodyWorking() + { + return OVRPlugin.GetBodyState(OVRPlugin.Step.Render, ref _bodyState); + } + + private void Update() + { + Refresh(); + } + } +} diff --git a/Runtime/Scripts/Utils/OVRBodyTrackingStateListener.cs.meta b/Runtime/Scripts/Utils/OVRBodyTrackingStateListener.cs.meta new file mode 100644 index 00000000..63da5506 --- /dev/null +++ b/Runtime/Scripts/Utils/OVRBodyTrackingStateListener.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5482f7aeddd088c4996446ae2f4ef04c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Utils/OVRInputBinding.cs b/Runtime/Scripts/Utils/OVRInputBinding.cs new file mode 100644 index 00000000..7ecb811a --- /dev/null +++ b/Runtime/Scripts/Utils/OVRInputBinding.cs @@ -0,0 +1,138 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEngine; +using UnityEngine.Events; + +namespace Oculus.Movement.Utils +{ + /// + /// Reads inputs from and passes that input to Unity objects + /// + public class OVRInputBinding : MonoBehaviour + { + /// + /// Triggered by changes to + /// + [System.Serializable] + public class UnityEvent_bool : UnityEvent { } + + /// + /// Triggered by changes to + /// + [System.Serializable] + public class UnityEvent_Vector2 : UnityEvent { } + + /// + /// Data structure identifying an OVRInput to bind to a boolean event + /// + [System.Serializable] + public class ButtonBinding + { + public string name; + public OVRInput.Button Button = OVRInput.Button.Two; + public OVRInput.Controller Controller = OVRInput.Controller.RTouch; + public UnityEvent_bool Notify; + private bool _valueLastCheck; + + public bool IsActive => OVRInput.Get(Button, Controller); + + public void Update() + { + bool active = IsActive; + if (active != _valueLastCheck) + { + Notify.Invoke(active); + _valueLastCheck = active; + } + } + + public override string ToString() + { + return $"{Controller}:{Button}"; + } + } + + /// + /// Data structure identifying an OVRInput to bind to a Vector2 event + /// + [System.Serializable] + public class JoystickBinding + { + public string name; + public OVRInput.Axis2D Axis; + public UnityEvent_Vector2 Notify; + private Vector2 _valueLastCheck; + + public Vector2 Input => OVRInput.Get(Axis); + + public void Update() + { + Vector2 active = Input; + if (active != _valueLastCheck) + { + Notify.Invoke(active); + _valueLastCheck = active; + } + } + + public override string ToString() + { + return $"{Axis}"; + } + } + + /// + /// Button state listeners + /// + [Tooltip(OVRInputBindingTooltips.ButtonBindings)] + [SerializeField] + private ButtonBinding[] _buttonBindings; + + /// + /// Joysticks state listeners + /// + [Tooltip(OVRInputBindingTooltips.JoystickBindings)] + [SerializeField] + private JoystickBinding[] joystickBindings; + + /// + /// Check input bindings on + /// + [Tooltip(OVRInputBindingTooltips.OnUpdate)] + [SerializeField] + private bool _onUpdate; + + /// + /// Check input bindings on + /// + [Tooltip(OVRInputBindingTooltips.OnFixedUpdate)] + [SerializeField] + private bool _onFixedUpdate = true; + + private void UpdateBindings() + { + for (int i = 0; i < _buttonBindings.Length; ++i) + { + _buttonBindings[i].Update(); + } + } + + /// + private void Update() + { + if (_onUpdate) + { + UpdateBindings(); + } + } + + /// + private void FixedUpdate() + { + if (_onFixedUpdate) + { + UpdateBindings(); + } + } + } +} diff --git a/Runtime/Scripts/Utils/OVRInputBinding.cs.meta b/Runtime/Scripts/Utils/OVRInputBinding.cs.meta new file mode 100644 index 00000000..715b24fc --- /dev/null +++ b/Runtime/Scripts/Utils/OVRInputBinding.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9d204f528119c6340a9d51a987212abf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Utils/OVRSkeletonBoneVisualizer.cs b/Runtime/Scripts/Utils/OVRSkeletonBoneVisualizer.cs index 25342fdf..9b4c262c 100644 --- a/Runtime/Scripts/Utils/OVRSkeletonBoneVisualizer.cs +++ b/Runtime/Scripts/Utils/OVRSkeletonBoneVisualizer.cs @@ -3,6 +3,7 @@ using Oculus.Movement.AnimationRigging; using UnityEngine; using UnityEngine.Assertions; +using static OVRUnityHumanoidSkeletonRetargeter; namespace Oculus.Movement.Utils { @@ -11,7 +12,7 @@ namespace Oculus.Movement.Utils /// [DefaultExecutionOrder(230)] public class OVRSkeletonBoneVisualizer - : BoneVisualizer + : BoneVisualizer { /// /// OVRSkeleton component to visualize bones for. @@ -48,7 +49,7 @@ protected override int GetBoneCount() /// protected override BoneTuple GetBoneTuple(int currentBone) { - var boneTuple = CustomMappings.OVRSkeletonBoneIdToJointPair[(OVRSkeleton.BoneId)currentBone]; + var boneTuple = OVRHumanBodyBonesMappings.BoneIdToJointPair[(OVRSkeleton.BoneId)currentBone]; return new BoneTuple((int)boneTuple.Item1, (int)boneTuple.Item2); } @@ -72,7 +73,7 @@ protected override bool TryGetBoneTransforms(BoneTuple tupleItem, _ovrSkeletonComp, (OVRSkeleton.BoneId)tupleItem.FirstBoneId, _visualizeBindPose); - secondJoint = (tupleItem.SecondBoneId >= (int)CustomMappings.BodyTrackingBoneId.Body_End) + secondJoint = (tupleItem.SecondBoneId >= (int)OVRHumanBodyBonesMappings.BodyTrackingBoneId.Body_End) ? firstJoint.GetChild(0) : RiggingUtilities.FindBoneTransformFromSkeleton(_ovrSkeletonComp, (OVRSkeleton.BoneId)tupleItem.SecondBoneId, _visualizeBindPose); @@ -82,7 +83,7 @@ protected override bool TryGetBoneTransforms(BoneTuple tupleItem, /// protected override AvatarMaskBodyPart GetAvatarBodyPart(int currentBone) { - return CustomMappings.OVRSkeletonBoneIdToAvatarBodyPart[(OVRSkeleton.BoneId)currentBone]; + return BoneMappingsExtension.OVRSkeletonBoneIdToAvatarBodyPart[(OVRSkeleton.BoneId)currentBone]; } /// diff --git a/Runtime/Scripts/Utils/ReorderInHierarchy.cs b/Runtime/Scripts/Utils/ReorderInHierarchy.cs new file mode 100644 index 00000000..e5ecd378 --- /dev/null +++ b/Runtime/Scripts/Utils/ReorderInHierarchy.cs @@ -0,0 +1,198 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEngine; + +namespace Oculus.Movement.Utils +{ + /// + /// Used to change hierarchy at runtime. + /// Allows arrangement in a more intuitive manner during edit time. + /// + public class ReorderInHierarchy : MonoBehaviour + { + public enum HowToReorder + { + /// + /// Do not touch the hierarchy + /// + None, + /// + /// Move this to be a child of the given target + /// + BecomeChildOf, + /// + /// Move the given target to be a child of this + /// + BecomeParentOf, + /// + /// Move this to be a child of the given target's parent, after the given target + /// + BecomeSiblingAfter, + /// + /// Move this to be a child of the given target's parent, before the given target + /// + BecomeSiblingBefore, + /// + /// Move this to be a child of the given target, and set position/rotation to zero + /// + BecomeChildOfAndLoseOldPosition, + /// + /// Move the given target to be a child of this, set target's position/rotation to zero + /// + BecomeParentOfAndClearOldPosition, + } + + /// + /// How to reorder this transform in the hierarchy + /// + [Tooltip(ReorderInHierarchyTooltips.HowToReorder)] + [SerializeField] + private HowToReorder _howToReorder; + + /// + /// Which object to reorder in relation to + /// + [Tooltip(ReorderInHierarchyTooltips.Target)] + [SerializeField] + private Transform _target; + + /// + /// Which object to reorder in relation to + /// + public Transform Target + { + get => _target; + set => _target = value; + } + + /// + private void Start() + { + DoActivateTrigger(); + } + + /// + /// Do the reordering defined by this component + /// + public void DoActivateTrigger() + { + switch (_howToReorder) + { + case HowToReorder.BecomeChildOf: + BecomeChildOf(transform, _target); + break; + case HowToReorder.BecomeParentOf: + BecomeParentOf(transform, _target); + break; + case HowToReorder.BecomeSiblingAfter: + BecomeSiblingAfter(transform, _target); + break; + case HowToReorder.BecomeSiblingBefore: + transform.parent = _target.parent; + transform.SetSiblingIndex(_target.GetSiblingIndex()); + break; + case HowToReorder.BecomeChildOfAndLoseOldPosition: + BecomeChildOfLoseOldPosition(transform, _target); + break; + case HowToReorder.BecomeParentOfAndClearOldPosition: + BecomeParentOfLoseOldPosition(transform, _target); + break; + } + } + + /// + /// + /// + /// + /// + public static void BecomeChildOf(Transform transform, Transform newParent) + { + transform.SetParent(newParent); + } + + /// + /// + /// + /// + /// + public static void BecomeParentOf(Transform transform, Transform newChild) + { + newChild.SetParent(transform); + } + + /// + /// + /// + /// + /// + public static void BecomeChildOfLoseOldPosition(Transform transform, Transform newParent) + { + transform.SetParent(newParent, false); + } + + /// + /// + /// + /// + /// + public static void BecomeParentOfLoseOldPosition(Transform transform, Transform newChild) + { + newChild.SetParent(transform, false); + } + + /// + /// + /// + /// + /// + public static void BecomeSiblingAfter(Transform transform, Transform sibling) + { + BecomeChildOf(transform, sibling.parent); + transform.SetSiblingIndex(sibling.GetSiblingIndex() + 1); + } + + /// + /// + /// + /// + /// + public static void BecomeSiblingBefore(Transform transform, Transform sibling) + { + BecomeChildOf(transform, sibling.parent); + transform.SetSiblingIndex(sibling.GetSiblingIndex()); + } + + /// + /// + /// + /// + public void BecomeChildOf(Transform newParent) => BecomeChildOf(transform, newParent); + + /// + /// + /// + /// + public void BecomeParentOf(Transform newChild) => BecomeParentOf(transform, newChild); + + /// + /// + /// + /// + public void BecomeChildOfLoseOldPosition(Transform newParent) => + BecomeChildOfLoseOldPosition(transform, newParent); + + /// + /// + /// + /// + public void BecomeSiblingAfter(Transform sibling) => + BecomeSiblingAfter(transform, sibling); + + /// + /// + /// + /// + public void BecomeSiblingBefore(Transform sibling) => + BecomeSiblingBefore(transform, sibling); + } +} diff --git a/Runtime/Scripts/Utils/ReorderInHierarchy.cs.meta b/Runtime/Scripts/Utils/ReorderInHierarchy.cs.meta new file mode 100644 index 00000000..01758a67 --- /dev/null +++ b/Runtime/Scripts/Utils/ReorderInHierarchy.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cb3dbd7ff7413e44792bf7659e9871ae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Utils/SuggestBodyTrackingCalibrationButton.cs b/Runtime/Scripts/Utils/SuggestBodyTrackingCalibrationButton.cs new file mode 100644 index 00000000..1a09e746 --- /dev/null +++ b/Runtime/Scripts/Utils/SuggestBodyTrackingCalibrationButton.cs @@ -0,0 +1,78 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEngine; +using UnityEngine.Assertions; +using static OVRPlugin; + +namespace Oculus.Movement.Utils +{ + /// + /// Calls calibration to allow setting one's height. + /// + public class SuggestBodyTrackingCalibrationButton : MonoBehaviour + { + /// + /// The text to modify once height is modified. + /// + [SerializeField] + [Tooltip(SuggestBodyTrackingCalibrationButtonTooltips.WorldText)] + protected TMPro.TextMeshPro _worldText; + /// + /// The height to set in meters. + /// + [SerializeField] + [Tooltip(SuggestBodyTrackingCalibrationButtonTooltips.Height)] + protected float _height = 1.80f; + /// + /// Allows calibration on startup. + /// + [SerializeField] + [Tooltip(SuggestBodyTrackingCalibrationButtonTooltips.CalibrateOnStartup)] + protected bool _calibrateOnStartup = false; + + private const string _BAD_CALIBRATION_TEXT = "Calibration error!"; + + private void Awake() + { + Assert.IsNotNull(_worldText); + Assert.IsTrue(_height > Mathf.Epsilon, "Height must be greater than 0 meters."); + + if (_calibrateOnStartup) + { + CalibrateHeight(); + } + } + + /// + /// Calibrates height to the value specified by this script's field. + /// + public void CalibrateHeight() + { + BodyTrackingCalibrationInfo calibrationInfo; + + calibrationInfo.BodyHeight = _height; + bool calibrationResult = OVRPlugin.SuggestBodyTrackingCalibrationOverride(calibrationInfo); + + UpdateText(calibrationResult); + } + + private void UpdateText(bool calibrationResult) + { + if (!calibrationResult) + { + _worldText.text = _BAD_CALIBRATION_TEXT; + return; + } + + _worldText.text = $"Calibrated.\nHeight: {_height} m, imperial: {GetHeightImperial()}."; + } + + private string GetHeightImperial() + { + const float feetPerMeter = 3.28084f; + float feet = _height * feetPerMeter; + float inches = 12.0f * (feet - (float)System.Math.Floor(feet)); + return $"{(int)feet}'{(int)inches}''"; + } + } +} diff --git a/Runtime/Scripts/Utils/SuggestBodyTrackingCalibrationButton.cs.meta b/Runtime/Scripts/Utils/SuggestBodyTrackingCalibrationButton.cs.meta new file mode 100644 index 00000000..be28beb1 --- /dev/null +++ b/Runtime/Scripts/Utils/SuggestBodyTrackingCalibrationButton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b740bb2e35294494f9eeddeba5e8fb8b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Utils/ToggleConstraintsSkeletonState.cs b/Runtime/Scripts/Utils/ToggleConstraintsSkeletonState.cs new file mode 100644 index 00000000..64f924b9 --- /dev/null +++ b/Runtime/Scripts/Utils/ToggleConstraintsSkeletonState.cs @@ -0,0 +1,59 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using Oculus.Interaction; +using UnityEngine; +using UnityEngine.Animations.Rigging; +using UnityEngine.Assertions; + +namespace Oculus.Movement.Utils +{ + /// + /// If the bones are not valid then turn off constraints specified. + /// This is useful if a constraint depends on the skeleton code to set the + /// value of a bone every frame. Like a multi-position constraint that applies + /// an offset. + /// + public class ToggleConstraintsSkeletonState : MonoBehaviour + { + /// + /// Constraints to control the weight of. + /// + [SerializeField, Interface(typeof(IRigConstraint))] + [Tooltip(ToggleConstraintsSkeletonStateTooltips.Constraints)] + private MonoBehaviour[] _constraints; + + /// + /// The skeleton object that needs to be tracked. + /// + [SerializeField] + [Tooltip(ToggleConstraintsSkeletonStateTooltips.Skeleton)] + private OVRSkeleton _skeleton; + + private IRigConstraint[] _iRigConstraints; + private float[] _originalConstraintWeights; + + private void Awake() + { + Assert.IsTrue(_constraints != null && _constraints.Length > 0); + Assert.IsNotNull(_skeleton); + + _iRigConstraints = new IRigConstraint[_constraints.Length]; + _originalConstraintWeights = new float[_constraints.Length]; + for (int i = 0; i < _constraints.Length; i++) + { + _iRigConstraints[i] = _constraints[i] as IRigConstraint; + _originalConstraintWeights[i] = _iRigConstraints[i].weight; + Assert.IsNotNull(_iRigConstraints[i]); + } + } + + private void Update() + { + bool skeletonValid = _skeleton.IsInitialized && _skeleton.IsDataValid; + for (int i = 0; i < _iRigConstraints.Length; i++) + { + _iRigConstraints[i].weight = skeletonValid ? _originalConstraintWeights[i] : 0.0f; + } + } + } +} diff --git a/Runtime/Scripts/Utils/ToggleConstraintsSkeletonState.cs.meta b/Runtime/Scripts/Utils/ToggleConstraintsSkeletonState.cs.meta new file mode 100644 index 00000000..a2e46633 --- /dev/null +++ b/Runtime/Scripts/Utils/ToggleConstraintsSkeletonState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a87c462fa9931da4b872f37c96a3102a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Utils/TransformsFollowMe.cs b/Runtime/Scripts/Utils/TransformsFollowMe.cs new file mode 100644 index 00000000..0dc61f6d --- /dev/null +++ b/Runtime/Scripts/Utils/TransformsFollowMe.cs @@ -0,0 +1,79 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEngine; + +namespace Oculus.Movement.Utils +{ + /// + /// Moves other transforms to this object constantly during LateUpdate + /// + public class TransformsFollowMe : MonoBehaviour + { + /// + /// Used by objects being moved to mark who is moving them. + /// + public class Follower : MonoBehaviour + { + public TransformsFollowMe following; + } + + /// + /// Other Transforms that will follow this Transform + /// + [SerializeField] + [Tooltip(TransformsFollowTooltips.FollowingTransforms)] + private Transform[] _transformsFollowingMe; + + /// + /// cached transform, for access performance + /// + private Transform _transform; + + private void Awake() + { + _transform = transform; + } + + private void Start() + { + foreach (Transform who in _transformsFollowingMe) + { + Follower follower = who.gameObject.AddComponent(); + follower.following = this; + } + } + + protected void LateUpdate() + { + DoFollowMe(); + } + + /// + /// Moves the target transforms positions and rotations to this transform + /// + public void DoFollowMe() + { + if (_transformsFollowingMe == null || _transformsFollowingMe.Length == 0) + { + return; + } + foreach (Transform follower in _transformsFollowingMe) + { + follower.position = _transform.position; + follower.rotation = _transform.rotation; + } + } + + /// + /// Used to reset transforms that are following this transform + /// + public void SetTransformsToZero() + { + foreach (Transform follower in _transformsFollowingMe) + { + follower.localPosition = Vector3.zero; + follower.localRotation = Quaternion.identity; + } + } + } +} diff --git a/Runtime/Scripts/Utils/TransformsFollowMe.cs.meta b/Runtime/Scripts/Utils/TransformsFollowMe.cs.meta new file mode 100644 index 00000000..8cc39d0b --- /dev/null +++ b/Runtime/Scripts/Utils/TransformsFollowMe.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 35bd901969c36e54fad20befcb2b9325 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Utils/UnityInputBinding.cs b/Runtime/Scripts/Utils/UnityInputBinding.cs new file mode 100644 index 00000000..dde665b9 --- /dev/null +++ b/Runtime/Scripts/Utils/UnityInputBinding.cs @@ -0,0 +1,143 @@ +// Copyright (c) Meta Platforms, Inc. and affiliates. + +using UnityEngine; +using UnityEngine.Events; + +namespace Oculus.Movement.Utils +{ + /// + /// Listens to Unity press and release, as well as + /// "Hoizontal" and "Vertical" + /// + public class UnityInputBinding : MonoBehaviour + { + /// + /// Triggered by press and release + /// + [System.Serializable] + public class UnityEvent_bool : UnityEvent { } + + /// + /// Triggered by "Hoizontal" and "Vertical" + /// + [System.Serializable] + public class UnityEvent_Vector2 : UnityEvent { } + + /// + /// Input binding meta data that wraps around + /// + [System.Serializable] + public class KeyBinding + { + public string name; + public KeyCode KeyCode = KeyCode.Escape; + public UnityEvent_bool Notify; + private bool _valueLastCheck; + + public bool IsActive => Input.GetKey(KeyCode); + + public void Update() + { + bool active = IsActive; + if (active != _valueLastCheck) + { + Notify.Invoke(active); + _valueLastCheck = active; + } + } + + public override string ToString() + { + return $"{KeyCode}"; + } + } + + /// + /// Triggered by "Jump" + /// + [Tooltip(UnityInputBindingTooltips.ButtonJump)] + [SerializeField] + private UnityEvent_bool _buttonJump; + + /// + /// Triggered by "Hoizontal" and "Vertical" + /// + [Tooltip(UnityInputBindingTooltips.AxisHorizontalVertical)] + [SerializeField] + private UnityEvent_Vector2 _axisHorizontalVertical; + + /// + /// Key bindings listening to + /// + [Tooltip(UnityInputBindingTooltips.KeyBindings)] + [SerializeField] + private KeyBinding[] _keyBindings; + + /// + /// Check input bindings on + /// + [Tooltip(OVRInputBindingTooltips.OnUpdate)] + [SerializeField] + private bool _onUpdate; + + /// + /// Check input bindings on + /// + [Tooltip(OVRInputBindingTooltips.OnFixedUpdate)] + [SerializeField] + private bool _onFixedUpdate = true; + + private bool _jumpLastCheck; + private Vector2 _axisLastCheck; + + private void Update() + { + if (_onUpdate) + { + MoveControls(); + JumpControls(); + UpdateBindings(); + } + } + + private void FixedUpdate() + { + if (_onFixedUpdate) + { + MoveControls(); + JumpControls(); + UpdateBindings(); + } + } + + private void MoveControls() + { + Vector2 axisInput = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical")); + bool inputIsMeaningful = axisInput != Vector2.zero; + bool inputIsDiffrentFromLastFrame = axisInput != _axisLastCheck; + if (inputIsMeaningful || inputIsDiffrentFromLastFrame) + { + _axisLastCheck = axisInput; + _axisHorizontalVertical.Invoke(axisInput); + } + } + + private void JumpControls() + { + bool jump = Input.GetButton("Jump"); + if (jump != _jumpLastCheck) + { + _jumpLastCheck = jump; + _buttonJump.Invoke(_jumpLastCheck); + } + } + + private void UpdateBindings() + { + for (int i = 0; i < _keyBindings.Length; ++i) + { + _keyBindings[i].Update(); + } + } + } +} diff --git a/Runtime/Scripts/Utils/UnityInputBinding.cs.meta b/Runtime/Scripts/Utils/UnityInputBinding.cs.meta new file mode 100644 index 00000000..490f2dfa --- /dev/null +++ b/Runtime/Scripts/Utils/UnityInputBinding.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9466ee2425d200c488b8bbab62331e51 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Animations/AnimationControllers/LocomotionController.controller b/Samples/Animations/AnimationControllers/LocomotionController.controller new file mode 100644 index 00000000..70b25eee --- /dev/null +++ b/Samples/Animations/AnimationControllers/LocomotionController.controller @@ -0,0 +1,258 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-5063812588664490220 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: NotGrounded + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -1861420467856905545} + 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: -203655887218126122, guid: 572b8ea906288054f9916e9ad904dfc7, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-1861420467856905545 +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: Grounded + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 4883863835893273227} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.2733132 + m_TransitionOffset: 0.0048955847 + m_ExitTime: 0.04086077 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &-1058654114219990925 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 4883863835893273227} + m_Position: {x: 180, y: 90, z: 0} + - serializedVersion: 1 + m_State: {fileID: -5063812588664490220} + m_Position: {x: 180, y: 180, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: -20, y: 140, z: 0} + m_EntryPosition: {x: -20, y: 90, z: 0} + m_ExitPosition: {x: -20, y: 190, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 4883863835893273227} +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: LocomotionController + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: Horizontal + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: Vertical + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: Grounded + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 1 + m_Controller: {fileID: 9100000} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: -1058654114219990925} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1102 &4883863835893273227 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Grounded + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 8014697088086526916} + 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: 7250271478009848467} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!206 &7250271478009848467 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Childs: + - serializedVersion: 2 + m_Motion: {fileID: -203655887218126122, guid: f52e17511f1b7bc45995993300fb20e7, type: 3} + m_Threshold: 0 + m_Position: {x: 0, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: Horizontal + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -203655887218126122, guid: a3d66b800dd7c2f42aa5710773bf7542, type: 3} + m_Threshold: 0.109375 + m_Position: {x: 0.0625, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: Horizontal + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -203655887218126122, guid: 1924f4d4a71c45e4287c0e9d7a1522ef, type: 3} + m_Threshold: 0.21875 + m_Position: {x: 0, y: -0.0625} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: Horizontal + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -203655887218126122, guid: 7606744596dccd148a86226a628960ce, type: 3} + m_Threshold: 0.328125 + m_Position: {x: -0.0625, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: Horizontal + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -203655887218126122, guid: 8a9eaf8b249c3474eb0aef423d724c99, type: 3} + m_Threshold: 0.4375 + m_Position: {x: 1, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: Horizontal + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -203655887218126122, guid: e7ade2128e866bb4285fb2213b43d1fb, type: 3} + m_Threshold: 0.546875 + m_Position: {x: 0, y: -1} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: Horizontal + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -203655887218126122, guid: a3ee2fe68e3a00649bbe1bfdb40174df, type: 3} + m_Threshold: 0.65625 + m_Position: {x: -1, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: Horizontal + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -203655887218126122, guid: 866d1a7bd0785bb4b86b91fa35345c9a, type: 3} + m_Threshold: 0.765625 + m_Position: {x: 0, y: 0.0625} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: Horizontal + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -203655887218126122, guid: b389312b068b8174f8e603dfa61f1586, type: 3} + m_Threshold: 0.875 + m_Position: {x: 0, y: 1} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: Horizontal + m_Mirror: 0 + m_BlendParameter: Horizontal + m_BlendParameterY: Vertical + m_MinThreshold: 0 + m_MaxThreshold: 0.875 + m_UseAutomaticThresholds: 1 + m_NormalizedBlendValues: 0 + m_BlendType: 3 +--- !u!1101 &8014697088086526916 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: Grounded + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -5063812588664490220} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.32441628 + m_TransitionOffset: 0.01676481 + m_ExitTime: 0.0011774227 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 diff --git a/Samples/Animations/AnimationControllers/LocomotionController.controller.meta b/Samples/Animations/AnimationControllers/LocomotionController.controller.meta new file mode 100644 index 00000000..8587220a --- /dev/null +++ b/Samples/Animations/AnimationControllers/LocomotionController.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f138d28f925fa6442b115318a86915ef +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Audio/blip.wav b/Samples/Audio/blip.wav new file mode 100644 index 00000000..f4586de9 Binary files /dev/null and b/Samples/Audio/blip.wav differ diff --git a/Samples/Audio/blip.wav.meta b/Samples/Audio/blip.wav.meta new file mode 100644 index 00000000..05850671 --- /dev/null +++ b/Samples/Audio/blip.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 918464e17aa7bb14fa72a0144a3ebdca +AudioImporter: + externalObjects: {} + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Audio/jump.wav b/Samples/Audio/jump.wav new file mode 100644 index 00000000..57e16847 Binary files /dev/null and b/Samples/Audio/jump.wav differ diff --git a/Samples/Audio/jump.wav.meta b/Samples/Audio/jump.wav.meta new file mode 100644 index 00000000..4ce9739d --- /dev/null +++ b/Samples/Audio/jump.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 81919ae02952da84f8f0cf6417cb63f5 +AudioImporter: + externalObjects: {} + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Materials/Environment/grid_lg_Normal.mat b/Samples/Materials/Environment/grid_lg_Normal.mat new file mode 100644 index 00000000..e7c436aa --- /dev/null +++ b/Samples/Materials/Environment/grid_lg_Normal.mat @@ -0,0 +1,103 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: grid_lg_Normal + m_Shader: {fileID: 4800000, guid: 2fbcc86ab1452f94a919d19a83abf926, type: 3} + m_ValidKeywords: + - _NORMALMAP + - _SPECGLOSSMAP + - _SPECULAR_AFFECT_BY_NDOTL + m_InvalidKeywords: + - SPECULAR_AFFECT_BY_LIGHT + - _METALLICGLOSSMAP + - _SPECULAR_AFFECT_BY_LIGHT + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 013e335da2b35b242805034b64211fc1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 4, y: 4} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 4, y: 4} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 2800000, guid: 51b20b409acb5ae4a80122fbc020db78, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 2800000, guid: 51b20b409acb5ae4a80122fbc020db78, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AreaLightSampleDistance: 0.5 + - _AreaLightSampleToggle: 0 + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DiffuseWrapColorMult: 2 + - _DiffuseWrapDist: 0.3 + - _DiffuseWrapEnabled: 0 + - _DstBlend: 0 + - _EmissionStrength: 1 + - _GlossMapScale: 0.888 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _RecalculateNormalsToggle: 0 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SpecularityNDotL: 1 + - _SrcBlend: 1 + - _StencilComp: 3 + - _StencilValue: 0 + - _UVSec: 0 + - _VertexDisplShadows: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.23529412, g: 0.23529412, b: 0.23529412, a: 1} + - _DiffuseWrapColor: {r: 1, g: 0.29999998, b: 0.19999996, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Samples/Materials/Environment/grid_lg_Normal.mat.meta b/Samples/Materials/Environment/grid_lg_Normal.mat.meta new file mode 100644 index 00000000..6b3001a1 --- /dev/null +++ b/Samples/Materials/Environment/grid_lg_Normal.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6b1da7fede8560949bc2e2816b5f9f7e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Materials/Environment/grid_sm_Normal.mat b/Samples/Materials/Environment/grid_sm_Normal.mat new file mode 100644 index 00000000..2358f13a --- /dev/null +++ b/Samples/Materials/Environment/grid_sm_Normal.mat @@ -0,0 +1,103 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: grid_sm_Normal + m_Shader: {fileID: 4800000, guid: 2fbcc86ab1452f94a919d19a83abf926, type: 3} + m_ValidKeywords: + - _NORMALMAP + - _SPECGLOSSMAP + - _SPECULAR_AFFECT_BY_NDOTL + m_InvalidKeywords: + - SPECULAR_AFFECT_BY_LIGHT + - _METALLICGLOSSMAP + - _SPECULAR_AFFECT_BY_LIGHT + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 2800000, guid: afbac3780e85a8b41ab5da06d52008eb, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 25, y: 4} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 25, y: 4} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 2800000, guid: 51b20b409acb5ae4a80122fbc020db78, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 2800000, guid: 51b20b409acb5ae4a80122fbc020db78, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AreaLightSampleDistance: 0.5 + - _AreaLightSampleToggle: 0 + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DiffuseWrapColorMult: 2 + - _DiffuseWrapDist: 0.3 + - _DiffuseWrapEnabled: 0 + - _DstBlend: 0 + - _EmissionStrength: 1 + - _GlossMapScale: 0.519 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _RecalculateNormalsToggle: 0 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SpecularityNDotL: 1 + - _SrcBlend: 1 + - _StencilComp: 3 + - _StencilValue: 0 + - _UVSec: 0 + - _VertexDisplShadows: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.23529412, g: 0.23529412, b: 0.23529412, a: 1} + - _DiffuseWrapColor: {r: 1, g: 0.29999998, b: 0.19999996, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Samples/Materials/Environment/grid_sm_Normal.mat.meta b/Samples/Materials/Environment/grid_sm_Normal.mat.meta new file mode 100644 index 00000000..f45d6420 --- /dev/null +++ b/Samples/Materials/Environment/grid_sm_Normal.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e35a7dcffa71bc34ebdfbe151325efc0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Materials/UI/ISDKButton.mat b/Samples/Materials/UI/ISDKButton.mat new file mode 100644 index 00000000..a38419f8 --- /dev/null +++ b/Samples/Materials/UI/ISDKButton.mat @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ISDKButton + m_Shader: {fileID: 4800000, guid: f5402b56b5883a74fabd5d887396fb10, type: 3} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 7cf9dc35870a5a94993995fba2695241, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Samples/Materials/UI/ISDKButton.mat.meta b/Samples/Materials/UI/ISDKButton.mat.meta new file mode 100644 index 00000000..bce1dd0e --- /dev/null +++ b/Samples/Materials/UI/ISDKButton.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9de3fd2ff03786e40a634ce417f5b951 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Materials/UI/LocomotionButton.mat b/Samples/Materials/UI/LocomotionButton.mat new file mode 100644 index 00000000..93da6868 --- /dev/null +++ b/Samples/Materials/UI/LocomotionButton.mat @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: LocomotionButton + m_Shader: {fileID: 4800000, guid: f5402b56b5883a74fabd5d887396fb10, type: 3} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 291846d97c00ed941b195b7a6fb25f10, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Samples/Materials/UI/LocomotionButton.mat.meta b/Samples/Materials/UI/LocomotionButton.mat.meta new file mode 100644 index 00000000..ad133570 --- /dev/null +++ b/Samples/Materials/UI/LocomotionButton.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c532a3f48f2a70348b39263ec7ab50ed +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Models/Aura/Legacy.meta b/Samples/Models/Aura/Legacy.meta new file mode 100644 index 00000000..10f664c8 --- /dev/null +++ b/Samples/Models/Aura/Legacy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6b603c01cb0cb47ef80d6d6e4e862ff6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Models/Aura/Legacy/aura_rig.fbx b/Samples/Models/Aura/Legacy/aura_rig.fbx new file mode 100644 index 00000000..4f9a555d Binary files /dev/null and b/Samples/Models/Aura/Legacy/aura_rig.fbx differ diff --git a/Samples/Models/Aura/Legacy/aura_rig.fbx.meta b/Samples/Models/Aura/Legacy/aura_rig.fbx.meta new file mode 100644 index 00000000..9625ffc5 --- /dev/null +++ b/Samples/Models/Aura/Legacy/aura_rig.fbx.meta @@ -0,0 +1,1134 @@ +fileFormatVersion: 2 +guid: 97c33b5b5e467ff4982d18b3cea2fa0e +ModelImporter: + serializedVersion: 20300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 3 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: Chest + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: LeftHandWrist + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: RightHandWrist + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: LeftHandPinkyMeta + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: RightHandPinkyMeta + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: LeftHandPinkyProximal + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: RightHandPinkyProximal + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Neck + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Head + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pedalC1_L + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pedalC2_L + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pedalF1_L + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pedalD1_R + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pedalF2_L + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pedalD2_R + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pedalF3_L + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pedalD3_R + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pedalF4_L + humanName: LeftHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pedalD4_R + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: LeftHandPinkyIntermediate + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: RightHandPinkyIntermediate + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: pedalC4_L + humanName: LeftEye + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: aura_rig(Clone) + parentName: + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: geom + parentName: aura_rig(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: hands + parentName: geom + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: head_grp + parentName: geom + position: {x: -0.000000009536743, y: 1.549946, z: 0.038412716} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: head_parts + parentName: head_grp + position: {x: 0.000000009536743, y: -1.549946, z: -0.038412716} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: eye_L_grp + parentName: head_parts + position: {x: -0.0414308, y: 1.6252791, z: 0.124241315} + rotation: {x: 0, y: -0.034899496, z: -0, w: 0.99939084} + scale: {x: 1.4441309, y: 1.4441309, z: 1.4441309} + - name: corneaL_geo + parentName: eye_L_grp + position: {x: -0.000011890424, y: -0.0000000032372087, z: 0.00017004096} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: eye_R_grp + parentName: head_parts + position: {x: 0.041456614, y: 1.6252791, z: 0.124241315} + rotation: {x: 0, y: 0.034899496, z: -0, w: 0.99939084} + scale: {x: 1.4441309, y: 1.4441309, z: 1.4441309} + - name: corneaL_geo 1 + parentName: eye_R_grp + position: {x: -0.000011890424, y: -0.0000000032372087, z: 0.00017004096} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: head_abdomen_ply + parentName: head_parts + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: mouth_ply + parentName: head_parts + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: tentacles_ply + parentName: head_parts + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: head_ply + parentName: head_grp + position: {x: 0.000000009536743, y: -1.549946, z: -0.038412716} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: wrists + parentName: geom + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Root + parentName: aura_rig(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Hips + parentName: Root + position: {x: -0, y: 0.923987, z: 0} + rotation: {x: 0.5, y: -0.5, z: -0.5, w: 0.5} + scale: {x: 1, y: 1, z: 1} + - name: LeftLegUpper + parentName: Hips + position: {x: 0.025498886, y: -0.0052829897, z: 0.079869255} + rotation: {x: -0.07001962, y: -0.0576324, z: 0.9955674, w: 0.024926713} + scale: {x: 1, y: 1, z: 1} + - name: LeftLegLower + parentName: LeftLegUpper + position: {x: -0.41976497, y: -7.457412e-12, z: -1.4210854e-16} + rotation: {x: 0, y: -0, z: -0.022465961, w: 0.99974763} + scale: {x: 1, y: 1, z: 1} + - name: LeftFootAnkle + parentName: LeftLegLower + position: {x: -0.42058298, y: -2.3996404e-11, z: -2.1316282e-16} + rotation: {x: 0.9947561, y: 0.047286812, z: 0.06870718, w: -0.059190925} + scale: {x: 1, y: 1, z: 1} + - name: LeftFootBall + parentName: LeftFootAnkle + position: {x: -0.052942585, y: 0.14392811, z: -0.0000002115523} + rotation: {x: 0.7071068, y: -0.7071068, z: -4.3297806e-17, w: 4.3297806e-17} + scale: {x: 1, y: 1, z: 1} + - name: LeftFootTip + parentName: LeftFootBall + position: {x: -0.05809766, y: -2.8865798e-17, z: 0.00000021195105} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: LeftLegLowerTwist1_jnt + parentName: LeftLegLower + position: {x: -0.14999999, y: 2.6645352e-17, z: 2.9698464e-17} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: LeftLegLowerTwist2_jnt + parentName: LeftLegLower + position: {x: -0.29999998, y: 8.881784e-18, z: 3.5527136e-17} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: LeftLegLowerTwist3_jnt + parentName: LeftLegLower + position: {x: -0.42058298, y: -2.3996386e-11, z: -1.7763567e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: LeftLegUpperTwist1_jnt + parentName: LeftLegUpper + position: {x: -0.14999999, y: 1.2212453e-17, z: -1.6792122e-17} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: LeftLegUpperTwist2_jnt + parentName: LeftLegUpper + position: {x: -0.29999998, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: LeftLegUpperTwist3_jnt + parentName: LeftLegUpper + position: {x: -0.41976497, y: -7.457412e-12, z: -1.4210854e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: RightLegUpper + parentName: Hips + position: {x: 0.025498962, y: -0.0052829897, z: -0.0798693} + rotation: {x: -0.05761964, y: 0.070019074, z: -0.024927199, w: 0.99556816} + scale: {x: 1, y: 1, z: 1} + - name: RightLegLower + parentName: RightLegUpper + position: {x: 0.41976458, y: 1.00299546e-10, z: 1.0658141e-16} + rotation: {x: 0, y: -0, z: -0.02246669, w: 0.99974763} + scale: {x: 1, y: 1, z: 1} + - name: RightFootAnkle + parentName: RightLegLower + position: {x: 0.4205833, y: 7.2067005e-11, z: 2.842171e-16} + rotation: {x: 0.9947569, y: 0.04728803, z: 0.068706885, w: -0.059178196} + scale: {x: 1, y: 1, z: 1} + - name: RightFootBall + parentName: RightFootAnkle + position: {x: 0.052658476, y: -0.14373046, z: 0.00000021875026} + rotation: {x: 0.7071068, y: -0.7071068, z: -5.143256e-16, w: 5.143256e-16} + scale: {x: 1, y: 1, z: 1} + - name: RightFootTip + parentName: RightFootBall + position: {x: 0.05824629, y: 2.160494e-15, z: -0.00000021914859} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: RightLegLowerTwist1_jnt + parentName: RightLegLower + position: {x: 0.14999999, y: 8.881784e-18, z: -3.5527136e-17} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: RightLegLowerTwist2_jnt + parentName: RightLegLower + position: {x: 0.29999998, y: 8.881784e-18, z: -3.5527136e-17} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: RightLegLowerTwist3_jnt + parentName: RightLegLower + position: {x: 0.4205833, y: 7.2067005e-11, z: 2.4868996e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: RightLegUpperTwist1_jnt + parentName: RightLegUpper + position: {x: 0.14999999, y: 8.881784e-18, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: RightLegUpperTwist2_jnt + parentName: RightLegUpper + position: {x: 0.29999998, y: 8.881784e-18, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: RightLegUpperTwist3_jnt + parentName: RightLegUpper + position: {x: 0.41976458, y: 1.0029955e-10, z: 1.0658141e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SpineLower + parentName: Hips + position: {x: -0.020219956, y: -0.032535676, z: -1.1714103e-17} + rotation: {x: 0, y: -2.1252826e-32, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SpineMiddle + parentName: SpineLower + position: {x: -0.11041183, y: 0.0110380715, z: 6.5516754e-17} + rotation: {x: 0, y: -2.1252826e-32, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SpineUpper + parentName: SpineMiddle + position: {x: -0.109367676, y: -0.025952995, z: 8.437417e-17} + rotation: {x: 0, y: -2.1252826e-32, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Chest + parentName: SpineUpper + position: {x: 0.83148897, y: -0.1138798, z: -1.3817683e-16} + rotation: {x: 0.000000029802322, y: 0.000000029802322, z: -0.04762064, w: 0.99886554} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000001} + - name: LeftShoulder + parentName: Chest + position: {x: -0.066512585, y: 0.09479429, z: 0.0282178} + rotation: {x: 0.17708462, y: 0.6600202, z: 0.22583653, w: 0.694271} + scale: {x: 1, y: 1, z: 1} + - name: LeftArmUpper + parentName: LeftShoulder + position: {x: -0.17650497, y: 4.4408918e-17, z: 8.5265126e-16} + rotation: {x: -0.093105815, y: 0.4776732, z: -0.18754953, w: 0.8532203} + scale: {x: 1, y: 1, z: 1} + - name: LeftArmLower + parentName: LeftArmUpper + position: {x: -0.25680092, y: -0.000000007970641, z: 5.684342e-16} + rotation: {x: 0.00000017136334, y: -0.000000059604638, z: -0.29681414, w: 0.95493525} + scale: {x: 0.99999994, y: 0.9999999, z: 0.99999964} + - name: LeftArmLowerTwist1_jnt + parentName: LeftArmLower + position: {x: -0.099999994, y: 0, z: -1.4210854e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: LeftArmLowerTwist2_jnt + parentName: LeftArmLower + position: {x: -0.19999999, y: -1.4210854e-16, z: -1.4210854e-16} + rotation: {x: -1.4210853e-14, y: -0, z: 1.021405e-14, w: 1} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000004} + - name: LeftArmLowerTwist3_jnt + parentName: LeftArmLower + position: {x: -0.25626543, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: LeftHandWrist + parentName: LeftArmLower + position: {x: -0.25626543, y: 0.000000011720011, z: 0} + rotation: {x: 0.66241205, y: 0.12008012, z: -0.034216613, w: 0.73866117} + scale: {x: 1, y: 1.0000007, z: 1.0000005} + - name: LeftHandIndexProximal + parentName: LeftHandWrist + position: {x: -0.09599624, y: 0.0073164543, z: -0.02355068} + rotation: {x: 0.030682534, y: 0.018855821, z: -0.04328146, w: 0.9984137} + scale: {x: 1, y: 1.0000006, z: 1.0000006} + - name: LeftHandIndexIntermediate + parentName: LeftHandIndexProximal + position: {x: -0.0379273, y: -1.4210854e-16, z: 0} + rotation: {x: -0.025852479, y: 0.007115821, z: -0.0032927024, w: 0.99963504} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000004} + - name: LeftHandIndexDistal + parentName: LeftHandIndexIntermediate + position: {x: -0.024303643, y: 4.2632563e-16, z: 4.2632563e-16} + rotation: {x: -0.016055599, y: 0.027149012, z: 0.07203376, w: 0.99690336} + scale: {x: 1.0000001, y: 0.9999998, z: 0.99999994} + - name: LeftHandIndexTip + parentName: LeftHandIndexDistal + position: {x: -0.011583036, y: -4.2632563e-16, z: -8.5265126e-16} + rotation: {x: -0, y: -0, z: -0.000000002590241, w: 1} + scale: {x: 0.99999976, y: 1, z: 0.99999994} + - name: LeftHandMiddleProximal + parentName: LeftHandWrist + position: {x: -0.09543732, y: 0.002604632, z: -0.0014387579} + rotation: {x: -0.0090666115, y: 0.051465645, z: -0.051835876, w: 0.99728745} + scale: {x: 1, y: 1.0000005, z: 1.0000005} + - name: LeftHandMiddleIntermediate + parentName: LeftHandMiddleProximal + position: {x: -0.04292699, y: -1.4210854e-16, z: 0} + rotation: {x: -0.011228377, y: 0.004379008, z: 0.0019784556, w: 0.9999255} + scale: {x: 0.9999998, y: 0.9999998, z: 0.9999997} + - name: LeftHandMiddleDistal + parentName: LeftHandMiddleIntermediate + position: {x: -0.027549583, y: 5.684342e-16, z: 1.4210854e-16} + rotation: {x: -0.034319606, y: 0.004611688, z: 0.09300699, w: 0.9950631} + scale: {x: 1.0000001, y: 1.0000004, z: 1.0000005} + - name: LeftHandMiddleTip + parentName: LeftHandMiddleDistal + position: {x: -0.0122034745, y: -2.842171e-16, z: 2.842171e-16} + rotation: {x: -0, y: -0, z: -0.00000000136788, w: 1} + scale: {x: 1, y: 1.0000002, z: 1.0000005} + - name: LeftHandPinkyMeta + parentName: LeftHandWrist + position: {x: -0.034073558, y: 0.009419835, z: 0.022998573} + rotation: {x: -0.2007117, y: 0.31314307, z: -0.07369629, w: 0.9253244} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: LeftHandPinkyProximal + parentName: LeftHandPinkyMeta + position: {x: -0.04565054, y: 0.0000009982332, z: -0.0000021940255} + rotation: {x: 0.42929384, y: -0.35590473, z: -0.019633245, w: 0.8298513} + scale: {x: 0.99999994, y: 1, z: 1.0000004} + - name: LeftHandPinkyIntermediate + parentName: LeftHandPinkyProximal + position: {x: -0.030720409, y: 4.2632563e-16, z: 1.4210854e-16} + rotation: {x: -0.03761652, y: 0.042937793, z: 0.013286165, w: 0.998281} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000001} + - name: LeftHandPinkyDistal + parentName: LeftHandPinkyIntermediate + position: {x: -0.020311384, y: -4.2632563e-16, z: 0} + rotation: {x: 0.000644572, y: -0.049170632, z: 0.024018465, w: 0.99850136} + scale: {x: 1, y: 1.0000001, z: 1.0000002} + - name: LeftHandPinkyTip + parentName: LeftHandPinkyDistal + position: {x: -0.011908775, y: 2.842171e-16, z: -4.2632563e-16} + rotation: {x: -0, y: -0, z: -7.5306145e-10, w: 1} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000005} + - name: LeftHandRingProximal + parentName: LeftHandWrist + position: {x: -0.08869379, y: 0.006529307, z: 0.017465241} + rotation: {x: -0.053159505, y: 0.12310373, z: -0.049813434, w: 0.98971623} + scale: {x: 1, y: 1.0000004, z: 1.0000005} + - name: LeftHandRingIntermediate + parentName: LeftHandRingProximal + position: {x: -0.0389961, y: 0, z: -4.2632563e-16} + rotation: {x: -0.033632584, y: 0.002789706, z: -0.005676348, w: 0.99941427} + scale: {x: 1.0000001, y: 1.0000004, z: 1.0000006} + - name: LeftHandRingDistal + parentName: LeftHandRingIntermediate + position: {x: -0.026573397, y: -1.4210854e-16, z: 0} + rotation: {x: -0.0034777145, y: -0.029179426, z: 0.025028756, w: 0.9992548} + scale: {x: 1.0000001, y: 1.0000008, z: 1.0000007} + - name: LeftHandRingTip + parentName: LeftHandRingDistal + position: {x: -0.01193941, y: 1.4210854e-16, z: 1.4210854e-16} + rotation: {x: -2.3283059e-10, y: -0, z: 0.0000000010477377, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: LeftHandThumbTrapezium + parentName: LeftHandWrist + position: {x: -0.020069301, y: 0.011554099, z: -0.0104965195} + rotation: {x: 0.37538618, y: -0.4245839, z: 0.0077786148, w: 0.8238649} + scale: {x: 1.0000002, y: 1.0000006, z: 1.0000001} + - name: LeftHandThumbMeta + parentName: LeftHandThumbTrapezium + position: {x: -0.024852559, y: 0, z: -7.105427e-17} + rotation: {x: 0.26023114, y: -0.024330731, z: -0.12567794, w: 0.9570229} + scale: {x: 1.0000002, y: 1.0000001, z: 1} + - name: LeftHandThumbProximal + parentName: LeftHandThumbMeta + position: {x: -0.03251291, y: 0, z: 0} + rotation: {x: -0.082704164, y: 0.076961584, z: 0.084062286, w: 0.9900356} + scale: {x: 1.0000004, y: 1.0000004, z: 1.0000001} + - name: LeftHandThumbDistal + parentName: LeftHandThumbProximal + position: {x: -0.03379309, y: 0, z: -1.4210854e-16} + rotation: {x: 0.08350567, y: -0.06501574, z: 0.05827395, w: 0.9926752} + scale: {x: 1.0000004, y: 1.0000007, z: 1.0000004} + - name: LeftHandThumbTip + parentName: LeftHandThumbDistal + position: {x: -0.014863368, y: 0, z: 2.842171e-16} + rotation: {x: -0, y: -0, z: 4.6566123e-10, w: 1} + scale: {x: 1.0000001, y: 1.0000002, z: 1.0000001} + - name: LeftArmUpperTwist1_jnt + parentName: LeftArmUpper + position: {x: -0.089999996, y: 0, z: -1.4210854e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: LeftArmUpperTwist2_jnt + parentName: LeftArmUpper + position: {x: -0.17999999, y: 0, z: -1.4210854e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: LeftArmUpperTwist3_jnt + parentName: LeftArmUpper + position: {x: -0.25680092, y: -0.000000007970641, z: 7.105427e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Neck + parentName: Chest + position: {x: -0.12540093, y: 0.04045652, z: -8.265321e-17} + rotation: {x: -0, y: -0, z: -8.881783e-16, w: 1} + scale: {x: 1.0000001, y: 1.0000001, z: 1} + - name: Head + parentName: Neck + position: {x: -0.06931999, y: 0.0138437785, z: 6.795974e-17} + rotation: {x: 0.04030306, y: -0.156524, z: 0.13941272, w: 0.9769545} + scale: {x: 1.0000004, y: 1.0000006, z: 1.0000005} + - name: LeftEye + parentName: Head + position: {x: -0.09639899, y: 0.080643415, z: 0.041476633} + rotation: {x: -0.73952055, y: 0.67223424, z: 0.025746575, w: 0.023402775} + scale: {x: 1, y: 0.99999994, z: 1} + - name: pedalA1_L + parentName: Head + position: {x: -0.18901998, y: 0.07407234, z: 0.028385388} + rotation: {x: -0.05962082, y: 0.15862526, z: 0.3473614, w: 0.9222926} + scale: {x: 1.0000001, y: 0.99999994, z: 1.0000001} + - name: pedalA2_L + parentName: pedalA1_L + position: {x: -0.038098708, y: 2.842171e-16, z: 7.105427e-17} + rotation: {x: 0.0007027499, y: -0.005542561, z: 0.12582739, w: 0.99203646} + scale: {x: 1, y: 1, z: 1.0000001} + - name: pedalA3_L + parentName: pedalA2_L + position: {x: -0.034144375, y: 2.842171e-16, z: 1.4210854e-16} + rotation: {x: 0.0021009704, y: -0.023252616, z: 0.08994647, w: 0.99567294} + scale: {x: 1, y: 1, z: 0.99999994} + - name: pedalA4_L + parentName: pedalA3_L + position: {x: -0.036823068, y: -5.684342e-16, z: -2.842171e-16} + rotation: {x: 0.006632045, y: -0.11686568, z: 0.05626597, w: 0.9915305} + scale: {x: 0.99999994, y: 1.0000001, z: 0.9999998} + - name: pedalA5_L + parentName: pedalA4_L + position: {x: -0.03285584, y: -5.684342e-16, z: -7.105427e-17} + rotation: {x: -0, y: -0, z: 6.9849176e-10, w: 1} + scale: {x: 0.99999994, y: 0.99999994, z: 0.99999994} + - name: pedalA1_R + parentName: Head + position: {x: -0.18902488, y: 0.07407208, z: -0.0283854} + rotation: {x: 0.15862525, y: 0.05962076, z: -0.9222926, w: 0.34736133} + scale: {x: 1.0000001, y: 1.0000002, z: 1.0000002} + - name: pedalA2_R + parentName: pedalA1_R + position: {x: 0.038092095, y: 0.0000053548583, z: -0.000002382847} + rotation: {x: 0.0007028281, y: -0.00554252, z: 0.1258275, w: 0.9920364} + scale: {x: 1.0000001, y: 1.0000002, z: 1} + - name: pedalA3_R + parentName: pedalA2_R + position: {x: 0.034147833, y: -0.000004498287, z: 0.0000016172912} + rotation: {x: 0.0021009243, y: -0.023252625, z: 0.08994635, w: 0.99567294} + scale: {x: 1.0000002, y: 1.0000006, z: 1.0000006} + - name: pedalA4_R + parentName: pedalA3_R + position: {x: 0.0368207, y: 0.000004383013, z: -0.0000012474314} + rotation: {x: -0.0066320524, y: 0.11686569, z: -0.056266066, w: -0.9915305} + scale: {x: 1.0000006, y: 1.0000011, z: 1.0000002} + - name: pedalA5_R + parentName: pedalA4_R + position: {x: 0.03285604, y: -0.00000043235696, z: 0.000000014339509} + rotation: {x: -0, y: -0, z: 0.0000000016298142, w: 1} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000004} + - name: pedalB1_L + parentName: Head + position: {x: -0.15757503, y: 0.05896424, z: 0.06996904} + rotation: {x: 0.31234065, y: 0.45579147, z: 0.2580539, w: 0.79253125} + scale: {x: 1, y: 1.0000002, z: 1.0000005} + - name: pedalB2_L + parentName: pedalB1_L + position: {x: -0.036644474, y: 3.5527136e-17, z: 0} + rotation: {x: -0.0015076696, y: 0.016709385, z: 0.08986209, w: 0.9958129} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000004} + - name: pedalB3_L + parentName: pedalB2_L + position: {x: -0.040783122, y: 0, z: 0} + rotation: {x: 0.0073505975, y: 0.068240635, z: -0.1068436, w: 0.9919041} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000002} + - name: pedalB4_L + parentName: pedalB3_L + position: {x: -0.027589377, y: -2.4868996e-16, z: 0} + rotation: {x: 0.0037841368, y: 0.06298778, z: -0.059848454, w: 0.99621105} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000004} + - name: pedalB5_L + parentName: pedalB4_L + position: {x: -0.031231984, y: 1.4210854e-16, z: 8.5265126e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: pedalB1_R + parentName: Head + position: {x: -0.15757501, y: 0.058964483, z: -0.069969} + rotation: {x: -0.45579147, y: 0.31234074, z: 0.7925312, w: -0.25805387} + scale: {x: 1.0000002, y: 1.0000007, z: 1.0000004} + - name: pedalB2_R + parentName: pedalB1_R + position: {x: 0.036643606, y: 0.00000026341073, z: -0.0000018644686} + rotation: {x: -0.0015077738, y: 0.01670934, z: 0.08986216, w: 0.99581295} + scale: {x: 1, y: 1.0000002, z: 1.0000002} + - name: pedalB3_R + parentName: pedalB2_R + position: {x: 0.040784497, y: -0.00000044807544, z: 0.0000026029657} + rotation: {x: 0.0073506595, y: 0.06824066, z: -0.10684368, w: 0.991904} + scale: {x: 1, y: 1.0000001, z: 1.0000002} + - name: pedalB4_R + parentName: pedalB3_R + position: {x: 0.02758738, y: 0.00000012849632, z: -0.0000054013} + rotation: {x: 0.0037841126, y: 0.06298781, z: -0.059848364, w: 0.99621105} + scale: {x: 1.0000001, y: 1.0000005, z: 1} + - name: pedalB5_R + parentName: pedalB4_R + position: {x: 0.031233242, y: 0.00000021207657, z: 0.0000062550835} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: pedalC1_L + parentName: Head + position: {x: -0.107264124, y: 0.045420088, z: 0.082003996} + rotation: {x: 0.4405881, y: 0.26655972, z: 0.020931562, w: 0.85696566} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: pedalC2_L + parentName: pedalC1_L + position: {x: -0.035671502, y: -1.7763568e-17, z: 0} + rotation: {x: -0.038314994, y: 0.071041696, z: -0.022893054, w: 0.99647427} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000004} + - name: pedalC3_L + parentName: pedalC2_L + position: {x: -0.036727104, y: -3.5527136e-17, z: -2.842171e-16} + rotation: {x: -0.0026415698, y: -0.05036085, z: -0.052318826, w: 0.99735636} + scale: {x: 1.0000001, y: 1, z: 1.0000002} + - name: pedalC4_L + parentName: pedalC3_L + position: {x: -0.030103153, y: -1.7763568e-17, z: 0} + rotation: {x: 0.0014031789, y: -0.089690246, z: 0.015585746, w: 0.9958468} + scale: {x: 1.0000001, y: 1.0000004, z: 1.0000005} + - name: pedalC5_L + parentName: pedalC4_L + position: {x: -0.033073757, y: 1.7763568e-17, z: -2.842171e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: pedalC1_R + parentName: Head + position: {x: -0.107268296, y: 0.045419693, z: -0.082004} + rotation: {x: -0.52960336, y: 0.41708955, z: 0.6960527, w: -0.2471182} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001} + - name: pedalC2_R + parentName: pedalC1_R + position: {x: 0.035671618, y: -0.0000000095021155, z: 0.000000093630184} + rotation: {x: -0.038315088, y: 0.07104172, z: -0.022892952, w: 0.99647427} + scale: {x: 0.99999994, y: 0.99999994, z: 1} + - name: pedalC3_R + parentName: pedalC2_R + position: {x: 0.036725037, y: -0.0000006093943, z: -0.000007657373} + rotation: {x: -0.0026415102, y: -0.050360717, z: -0.05231888, w: 0.9973563} + scale: {x: 1, y: 1.0000001, z: 1.0000001} + - name: pedalC4_R + parentName: pedalC3_R + position: {x: 0.030105362, y: 0.0000010914362, z: 0.000007049058} + rotation: {x: 0.0014030645, y: -0.08969027, z: 0.015585772, w: 0.9958468} + scale: {x: 0.99999994, y: 1.0000001, z: 0.99999994} + - name: pedalC5_R + parentName: pedalC4_R + position: {x: 0.03306995, y: -0.0000013499729, z: -0.0000073903566} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: pedalD1_L + parentName: Head + position: {x: -0.08135567, y: 0.029088823, z: 0.08131405} + rotation: {x: 0.3824446, y: 0.6757835, z: 0.3509121, w: 0.5233674} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000004} + - name: pedalD2_L + parentName: pedalD1_L + position: {x: -0.04388904, y: 3.5527136e-17, z: -5.684342e-16} + rotation: {x: -0.003189891, y: -0.078433834, z: -0.040514927, w: 0.99609065} + scale: {x: 1, y: 1.0000004, z: 1.0000004} + - name: pedalD3_L + parentName: pedalD2_L + position: {x: -0.03287495, y: 0, z: 0} + rotation: {x: 0.00048070308, y: 0.008389838, z: -0.05724818, w: 0.9983247} + scale: {x: 1.0000001, y: 1, z: 1.0000002} + - name: pedalD4_L + parentName: pedalD3_L + position: {x: -0.025873967, y: 0, z: 2.842171e-16} + rotation: {x: -0.008314494, y: 0.21168374, z: 0.038358793, w: 0.9765498} + scale: {x: 1.0000001, y: 1.0000005, z: 1.0000002} + - name: pedalD5_L + parentName: pedalD4_L + position: {x: -0.031726785, y: 1.4210854e-16, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: pedalD1_R + parentName: Head + position: {x: -0.081357144, y: 0.029088633, z: -0.081314} + rotation: {x: -0.6358174, y: 0.18100674, z: 0.7488734, w: -0.046491127} + scale: {x: 1, y: 1, z: 1.0000002} + - name: pedalD2_R + parentName: pedalD1_R + position: {x: 0.043888584, y: 0.00000093065347, z: 0.0000028985098} + rotation: {x: 0.00031921823, y: -0.07723111, z: -0.08443263, w: 0.9934317} + scale: {x: 1, y: 1, z: 1.0000001} + - name: pedalD3_R + parentName: pedalD2_R + position: {x: 0.032874923, y: -0.0000013607378, z: -0.000004782389} + rotation: {x: 0.0004806979, y: 0.008389874, z: -0.057248246, w: 0.99832463} + scale: {x: 1.0000001, y: 1.0000002, z: 1.0000004} + - name: pedalD4_R + parentName: pedalD3_R + position: {x: 0.025873668, y: 0.000000650432, z: 0.00000095019965} + rotation: {x: -0.019660642, y: 0.08423319, z: 0.06598837, w: 0.9940643} + scale: {x: 1.0000001, y: 1.0000005, z: 1.0000004} + - name: pedalD5_R + parentName: pedalD4_R + position: {x: 0.031727757, y: -0.00000092986284, z: -0.0000012576362} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: pedalE1_L + parentName: Head + position: {x: -0.054470837, y: 0.030261306, z: 0.07645104} + rotation: {x: 0.30201444, y: 0.6835133, z: 0.5251743, w: 0.40717188} + scale: {x: 1.0000001, y: 1, z: 1.0000001} + - name: pedalE2_L + parentName: pedalE1_L + position: {x: -0.035615966, y: 3.5527136e-17, z: -2.842171e-16} + rotation: {x: 0.00013248621, y: 0.030184593, z: -0.004361495, w: 0.99953485} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: pedalE3_L + parentName: pedalE2_L + position: {x: -0.028844701, y: 3.5527136e-17, z: -2.842171e-16} + rotation: {x: -0.016802592, y: 0.20743491, z: 0.07896706, w: 0.97491163} + scale: {x: 1.0000002, y: 1.0000005, z: 1} + - name: pedalE4_L + parentName: pedalE3_L + position: {x: -0.017558865, y: 4.4408918e-17, z: 2.842171e-16} + rotation: {x: 0.023072949, y: -0.18256979, z: 0.12323801, w: 0.9751658} + scale: {x: 1.0000004, y: 1.0000002, z: 1} + - name: pedalE5_L + parentName: pedalE4_L + position: {x: -0.026840098, y: 7.105427e-17, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1.0000001, y: 1.0000005, z: 1.0000001} + - name: pedalE1_R + parentName: Head + position: {x: -0.05446679, y: 0.030261718, z: -0.076450996} + rotation: {x: 0.6835133, y: -0.30201435, z: -0.40717182, w: 0.52517426} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000004} + - name: pedalE2_R + parentName: pedalE1_R + position: {x: 0.0356149, y: 0.000000006720624, z: 0.000002581053} + rotation: {x: 0.00013250113, y: 0.030184582, z: -0.0043613166, w: 0.99953485} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000005} + - name: pedalE3_R + parentName: pedalE2_R + position: {x: 0.028843941, y: -0.000000022925304, z: 0.0000013501387} + rotation: {x: 0.016802633, y: -0.2074349, z: -0.078966856, w: -0.9749117} + scale: {x: 1.0000001, y: 1, z: 1.0000001} + - name: pedalE4_R + parentName: pedalE3_R + position: {x: 0.017558595, y: 0.000000052151258, z: 0.0000002622886} + rotation: {x: 0.023072995, y: -0.18256974, z: 0.123238064, w: 0.97516584} + scale: {x: 1.0000001, y: 1.0000004, z: 1.0000001} + - name: pedalE5_R + parentName: pedalE4_R + position: {x: 0.026841117, y: -0.0000006223147, z: -0.000002005182} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: pedalF1_L + parentName: Head + position: {x: -0.04205154, y: 0.023377173, z: 0.06707798} + rotation: {x: -0.14725208, y: 0.74480194, z: 0.40470457, w: 0.509707} + scale: {x: 1.0000001, y: 1, z: 1.0000001} + - name: pedalF2_L + parentName: pedalF1_L + position: {x: -0.027799321, y: 0, z: 5.684342e-16} + rotation: {x: -0.07169218, y: 0.05513628, z: -0.113847025, w: 0.98937315} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001} + - name: pedalF3_L + parentName: pedalF2_L + position: {x: -0.018588457, y: 0, z: 1.4210854e-16} + rotation: {x: -0.010598379, y: 0.01686775, z: -0.009406415, w: 0.99975735} + scale: {x: 1.0000005, y: 1.0000004, z: 1} + - name: pedalF4_L + parentName: pedalF3_L + position: {x: -0.016333, y: -7.105427e-17, z: -3.5527136e-17} + rotation: {x: 0.019006247, y: -0.20657596, z: 0.089628205, w: 0.97413135} + scale: {x: 1.0000004, y: 1.0000005, z: 1} + - name: pedalF5_L + parentName: pedalF4_L + position: {x: -0.024877517, y: -2.1316282e-16, z: 1.4210854e-16} + rotation: {x: -0, y: -0, z: 4.6566134e-10, w: 1} + scale: {x: 0.99999994, y: 0.99999994, z: 1} + - name: pedalF1_R + parentName: Head + position: {x: -0.042055514, y: 0.023376817, z: -0.067077994} + rotation: {x: 0.65839666, y: -0.2932288, z: -0.31044427, w: 0.6198025} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000005} + - name: pedalF2_R + parentName: pedalF1_R + position: {x: 0.027804129, y: -0.00000006092411, z: -0.000007070838} + rotation: {x: 0.034035794, y: -0.24379855, z: -0.1340115, w: -0.9599192} + scale: {x: 0.99999994, y: 1.0000001, z: 0.99999994} + - name: pedalF3_R + parentName: pedalF2_R + position: {x: 0.018582985, y: 0.0000010183843, z: 0.000002968836} + rotation: {x: -0.008092336, y: 0.16204251, z: 0.04921902, w: 0.9855223} + scale: {x: 1.0000004, y: 1, z: 1.0000004} + - name: pedalF4_R + parentName: pedalF3_R + position: {x: 0.016335573, y: -0.00000066251914, z: -0.00000049842987} + rotation: {x: 0.019006249, y: -0.20657587, z: 0.08962831, w: 0.9741314} + scale: {x: 1.0000005, y: 1.0000002, z: 1.0000002} + - name: pedalF5_R + parentName: pedalF4_R + position: {x: 0.024877202, y: 0.00000015386338, z: 0.00000030317432} + rotation: {x: -0.0000000037252894, y: -0, z: -0.000000014901158, w: 1} + scale: {x: 0.99999994, y: 0.9999998, z: 1} + - name: RightEye + parentName: Head + position: {x: -0.09639899, y: 0.080643415, z: -0.041502442} + rotation: {x: 0.6722343, y: 0.7395205, z: -0.023402778, w: 0.025746647} + scale: {x: 1, y: 1.0000001, z: 0.99999994} + - name: Viewpoint + parentName: Head + position: {x: -0.09862352, y: 0.1182949, z: -0.0000049199994} + rotation: {x: 0.52324307, y: -0.47562245, z: -0.52324307, w: -0.47562245} + scale: {x: 1, y: 1, z: 1} + - name: RightShoulder + parentName: Chest + position: {x: -0.066512585, y: 0.09479429, z: -0.0282178} + rotation: {x: -0.66002935, y: 0.1770811, z: 0.69426274, w: -0.22583827} + scale: {x: 1, y: 1, z: 1} + - name: RightArmUpper + parentName: RightShoulder + position: {x: 0.1765048, y: -2.6645352e-17, z: 0} + rotation: {x: -0.09309796, y: 0.4776535, z: -0.1875573, w: 0.8532304} + scale: {x: 1, y: 1, z: 1} + - name: RightArmLower + parentName: RightArmUpper + position: {x: 0.25679636, y: 0.0000000101391375, z: -2.842171e-16} + rotation: {x: -0.00000008940697, y: -0.00000005960464, z: 0.29681027, w: -0.9549365} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: RightArmLowerTwist1_jnt + parentName: RightArmLower + position: {x: 0.099999994, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: RightArmLowerTwist2_jnt + parentName: RightArmLower + position: {x: 0.19999999, y: 0, z: 2.842171e-16} + rotation: {x: -7.1054265e-15, y: -3.5527133e-15, z: -5.3290697e-15, w: 1} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000004} + - name: RightArmLowerTwist3_jnt + parentName: RightArmLower + position: {x: 0.25627, y: 0, z: 2.842171e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: RightHandWrist + parentName: RightArmLower + position: {x: 0.25627, y: -0.000000004506687, z: -0.000000009283036} + rotation: {x: -0.6534106, y: -0.11918222, z: 0.049257997, w: -0.7459383} + scale: {x: 0.9999999, y: 1.0000005, z: 1} + - name: RightHandIndexProximal + parentName: RightHandWrist + position: {x: 0.09599624, y: -0.0073164543, z: 0.02355068} + rotation: {x: 0.030682858, y: 0.018855637, z: -0.043281425, w: 0.9984137} + scale: {x: 1, y: 1, z: 1.0000001} + - name: RightHandIndexIntermediate + parentName: RightHandIndexProximal + position: {x: 0.0379273, y: 1.4210854e-16, z: -1.4210854e-16} + rotation: {x: -0.02585228, y: 0.0071161585, z: -0.0032927745, w: 0.99963504} + scale: {x: 1.0000001, y: 1, z: 1.0000001} + - name: RightHandIndexDistal + parentName: RightHandIndexIntermediate + position: {x: 0.024303643, y: 1.4210854e-16, z: 2.842171e-16} + rotation: {x: -0.016055742, y: 0.027148759, z: 0.072033964, w: 0.9969034} + scale: {x: 1, y: 0.99999994, z: 0.9999998} + - name: RightHandIndexTip + parentName: RightHandIndexDistal + position: {x: 0.011583036, y: -1.4210854e-16, z: -2.842171e-16} + rotation: {x: -0, y: -0, z: -0.0000000026775517, w: 1} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000001} + - name: RightHandMiddleProximal + parentName: RightHandWrist + position: {x: 0.095646605, y: -0.0025431544, z: 0.0017259055} + rotation: {x: -0.009066285, y: 0.051465582, z: -0.05183547, w: 0.99728745} + scale: {x: 1, y: 0.99999994, z: 1} + - name: RightHandMiddleIntermediate + parentName: RightHandMiddleProximal + position: {x: 0.04292699, y: 0, z: 0} + rotation: {x: -0.011228034, y: 0.004379056, z: 0.0019782057, w: 0.9999255} + scale: {x: 1.0000002, y: 1, z: 1} + - name: RightHandMiddleDistal + parentName: RightHandMiddleIntermediate + position: {x: 0.027549583, y: 0, z: -1.4210854e-16} + rotation: {x: -0.034319926, y: 0.0046116416, z: 0.093006805, w: 0.9950631} + scale: {x: 1, y: 1, z: 0.99999994} + - name: RightHandMiddleTip + parentName: RightHandMiddleDistal + position: {x: 0.0122034745, y: -2.842171e-16, z: 1.4210854e-16} + rotation: {x: -0, y: -4.6566118e-10, z: -0.0000000014551912, w: 1} + scale: {x: 1.0000001, y: 1.0000001, z: 0.99999994} + - name: RightHandPinkyMeta + parentName: RightHandWrist + position: {x: 0.034073558, y: -0.009419835, z: -0.022998573} + rotation: {x: -0.19855496, y: 0.32085145, z: -0.06888354, w: 0.92351794} + scale: {x: 1, y: 1.0000001, z: 0.9999997} + - name: RightHandPinkyProximal + parentName: RightHandPinkyMeta + position: {x: 0.04565054, y: -0.0000009982332, z: 0.0000021940255} + rotation: {x: 0.4397845, y: -0.37552333, z: -0.029564666, w: 0.81529} + scale: {x: 1, y: 1, z: 1} + - name: RightHandPinkyIntermediate + parentName: RightHandPinkyProximal + position: {x: 0.030720409, y: 1.4210854e-16, z: 4.2632563e-16} + rotation: {x: -0.03761653, y: 0.042937733, z: 0.013286147, w: 0.998281} + scale: {x: 1.0000002, y: 0.99999994, z: 1.0000001} + - name: RightHandPinkyDistal + parentName: RightHandPinkyIntermediate + position: {x: 0.020311384, y: -2.842171e-16, z: -2.842171e-16} + rotation: {x: 0.0006446576, y: -0.04917051, z: 0.024018904, w: 0.99850136} + scale: {x: 1, y: 1, z: 1.0000001} + - name: RightHandPinkyTip + parentName: RightHandPinkyDistal + position: {x: 0.011908775, y: 2.842171e-16, z: 1.4210854e-16} + rotation: {x: -0, y: -0, z: -3.456079e-10, w: 1} + scale: {x: 1.0000001, y: 0.99999994, z: 1.0000002} + - name: RightHandRingProximal + parentName: RightHandWrist + position: {x: 0.08869379, y: -0.006529307, z: -0.017465241} + rotation: {x: -0.05315939, y: 0.12310342, z: -0.04981332, w: 0.9897163} + scale: {x: 1, y: 1, z: 0.99999994} + - name: RightHandRingIntermediate + parentName: RightHandRingProximal + position: {x: 0.0389961, y: -2.842171e-16, z: 2.842171e-16} + rotation: {x: -0.0336325, y: 0.0027899144, z: -0.005676227, w: 0.9994143} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001} + - name: RightHandRingDistal + parentName: RightHandRingIntermediate + position: {x: 0.026573397, y: 4.2632563e-16, z: -1.4210854e-16} + rotation: {x: -0.0034774202, y: -0.02917929, z: 0.025028776, w: 0.99925476} + scale: {x: 1, y: 0.9999998, z: 0.99999994} + - name: RightHandRingTip + parentName: RightHandRingDistal + position: {x: 0.01193941, y: -4.2632563e-16, z: 0} + rotation: {x: -2.3283062e-10, y: -0, z: 7.9307927e-10, w: 1} + scale: {x: 0.9999998, y: 1, z: 1} + - name: RightHandThumbTrapezium + parentName: RightHandWrist + position: {x: 0.020069301, y: -0.011554099, z: 0.0104965195} + rotation: {x: 0.37538707, y: -0.42458397, z: 0.007779062, w: 0.8238644} + scale: {x: 0.9999998, y: 1, z: 1.0000001} + - name: RightHandThumbMeta + parentName: RightHandThumbTrapezium + position: {x: 0.024852559, y: -1.4210854e-16, z: 1.7763567e-16} + rotation: {x: 0.26023072, y: -0.024331093, z: -0.12567778, w: 0.957023} + scale: {x: 1.0000001, y: 1.0000004, z: 0.9999997} + - name: RightHandThumbProximal + parentName: RightHandThumbMeta + position: {x: 0.03251291, y: 0, z: 1.4210854e-16} + rotation: {x: -0.08270432, y: 0.076961555, z: 0.08406199, w: 0.99003565} + scale: {x: 1.0000002, y: 0.9999998, z: 1.0000001} + - name: RightHandThumbDistal + parentName: RightHandThumbProximal + position: {x: 0.03379309, y: 1.4210854e-16, z: -1.4210854e-16} + rotation: {x: 0.08350631, y: -0.06501554, z: 0.058274046, w: 0.99267507} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000001} + - name: RightHandThumbTip + parentName: RightHandThumbDistal + position: {x: 0.014863368, y: 0.000000057389798, z: 0.0000000019459812} + rotation: {x: -0.00000013923271, y: 0.000004119705, z: 1, w: -0.00000003073364} + scale: {x: 1.0000001, y: 1.0000001, z: 1} + - name: RightArmUpperTwist1_jnt + parentName: RightArmUpper + position: {x: 0.089999996, y: 1.1046719e-16, z: -3.563816e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: RightArmUpperTwist2_jnt + parentName: RightArmUpper + position: {x: 0.17999999, y: 1.1046719e-16, z: -3.563816e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: RightArmUpperTwist3_jnt + parentName: RightArmUpper + position: {x: 0.25679636, y: 0.0000000101391375, z: -2.842171e-16} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 1 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 1 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Models/Aura/aura_rig.fbx b/Samples/Models/Aura/aura_rig.fbx index 4f9a555d..40ab218c 100644 Binary files a/Samples/Models/Aura/aura_rig.fbx and b/Samples/Models/Aura/aura_rig.fbx differ diff --git a/Samples/Models/Aura/aura_rig.fbx.meta b/Samples/Models/Aura/aura_rig.fbx.meta index 9625ffc5..2f3d8aeb 100644 --- a/Samples/Models/Aura/aura_rig.fbx.meta +++ b/Samples/Models/Aura/aura_rig.fbx.meta @@ -1,9 +1,59 @@ fileFormatVersion: 2 -guid: 97c33b5b5e467ff4982d18b3cea2fa0e +guid: 00d0533fd012f490ca15158ab7c3b951 ModelImporter: - serializedVersion: 20300 + serializedVersion: 21300 internalIDToNameTable: [] - externalObjects: {} + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: aura_eyelash_mat + second: {fileID: 2100000, guid: 911ec2c5e434d184da2c3b3f8fa5f809, type: 2} + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: aura_head_mat + second: {fileID: 2100000, guid: 35c69333000db8a47887cf9431803022, type: 2} + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: eyes_mat + second: {fileID: 2100000, guid: 88bd2515a02cfbd4cadd2b1039155c5e, type: 2} + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: handsSkin_MAT + second: {fileID: 2100000, guid: 2a9488ab25d8e5744abfc0604ab635f7, type: 2} + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: head_abdomen_mat + second: {fileID: 2100000, guid: 887e84e4010f36b42823a4efc9803c0d, type: 2} + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: teeth_mat + second: {fileID: 2100000, guid: cfa09ece4d7119d44a09ddc6e3577659, type: 2} + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: tentacles_mat + second: {fileID: 2100000, guid: 306cef69fb9c0f841ac2eebe97233ed9, type: 2} + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: throat_mat + second: {fileID: 2100000, guid: 085835c2fe4a3de4e917563ea2905592, type: 2} + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: tongue_mat + second: {fileID: 2100000, guid: 085835c2fe4a3de4e917563ea2905592, type: 2} + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: wrists_mat + second: {fileID: 2100000, guid: 810071505f4602f4b81b262ff54812f4, type: 2} materials: materialImportMode: 2 materialName: 0 @@ -14,6 +64,7 @@ ModelImporter: bakeSimulation: 0 resampleCurves: 1 optimizeGameObjects: 0 + removeConstantScaleCurves: 1 motionNodeName: rigImportErrors: rigImportWarnings: @@ -23,7 +74,7 @@ ModelImporter: animationDoRetargetingWarnings: 0 importAnimatedCustomProperties: 0 importConstraints: 0 - animationCompression: 3 + animationCompression: 1 animationRotationError: 0.5 animationPositionError: 0.5 animationScaleError: 0.5 @@ -43,6 +94,7 @@ ModelImporter: importBlendShapes: 1 importCameras: 1 importLights: 1 + nodeNameCollisionStrategy: 1 fileIdsGeneration: 2 swapUVChannels: 0 generateSecondaryUV: 0 @@ -54,6 +106,7 @@ ModelImporter: skinWeightsMode: 0 maxBonesPerVertex: 4 minBoneWeight: 0.001 + optimizeBones: 1 meshOptimizationFlags: -1 indexFormat: 0 secondaryUVAngleDistortion: 8 @@ -76,1039 +129,8 @@ ModelImporter: importAnimation: 1 humanDescription: serializedVersion: 3 - human: - - boneName: Chest - humanName: Hips - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: LeftHandWrist - humanName: LeftUpperLeg - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: RightHandWrist - humanName: RightUpperLeg - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: LeftHandPinkyMeta - humanName: LeftLowerLeg - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: RightHandPinkyMeta - humanName: RightLowerLeg - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: LeftHandPinkyProximal - humanName: LeftFoot - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: RightHandPinkyProximal - humanName: RightFoot - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: Neck - humanName: Spine - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: Head - humanName: Chest - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: pedalC1_L - humanName: Neck - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: pedalC2_L - humanName: Head - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: pedalF1_L - humanName: LeftShoulder - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: pedalD1_R - humanName: RightShoulder - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: pedalF2_L - humanName: LeftUpperArm - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: pedalD2_R - humanName: RightUpperArm - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: pedalF3_L - humanName: LeftLowerArm - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: pedalD3_R - humanName: RightLowerArm - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: pedalF4_L - humanName: LeftHand - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: pedalD4_R - humanName: RightHand - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: LeftHandPinkyIntermediate - humanName: LeftToes - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: RightHandPinkyIntermediate - humanName: RightToes - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - - boneName: pedalC4_L - humanName: LeftEye - limit: - min: {x: 0, y: 0, z: 0} - max: {x: 0, y: 0, z: 0} - value: {x: 0, y: 0, z: 0} - length: 0 - modified: 0 - skeleton: - - name: aura_rig(Clone) - parentName: - position: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: geom - parentName: aura_rig(Clone) - position: {x: -0, y: 0, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: hands - parentName: geom - position: {x: -0, y: 0, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: head_grp - parentName: geom - position: {x: -0.000000009536743, y: 1.549946, z: 0.038412716} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: head_parts - parentName: head_grp - position: {x: 0.000000009536743, y: -1.549946, z: -0.038412716} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: eye_L_grp - parentName: head_parts - position: {x: -0.0414308, y: 1.6252791, z: 0.124241315} - rotation: {x: 0, y: -0.034899496, z: -0, w: 0.99939084} - scale: {x: 1.4441309, y: 1.4441309, z: 1.4441309} - - name: corneaL_geo - parentName: eye_L_grp - position: {x: -0.000011890424, y: -0.0000000032372087, z: 0.00017004096} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: eye_R_grp - parentName: head_parts - position: {x: 0.041456614, y: 1.6252791, z: 0.124241315} - rotation: {x: 0, y: 0.034899496, z: -0, w: 0.99939084} - scale: {x: 1.4441309, y: 1.4441309, z: 1.4441309} - - name: corneaL_geo 1 - parentName: eye_R_grp - position: {x: -0.000011890424, y: -0.0000000032372087, z: 0.00017004096} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: head_abdomen_ply - parentName: head_parts - position: {x: -0, y: 0, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: mouth_ply - parentName: head_parts - position: {x: -0, y: 0, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: tentacles_ply - parentName: head_parts - position: {x: -0, y: 0, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: head_ply - parentName: head_grp - position: {x: 0.000000009536743, y: -1.549946, z: -0.038412716} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: wrists - parentName: geom - position: {x: -0, y: 0, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: Root - parentName: aura_rig(Clone) - position: {x: -0, y: 0, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: Hips - parentName: Root - position: {x: -0, y: 0.923987, z: 0} - rotation: {x: 0.5, y: -0.5, z: -0.5, w: 0.5} - scale: {x: 1, y: 1, z: 1} - - name: LeftLegUpper - parentName: Hips - position: {x: 0.025498886, y: -0.0052829897, z: 0.079869255} - rotation: {x: -0.07001962, y: -0.0576324, z: 0.9955674, w: 0.024926713} - scale: {x: 1, y: 1, z: 1} - - name: LeftLegLower - parentName: LeftLegUpper - position: {x: -0.41976497, y: -7.457412e-12, z: -1.4210854e-16} - rotation: {x: 0, y: -0, z: -0.022465961, w: 0.99974763} - scale: {x: 1, y: 1, z: 1} - - name: LeftFootAnkle - parentName: LeftLegLower - position: {x: -0.42058298, y: -2.3996404e-11, z: -2.1316282e-16} - rotation: {x: 0.9947561, y: 0.047286812, z: 0.06870718, w: -0.059190925} - scale: {x: 1, y: 1, z: 1} - - name: LeftFootBall - parentName: LeftFootAnkle - position: {x: -0.052942585, y: 0.14392811, z: -0.0000002115523} - rotation: {x: 0.7071068, y: -0.7071068, z: -4.3297806e-17, w: 4.3297806e-17} - scale: {x: 1, y: 1, z: 1} - - name: LeftFootTip - parentName: LeftFootBall - position: {x: -0.05809766, y: -2.8865798e-17, z: 0.00000021195105} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftLegLowerTwist1_jnt - parentName: LeftLegLower - position: {x: -0.14999999, y: 2.6645352e-17, z: 2.9698464e-17} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftLegLowerTwist2_jnt - parentName: LeftLegLower - position: {x: -0.29999998, y: 8.881784e-18, z: 3.5527136e-17} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftLegLowerTwist3_jnt - parentName: LeftLegLower - position: {x: -0.42058298, y: -2.3996386e-11, z: -1.7763567e-16} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftLegUpperTwist1_jnt - parentName: LeftLegUpper - position: {x: -0.14999999, y: 1.2212453e-17, z: -1.6792122e-17} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftLegUpperTwist2_jnt - parentName: LeftLegUpper - position: {x: -0.29999998, y: 0, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftLegUpperTwist3_jnt - parentName: LeftLegUpper - position: {x: -0.41976497, y: -7.457412e-12, z: -1.4210854e-16} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightLegUpper - parentName: Hips - position: {x: 0.025498962, y: -0.0052829897, z: -0.0798693} - rotation: {x: -0.05761964, y: 0.070019074, z: -0.024927199, w: 0.99556816} - scale: {x: 1, y: 1, z: 1} - - name: RightLegLower - parentName: RightLegUpper - position: {x: 0.41976458, y: 1.00299546e-10, z: 1.0658141e-16} - rotation: {x: 0, y: -0, z: -0.02246669, w: 0.99974763} - scale: {x: 1, y: 1, z: 1} - - name: RightFootAnkle - parentName: RightLegLower - position: {x: 0.4205833, y: 7.2067005e-11, z: 2.842171e-16} - rotation: {x: 0.9947569, y: 0.04728803, z: 0.068706885, w: -0.059178196} - scale: {x: 1, y: 1, z: 1} - - name: RightFootBall - parentName: RightFootAnkle - position: {x: 0.052658476, y: -0.14373046, z: 0.00000021875026} - rotation: {x: 0.7071068, y: -0.7071068, z: -5.143256e-16, w: 5.143256e-16} - scale: {x: 1, y: 1, z: 1} - - name: RightFootTip - parentName: RightFootBall - position: {x: 0.05824629, y: 2.160494e-15, z: -0.00000021914859} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightLegLowerTwist1_jnt - parentName: RightLegLower - position: {x: 0.14999999, y: 8.881784e-18, z: -3.5527136e-17} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightLegLowerTwist2_jnt - parentName: RightLegLower - position: {x: 0.29999998, y: 8.881784e-18, z: -3.5527136e-17} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightLegLowerTwist3_jnt - parentName: RightLegLower - position: {x: 0.4205833, y: 7.2067005e-11, z: 2.4868996e-16} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightLegUpperTwist1_jnt - parentName: RightLegUpper - position: {x: 0.14999999, y: 8.881784e-18, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightLegUpperTwist2_jnt - parentName: RightLegUpper - position: {x: 0.29999998, y: 8.881784e-18, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightLegUpperTwist3_jnt - parentName: RightLegUpper - position: {x: 0.41976458, y: 1.0029955e-10, z: 1.0658141e-16} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: SpineLower - parentName: Hips - position: {x: -0.020219956, y: -0.032535676, z: -1.1714103e-17} - rotation: {x: 0, y: -2.1252826e-32, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: SpineMiddle - parentName: SpineLower - position: {x: -0.11041183, y: 0.0110380715, z: 6.5516754e-17} - rotation: {x: 0, y: -2.1252826e-32, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: SpineUpper - parentName: SpineMiddle - position: {x: -0.109367676, y: -0.025952995, z: 8.437417e-17} - rotation: {x: 0, y: -2.1252826e-32, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: Chest - parentName: SpineUpper - position: {x: 0.83148897, y: -0.1138798, z: -1.3817683e-16} - rotation: {x: 0.000000029802322, y: 0.000000029802322, z: -0.04762064, w: 0.99886554} - scale: {x: 1.0000002, y: 1.0000002, z: 1.0000001} - - name: LeftShoulder - parentName: Chest - position: {x: -0.066512585, y: 0.09479429, z: 0.0282178} - rotation: {x: 0.17708462, y: 0.6600202, z: 0.22583653, w: 0.694271} - scale: {x: 1, y: 1, z: 1} - - name: LeftArmUpper - parentName: LeftShoulder - position: {x: -0.17650497, y: 4.4408918e-17, z: 8.5265126e-16} - rotation: {x: -0.093105815, y: 0.4776732, z: -0.18754953, w: 0.8532203} - scale: {x: 1, y: 1, z: 1} - - name: LeftArmLower - parentName: LeftArmUpper - position: {x: -0.25680092, y: -0.000000007970641, z: 5.684342e-16} - rotation: {x: 0.00000017136334, y: -0.000000059604638, z: -0.29681414, w: 0.95493525} - scale: {x: 0.99999994, y: 0.9999999, z: 0.99999964} - - name: LeftArmLowerTwist1_jnt - parentName: LeftArmLower - position: {x: -0.099999994, y: 0, z: -1.4210854e-16} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftArmLowerTwist2_jnt - parentName: LeftArmLower - position: {x: -0.19999999, y: -1.4210854e-16, z: -1.4210854e-16} - rotation: {x: -1.4210853e-14, y: -0, z: 1.021405e-14, w: 1} - scale: {x: 1.0000001, y: 1.0000001, z: 1.0000004} - - name: LeftArmLowerTwist3_jnt - parentName: LeftArmLower - position: {x: -0.25626543, y: 0, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandWrist - parentName: LeftArmLower - position: {x: -0.25626543, y: 0.000000011720011, z: 0} - rotation: {x: 0.66241205, y: 0.12008012, z: -0.034216613, w: 0.73866117} - scale: {x: 1, y: 1.0000007, z: 1.0000005} - - name: LeftHandIndexProximal - parentName: LeftHandWrist - position: {x: -0.09599624, y: 0.0073164543, z: -0.02355068} - rotation: {x: 0.030682534, y: 0.018855821, z: -0.04328146, w: 0.9984137} - scale: {x: 1, y: 1.0000006, z: 1.0000006} - - name: LeftHandIndexIntermediate - parentName: LeftHandIndexProximal - position: {x: -0.0379273, y: -1.4210854e-16, z: 0} - rotation: {x: -0.025852479, y: 0.007115821, z: -0.0032927024, w: 0.99963504} - scale: {x: 1.0000001, y: 1.0000001, z: 1.0000004} - - name: LeftHandIndexDistal - parentName: LeftHandIndexIntermediate - position: {x: -0.024303643, y: 4.2632563e-16, z: 4.2632563e-16} - rotation: {x: -0.016055599, y: 0.027149012, z: 0.07203376, w: 0.99690336} - scale: {x: 1.0000001, y: 0.9999998, z: 0.99999994} - - name: LeftHandIndexTip - parentName: LeftHandIndexDistal - position: {x: -0.011583036, y: -4.2632563e-16, z: -8.5265126e-16} - rotation: {x: -0, y: -0, z: -0.000000002590241, w: 1} - scale: {x: 0.99999976, y: 1, z: 0.99999994} - - name: LeftHandMiddleProximal - parentName: LeftHandWrist - position: {x: -0.09543732, y: 0.002604632, z: -0.0014387579} - rotation: {x: -0.0090666115, y: 0.051465645, z: -0.051835876, w: 0.99728745} - scale: {x: 1, y: 1.0000005, z: 1.0000005} - - name: LeftHandMiddleIntermediate - parentName: LeftHandMiddleProximal - position: {x: -0.04292699, y: -1.4210854e-16, z: 0} - rotation: {x: -0.011228377, y: 0.004379008, z: 0.0019784556, w: 0.9999255} - scale: {x: 0.9999998, y: 0.9999998, z: 0.9999997} - - name: LeftHandMiddleDistal - parentName: LeftHandMiddleIntermediate - position: {x: -0.027549583, y: 5.684342e-16, z: 1.4210854e-16} - rotation: {x: -0.034319606, y: 0.004611688, z: 0.09300699, w: 0.9950631} - scale: {x: 1.0000001, y: 1.0000004, z: 1.0000005} - - name: LeftHandMiddleTip - parentName: LeftHandMiddleDistal - position: {x: -0.0122034745, y: -2.842171e-16, z: 2.842171e-16} - rotation: {x: -0, y: -0, z: -0.00000000136788, w: 1} - scale: {x: 1, y: 1.0000002, z: 1.0000005} - - name: LeftHandPinkyMeta - parentName: LeftHandWrist - position: {x: -0.034073558, y: 0.009419835, z: 0.022998573} - rotation: {x: -0.2007117, y: 0.31314307, z: -0.07369629, w: 0.9253244} - scale: {x: 1, y: 1.0000002, z: 1.0000001} - - name: LeftHandPinkyProximal - parentName: LeftHandPinkyMeta - position: {x: -0.04565054, y: 0.0000009982332, z: -0.0000021940255} - rotation: {x: 0.42929384, y: -0.35590473, z: -0.019633245, w: 0.8298513} - scale: {x: 0.99999994, y: 1, z: 1.0000004} - - name: LeftHandPinkyIntermediate - parentName: LeftHandPinkyProximal - position: {x: -0.030720409, y: 4.2632563e-16, z: 1.4210854e-16} - rotation: {x: -0.03761652, y: 0.042937793, z: 0.013286165, w: 0.998281} - scale: {x: 0.99999994, y: 1.0000001, z: 1.0000001} - - name: LeftHandPinkyDistal - parentName: LeftHandPinkyIntermediate - position: {x: -0.020311384, y: -4.2632563e-16, z: 0} - rotation: {x: 0.000644572, y: -0.049170632, z: 0.024018465, w: 0.99850136} - scale: {x: 1, y: 1.0000001, z: 1.0000002} - - name: LeftHandPinkyTip - parentName: LeftHandPinkyDistal - position: {x: -0.011908775, y: 2.842171e-16, z: -4.2632563e-16} - rotation: {x: -0, y: -0, z: -7.5306145e-10, w: 1} - scale: {x: 1.0000002, y: 1.0000002, z: 1.0000005} - - name: LeftHandRingProximal - parentName: LeftHandWrist - position: {x: -0.08869379, y: 0.006529307, z: 0.017465241} - rotation: {x: -0.053159505, y: 0.12310373, z: -0.049813434, w: 0.98971623} - scale: {x: 1, y: 1.0000004, z: 1.0000005} - - name: LeftHandRingIntermediate - parentName: LeftHandRingProximal - position: {x: -0.0389961, y: 0, z: -4.2632563e-16} - rotation: {x: -0.033632584, y: 0.002789706, z: -0.005676348, w: 0.99941427} - scale: {x: 1.0000001, y: 1.0000004, z: 1.0000006} - - name: LeftHandRingDistal - parentName: LeftHandRingIntermediate - position: {x: -0.026573397, y: -1.4210854e-16, z: 0} - rotation: {x: -0.0034777145, y: -0.029179426, z: 0.025028756, w: 0.9992548} - scale: {x: 1.0000001, y: 1.0000008, z: 1.0000007} - - name: LeftHandRingTip - parentName: LeftHandRingDistal - position: {x: -0.01193941, y: 1.4210854e-16, z: 1.4210854e-16} - rotation: {x: -2.3283059e-10, y: -0, z: 0.0000000010477377, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandThumbTrapezium - parentName: LeftHandWrist - position: {x: -0.020069301, y: 0.011554099, z: -0.0104965195} - rotation: {x: 0.37538618, y: -0.4245839, z: 0.0077786148, w: 0.8238649} - scale: {x: 1.0000002, y: 1.0000006, z: 1.0000001} - - name: LeftHandThumbMeta - parentName: LeftHandThumbTrapezium - position: {x: -0.024852559, y: 0, z: -7.105427e-17} - rotation: {x: 0.26023114, y: -0.024330731, z: -0.12567794, w: 0.9570229} - scale: {x: 1.0000002, y: 1.0000001, z: 1} - - name: LeftHandThumbProximal - parentName: LeftHandThumbMeta - position: {x: -0.03251291, y: 0, z: 0} - rotation: {x: -0.082704164, y: 0.076961584, z: 0.084062286, w: 0.9900356} - scale: {x: 1.0000004, y: 1.0000004, z: 1.0000001} - - name: LeftHandThumbDistal - parentName: LeftHandThumbProximal - position: {x: -0.03379309, y: 0, z: -1.4210854e-16} - rotation: {x: 0.08350567, y: -0.06501574, z: 0.05827395, w: 0.9926752} - scale: {x: 1.0000004, y: 1.0000007, z: 1.0000004} - - name: LeftHandThumbTip - parentName: LeftHandThumbDistal - position: {x: -0.014863368, y: 0, z: 2.842171e-16} - rotation: {x: -0, y: -0, z: 4.6566123e-10, w: 1} - scale: {x: 1.0000001, y: 1.0000002, z: 1.0000001} - - name: LeftArmUpperTwist1_jnt - parentName: LeftArmUpper - position: {x: -0.089999996, y: 0, z: -1.4210854e-16} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftArmUpperTwist2_jnt - parentName: LeftArmUpper - position: {x: -0.17999999, y: 0, z: -1.4210854e-16} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftArmUpperTwist3_jnt - parentName: LeftArmUpper - position: {x: -0.25680092, y: -0.000000007970641, z: 7.105427e-16} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: Neck - parentName: Chest - position: {x: -0.12540093, y: 0.04045652, z: -8.265321e-17} - rotation: {x: -0, y: -0, z: -8.881783e-16, w: 1} - scale: {x: 1.0000001, y: 1.0000001, z: 1} - - name: Head - parentName: Neck - position: {x: -0.06931999, y: 0.0138437785, z: 6.795974e-17} - rotation: {x: 0.04030306, y: -0.156524, z: 0.13941272, w: 0.9769545} - scale: {x: 1.0000004, y: 1.0000006, z: 1.0000005} - - name: LeftEye - parentName: Head - position: {x: -0.09639899, y: 0.080643415, z: 0.041476633} - rotation: {x: -0.73952055, y: 0.67223424, z: 0.025746575, w: 0.023402775} - scale: {x: 1, y: 0.99999994, z: 1} - - name: pedalA1_L - parentName: Head - position: {x: -0.18901998, y: 0.07407234, z: 0.028385388} - rotation: {x: -0.05962082, y: 0.15862526, z: 0.3473614, w: 0.9222926} - scale: {x: 1.0000001, y: 0.99999994, z: 1.0000001} - - name: pedalA2_L - parentName: pedalA1_L - position: {x: -0.038098708, y: 2.842171e-16, z: 7.105427e-17} - rotation: {x: 0.0007027499, y: -0.005542561, z: 0.12582739, w: 0.99203646} - scale: {x: 1, y: 1, z: 1.0000001} - - name: pedalA3_L - parentName: pedalA2_L - position: {x: -0.034144375, y: 2.842171e-16, z: 1.4210854e-16} - rotation: {x: 0.0021009704, y: -0.023252616, z: 0.08994647, w: 0.99567294} - scale: {x: 1, y: 1, z: 0.99999994} - - name: pedalA4_L - parentName: pedalA3_L - position: {x: -0.036823068, y: -5.684342e-16, z: -2.842171e-16} - rotation: {x: 0.006632045, y: -0.11686568, z: 0.05626597, w: 0.9915305} - scale: {x: 0.99999994, y: 1.0000001, z: 0.9999998} - - name: pedalA5_L - parentName: pedalA4_L - position: {x: -0.03285584, y: -5.684342e-16, z: -7.105427e-17} - rotation: {x: -0, y: -0, z: 6.9849176e-10, w: 1} - scale: {x: 0.99999994, y: 0.99999994, z: 0.99999994} - - name: pedalA1_R - parentName: Head - position: {x: -0.18902488, y: 0.07407208, z: -0.0283854} - rotation: {x: 0.15862525, y: 0.05962076, z: -0.9222926, w: 0.34736133} - scale: {x: 1.0000001, y: 1.0000002, z: 1.0000002} - - name: pedalA2_R - parentName: pedalA1_R - position: {x: 0.038092095, y: 0.0000053548583, z: -0.000002382847} - rotation: {x: 0.0007028281, y: -0.00554252, z: 0.1258275, w: 0.9920364} - scale: {x: 1.0000001, y: 1.0000002, z: 1} - - name: pedalA3_R - parentName: pedalA2_R - position: {x: 0.034147833, y: -0.000004498287, z: 0.0000016172912} - rotation: {x: 0.0021009243, y: -0.023252625, z: 0.08994635, w: 0.99567294} - scale: {x: 1.0000002, y: 1.0000006, z: 1.0000006} - - name: pedalA4_R - parentName: pedalA3_R - position: {x: 0.0368207, y: 0.000004383013, z: -0.0000012474314} - rotation: {x: -0.0066320524, y: 0.11686569, z: -0.056266066, w: -0.9915305} - scale: {x: 1.0000006, y: 1.0000011, z: 1.0000002} - - name: pedalA5_R - parentName: pedalA4_R - position: {x: 0.03285604, y: -0.00000043235696, z: 0.000000014339509} - rotation: {x: -0, y: -0, z: 0.0000000016298142, w: 1} - scale: {x: 1.0000002, y: 1.0000002, z: 1.0000004} - - name: pedalB1_L - parentName: Head - position: {x: -0.15757503, y: 0.05896424, z: 0.06996904} - rotation: {x: 0.31234065, y: 0.45579147, z: 0.2580539, w: 0.79253125} - scale: {x: 1, y: 1.0000002, z: 1.0000005} - - name: pedalB2_L - parentName: pedalB1_L - position: {x: -0.036644474, y: 3.5527136e-17, z: 0} - rotation: {x: -0.0015076696, y: 0.016709385, z: 0.08986209, w: 0.9958129} - scale: {x: 1.0000001, y: 1.0000001, z: 1.0000004} - - name: pedalB3_L - parentName: pedalB2_L - position: {x: -0.040783122, y: 0, z: 0} - rotation: {x: 0.0073505975, y: 0.068240635, z: -0.1068436, w: 0.9919041} - scale: {x: 0.99999994, y: 1.0000002, z: 1.0000002} - - name: pedalB4_L - parentName: pedalB3_L - position: {x: -0.027589377, y: -2.4868996e-16, z: 0} - rotation: {x: 0.0037841368, y: 0.06298778, z: -0.059848454, w: 0.99621105} - scale: {x: 1.0000002, y: 1.0000004, z: 1.0000004} - - name: pedalB5_L - parentName: pedalB4_L - position: {x: -0.031231984, y: 1.4210854e-16, z: 8.5265126e-16} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: pedalB1_R - parentName: Head - position: {x: -0.15757501, y: 0.058964483, z: -0.069969} - rotation: {x: -0.45579147, y: 0.31234074, z: 0.7925312, w: -0.25805387} - scale: {x: 1.0000002, y: 1.0000007, z: 1.0000004} - - name: pedalB2_R - parentName: pedalB1_R - position: {x: 0.036643606, y: 0.00000026341073, z: -0.0000018644686} - rotation: {x: -0.0015077738, y: 0.01670934, z: 0.08986216, w: 0.99581295} - scale: {x: 1, y: 1.0000002, z: 1.0000002} - - name: pedalB3_R - parentName: pedalB2_R - position: {x: 0.040784497, y: -0.00000044807544, z: 0.0000026029657} - rotation: {x: 0.0073506595, y: 0.06824066, z: -0.10684368, w: 0.991904} - scale: {x: 1, y: 1.0000001, z: 1.0000002} - - name: pedalB4_R - parentName: pedalB3_R - position: {x: 0.02758738, y: 0.00000012849632, z: -0.0000054013} - rotation: {x: 0.0037841126, y: 0.06298781, z: -0.059848364, w: 0.99621105} - scale: {x: 1.0000001, y: 1.0000005, z: 1} - - name: pedalB5_R - parentName: pedalB4_R - position: {x: 0.031233242, y: 0.00000021207657, z: 0.0000062550835} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: pedalC1_L - parentName: Head - position: {x: -0.107264124, y: 0.045420088, z: 0.082003996} - rotation: {x: 0.4405881, y: 0.26655972, z: 0.020931562, w: 0.85696566} - scale: {x: 1, y: 1.0000002, z: 1.0000001} - - name: pedalC2_L - parentName: pedalC1_L - position: {x: -0.035671502, y: -1.7763568e-17, z: 0} - rotation: {x: -0.038314994, y: 0.071041696, z: -0.022893054, w: 0.99647427} - scale: {x: 1.0000001, y: 1.0000001, z: 1.0000004} - - name: pedalC3_L - parentName: pedalC2_L - position: {x: -0.036727104, y: -3.5527136e-17, z: -2.842171e-16} - rotation: {x: -0.0026415698, y: -0.05036085, z: -0.052318826, w: 0.99735636} - scale: {x: 1.0000001, y: 1, z: 1.0000002} - - name: pedalC4_L - parentName: pedalC3_L - position: {x: -0.030103153, y: -1.7763568e-17, z: 0} - rotation: {x: 0.0014031789, y: -0.089690246, z: 0.015585746, w: 0.9958468} - scale: {x: 1.0000001, y: 1.0000004, z: 1.0000005} - - name: pedalC5_L - parentName: pedalC4_L - position: {x: -0.033073757, y: 1.7763568e-17, z: -2.842171e-16} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: pedalC1_R - parentName: Head - position: {x: -0.107268296, y: 0.045419693, z: -0.082004} - rotation: {x: -0.52960336, y: 0.41708955, z: 0.6960527, w: -0.2471182} - scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001} - - name: pedalC2_R - parentName: pedalC1_R - position: {x: 0.035671618, y: -0.0000000095021155, z: 0.000000093630184} - rotation: {x: -0.038315088, y: 0.07104172, z: -0.022892952, w: 0.99647427} - scale: {x: 0.99999994, y: 0.99999994, z: 1} - - name: pedalC3_R - parentName: pedalC2_R - position: {x: 0.036725037, y: -0.0000006093943, z: -0.000007657373} - rotation: {x: -0.0026415102, y: -0.050360717, z: -0.05231888, w: 0.9973563} - scale: {x: 1, y: 1.0000001, z: 1.0000001} - - name: pedalC4_R - parentName: pedalC3_R - position: {x: 0.030105362, y: 0.0000010914362, z: 0.000007049058} - rotation: {x: 0.0014030645, y: -0.08969027, z: 0.015585772, w: 0.9958468} - scale: {x: 0.99999994, y: 1.0000001, z: 0.99999994} - - name: pedalC5_R - parentName: pedalC4_R - position: {x: 0.03306995, y: -0.0000013499729, z: -0.0000073903566} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: pedalD1_L - parentName: Head - position: {x: -0.08135567, y: 0.029088823, z: 0.08131405} - rotation: {x: 0.3824446, y: 0.6757835, z: 0.3509121, w: 0.5233674} - scale: {x: 1.0000002, y: 1.0000002, z: 1.0000004} - - name: pedalD2_L - parentName: pedalD1_L - position: {x: -0.04388904, y: 3.5527136e-17, z: -5.684342e-16} - rotation: {x: -0.003189891, y: -0.078433834, z: -0.040514927, w: 0.99609065} - scale: {x: 1, y: 1.0000004, z: 1.0000004} - - name: pedalD3_L - parentName: pedalD2_L - position: {x: -0.03287495, y: 0, z: 0} - rotation: {x: 0.00048070308, y: 0.008389838, z: -0.05724818, w: 0.9983247} - scale: {x: 1.0000001, y: 1, z: 1.0000002} - - name: pedalD4_L - parentName: pedalD3_L - position: {x: -0.025873967, y: 0, z: 2.842171e-16} - rotation: {x: -0.008314494, y: 0.21168374, z: 0.038358793, w: 0.9765498} - scale: {x: 1.0000001, y: 1.0000005, z: 1.0000002} - - name: pedalD5_L - parentName: pedalD4_L - position: {x: -0.031726785, y: 1.4210854e-16, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: pedalD1_R - parentName: Head - position: {x: -0.081357144, y: 0.029088633, z: -0.081314} - rotation: {x: -0.6358174, y: 0.18100674, z: 0.7488734, w: -0.046491127} - scale: {x: 1, y: 1, z: 1.0000002} - - name: pedalD2_R - parentName: pedalD1_R - position: {x: 0.043888584, y: 0.00000093065347, z: 0.0000028985098} - rotation: {x: 0.00031921823, y: -0.07723111, z: -0.08443263, w: 0.9934317} - scale: {x: 1, y: 1, z: 1.0000001} - - name: pedalD3_R - parentName: pedalD2_R - position: {x: 0.032874923, y: -0.0000013607378, z: -0.000004782389} - rotation: {x: 0.0004806979, y: 0.008389874, z: -0.057248246, w: 0.99832463} - scale: {x: 1.0000001, y: 1.0000002, z: 1.0000004} - - name: pedalD4_R - parentName: pedalD3_R - position: {x: 0.025873668, y: 0.000000650432, z: 0.00000095019965} - rotation: {x: -0.019660642, y: 0.08423319, z: 0.06598837, w: 0.9940643} - scale: {x: 1.0000001, y: 1.0000005, z: 1.0000004} - - name: pedalD5_R - parentName: pedalD4_R - position: {x: 0.031727757, y: -0.00000092986284, z: -0.0000012576362} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: pedalE1_L - parentName: Head - position: {x: -0.054470837, y: 0.030261306, z: 0.07645104} - rotation: {x: 0.30201444, y: 0.6835133, z: 0.5251743, w: 0.40717188} - scale: {x: 1.0000001, y: 1, z: 1.0000001} - - name: pedalE2_L - parentName: pedalE1_L - position: {x: -0.035615966, y: 3.5527136e-17, z: -2.842171e-16} - rotation: {x: 0.00013248621, y: 0.030184593, z: -0.004361495, w: 0.99953485} - scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} - - name: pedalE3_L - parentName: pedalE2_L - position: {x: -0.028844701, y: 3.5527136e-17, z: -2.842171e-16} - rotation: {x: -0.016802592, y: 0.20743491, z: 0.07896706, w: 0.97491163} - scale: {x: 1.0000002, y: 1.0000005, z: 1} - - name: pedalE4_L - parentName: pedalE3_L - position: {x: -0.017558865, y: 4.4408918e-17, z: 2.842171e-16} - rotation: {x: 0.023072949, y: -0.18256979, z: 0.12323801, w: 0.9751658} - scale: {x: 1.0000004, y: 1.0000002, z: 1} - - name: pedalE5_L - parentName: pedalE4_L - position: {x: -0.026840098, y: 7.105427e-17, z: 0} - rotation: {x: -0, y: -0, z: -0, w: 1} - scale: {x: 1.0000001, y: 1.0000005, z: 1.0000001} - - name: pedalE1_R - parentName: Head - position: {x: -0.05446679, y: 0.030261718, z: -0.076450996} - rotation: {x: 0.6835133, y: -0.30201435, z: -0.40717182, w: 0.52517426} - scale: {x: 1.0000002, y: 1.0000004, z: 1.0000004} - - name: pedalE2_R - parentName: pedalE1_R - position: {x: 0.0356149, y: 0.000000006720624, z: 0.000002581053} - rotation: {x: 0.00013250113, y: 0.030184582, z: -0.0043613166, w: 0.99953485} - scale: {x: 1.0000002, y: 1.0000004, z: 1.0000005} - - name: pedalE3_R - parentName: pedalE2_R - position: {x: 0.028843941, y: -0.000000022925304, z: 0.0000013501387} - rotation: {x: 0.016802633, y: -0.2074349, z: -0.078966856, w: -0.9749117} - scale: {x: 1.0000001, y: 1, z: 1.0000001} - - name: pedalE4_R - parentName: pedalE3_R - position: {x: 0.017558595, y: 0.000000052151258, z: 0.0000002622886} - rotation: {x: 0.023072995, y: -0.18256974, z: 0.123238064, w: 0.97516584} - scale: {x: 1.0000001, y: 1.0000004, z: 1.0000001} - - name: pedalE5_R - parentName: pedalE4_R - position: {x: 0.026841117, y: -0.0000006223147, z: -0.000002005182} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: pedalF1_L - parentName: Head - position: {x: -0.04205154, y: 0.023377173, z: 0.06707798} - rotation: {x: -0.14725208, y: 0.74480194, z: 0.40470457, w: 0.509707} - scale: {x: 1.0000001, y: 1, z: 1.0000001} - - name: pedalF2_L - parentName: pedalF1_L - position: {x: -0.027799321, y: 0, z: 5.684342e-16} - rotation: {x: -0.07169218, y: 0.05513628, z: -0.113847025, w: 0.98937315} - scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001} - - name: pedalF3_L - parentName: pedalF2_L - position: {x: -0.018588457, y: 0, z: 1.4210854e-16} - rotation: {x: -0.010598379, y: 0.01686775, z: -0.009406415, w: 0.99975735} - scale: {x: 1.0000005, y: 1.0000004, z: 1} - - name: pedalF4_L - parentName: pedalF3_L - position: {x: -0.016333, y: -7.105427e-17, z: -3.5527136e-17} - rotation: {x: 0.019006247, y: -0.20657596, z: 0.089628205, w: 0.97413135} - scale: {x: 1.0000004, y: 1.0000005, z: 1} - - name: pedalF5_L - parentName: pedalF4_L - position: {x: -0.024877517, y: -2.1316282e-16, z: 1.4210854e-16} - rotation: {x: -0, y: -0, z: 4.6566134e-10, w: 1} - scale: {x: 0.99999994, y: 0.99999994, z: 1} - - name: pedalF1_R - parentName: Head - position: {x: -0.042055514, y: 0.023376817, z: -0.067077994} - rotation: {x: 0.65839666, y: -0.2932288, z: -0.31044427, w: 0.6198025} - scale: {x: 1.0000002, y: 1.0000001, z: 1.0000005} - - name: pedalF2_R - parentName: pedalF1_R - position: {x: 0.027804129, y: -0.00000006092411, z: -0.000007070838} - rotation: {x: 0.034035794, y: -0.24379855, z: -0.1340115, w: -0.9599192} - scale: {x: 0.99999994, y: 1.0000001, z: 0.99999994} - - name: pedalF3_R - parentName: pedalF2_R - position: {x: 0.018582985, y: 0.0000010183843, z: 0.000002968836} - rotation: {x: -0.008092336, y: 0.16204251, z: 0.04921902, w: 0.9855223} - scale: {x: 1.0000004, y: 1, z: 1.0000004} - - name: pedalF4_R - parentName: pedalF3_R - position: {x: 0.016335573, y: -0.00000066251914, z: -0.00000049842987} - rotation: {x: 0.019006249, y: -0.20657587, z: 0.08962831, w: 0.9741314} - scale: {x: 1.0000005, y: 1.0000002, z: 1.0000002} - - name: pedalF5_R - parentName: pedalF4_R - position: {x: 0.024877202, y: 0.00000015386338, z: 0.00000030317432} - rotation: {x: -0.0000000037252894, y: -0, z: -0.000000014901158, w: 1} - scale: {x: 0.99999994, y: 0.9999998, z: 1} - - name: RightEye - parentName: Head - position: {x: -0.09639899, y: 0.080643415, z: -0.041502442} - rotation: {x: 0.6722343, y: 0.7395205, z: -0.023402778, w: 0.025746647} - scale: {x: 1, y: 1.0000001, z: 0.99999994} - - name: Viewpoint - parentName: Head - position: {x: -0.09862352, y: 0.1182949, z: -0.0000049199994} - rotation: {x: 0.52324307, y: -0.47562245, z: -0.52324307, w: -0.47562245} - scale: {x: 1, y: 1, z: 1} - - name: RightShoulder - parentName: Chest - position: {x: -0.066512585, y: 0.09479429, z: -0.0282178} - rotation: {x: -0.66002935, y: 0.1770811, z: 0.69426274, w: -0.22583827} - scale: {x: 1, y: 1, z: 1} - - name: RightArmUpper - parentName: RightShoulder - position: {x: 0.1765048, y: -2.6645352e-17, z: 0} - rotation: {x: -0.09309796, y: 0.4776535, z: -0.1875573, w: 0.8532304} - scale: {x: 1, y: 1, z: 1} - - name: RightArmLower - parentName: RightArmUpper - position: {x: 0.25679636, y: 0.0000000101391375, z: -2.842171e-16} - rotation: {x: -0.00000008940697, y: -0.00000005960464, z: 0.29681027, w: -0.9549365} - scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} - - name: RightArmLowerTwist1_jnt - parentName: RightArmLower - position: {x: 0.099999994, y: 0, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightArmLowerTwist2_jnt - parentName: RightArmLower - position: {x: 0.19999999, y: 0, z: 2.842171e-16} - rotation: {x: -7.1054265e-15, y: -3.5527133e-15, z: -5.3290697e-15, w: 1} - scale: {x: 0.99999994, y: 1.0000001, z: 1.0000004} - - name: RightArmLowerTwist3_jnt - parentName: RightArmLower - position: {x: 0.25627, y: 0, z: 2.842171e-16} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandWrist - parentName: RightArmLower - position: {x: 0.25627, y: -0.000000004506687, z: -0.000000009283036} - rotation: {x: -0.6534106, y: -0.11918222, z: 0.049257997, w: -0.7459383} - scale: {x: 0.9999999, y: 1.0000005, z: 1} - - name: RightHandIndexProximal - parentName: RightHandWrist - position: {x: 0.09599624, y: -0.0073164543, z: 0.02355068} - rotation: {x: 0.030682858, y: 0.018855637, z: -0.043281425, w: 0.9984137} - scale: {x: 1, y: 1, z: 1.0000001} - - name: RightHandIndexIntermediate - parentName: RightHandIndexProximal - position: {x: 0.0379273, y: 1.4210854e-16, z: -1.4210854e-16} - rotation: {x: -0.02585228, y: 0.0071161585, z: -0.0032927745, w: 0.99963504} - scale: {x: 1.0000001, y: 1, z: 1.0000001} - - name: RightHandIndexDistal - parentName: RightHandIndexIntermediate - position: {x: 0.024303643, y: 1.4210854e-16, z: 2.842171e-16} - rotation: {x: -0.016055742, y: 0.027148759, z: 0.072033964, w: 0.9969034} - scale: {x: 1, y: 0.99999994, z: 0.9999998} - - name: RightHandIndexTip - parentName: RightHandIndexDistal - position: {x: 0.011583036, y: -1.4210854e-16, z: -2.842171e-16} - rotation: {x: -0, y: -0, z: -0.0000000026775517, w: 1} - scale: {x: 1.0000001, y: 1.0000001, z: 1.0000001} - - name: RightHandMiddleProximal - parentName: RightHandWrist - position: {x: 0.095646605, y: -0.0025431544, z: 0.0017259055} - rotation: {x: -0.009066285, y: 0.051465582, z: -0.05183547, w: 0.99728745} - scale: {x: 1, y: 0.99999994, z: 1} - - name: RightHandMiddleIntermediate - parentName: RightHandMiddleProximal - position: {x: 0.04292699, y: 0, z: 0} - rotation: {x: -0.011228034, y: 0.004379056, z: 0.0019782057, w: 0.9999255} - scale: {x: 1.0000002, y: 1, z: 1} - - name: RightHandMiddleDistal - parentName: RightHandMiddleIntermediate - position: {x: 0.027549583, y: 0, z: -1.4210854e-16} - rotation: {x: -0.034319926, y: 0.0046116416, z: 0.093006805, w: 0.9950631} - scale: {x: 1, y: 1, z: 0.99999994} - - name: RightHandMiddleTip - parentName: RightHandMiddleDistal - position: {x: 0.0122034745, y: -2.842171e-16, z: 1.4210854e-16} - rotation: {x: -0, y: -4.6566118e-10, z: -0.0000000014551912, w: 1} - scale: {x: 1.0000001, y: 1.0000001, z: 0.99999994} - - name: RightHandPinkyMeta - parentName: RightHandWrist - position: {x: 0.034073558, y: -0.009419835, z: -0.022998573} - rotation: {x: -0.19855496, y: 0.32085145, z: -0.06888354, w: 0.92351794} - scale: {x: 1, y: 1.0000001, z: 0.9999997} - - name: RightHandPinkyProximal - parentName: RightHandPinkyMeta - position: {x: 0.04565054, y: -0.0000009982332, z: 0.0000021940255} - rotation: {x: 0.4397845, y: -0.37552333, z: -0.029564666, w: 0.81529} - scale: {x: 1, y: 1, z: 1} - - name: RightHandPinkyIntermediate - parentName: RightHandPinkyProximal - position: {x: 0.030720409, y: 1.4210854e-16, z: 4.2632563e-16} - rotation: {x: -0.03761653, y: 0.042937733, z: 0.013286147, w: 0.998281} - scale: {x: 1.0000002, y: 0.99999994, z: 1.0000001} - - name: RightHandPinkyDistal - parentName: RightHandPinkyIntermediate - position: {x: 0.020311384, y: -2.842171e-16, z: -2.842171e-16} - rotation: {x: 0.0006446576, y: -0.04917051, z: 0.024018904, w: 0.99850136} - scale: {x: 1, y: 1, z: 1.0000001} - - name: RightHandPinkyTip - parentName: RightHandPinkyDistal - position: {x: 0.011908775, y: 2.842171e-16, z: 1.4210854e-16} - rotation: {x: -0, y: -0, z: -3.456079e-10, w: 1} - scale: {x: 1.0000001, y: 0.99999994, z: 1.0000002} - - name: RightHandRingProximal - parentName: RightHandWrist - position: {x: 0.08869379, y: -0.006529307, z: -0.017465241} - rotation: {x: -0.05315939, y: 0.12310342, z: -0.04981332, w: 0.9897163} - scale: {x: 1, y: 1, z: 0.99999994} - - name: RightHandRingIntermediate - parentName: RightHandRingProximal - position: {x: 0.0389961, y: -2.842171e-16, z: 2.842171e-16} - rotation: {x: -0.0336325, y: 0.0027899144, z: -0.005676227, w: 0.9994143} - scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001} - - name: RightHandRingDistal - parentName: RightHandRingIntermediate - position: {x: 0.026573397, y: 4.2632563e-16, z: -1.4210854e-16} - rotation: {x: -0.0034774202, y: -0.02917929, z: 0.025028776, w: 0.99925476} - scale: {x: 1, y: 0.9999998, z: 0.99999994} - - name: RightHandRingTip - parentName: RightHandRingDistal - position: {x: 0.01193941, y: -4.2632563e-16, z: 0} - rotation: {x: -2.3283062e-10, y: -0, z: 7.9307927e-10, w: 1} - scale: {x: 0.9999998, y: 1, z: 1} - - name: RightHandThumbTrapezium - parentName: RightHandWrist - position: {x: 0.020069301, y: -0.011554099, z: 0.0104965195} - rotation: {x: 0.37538707, y: -0.42458397, z: 0.007779062, w: 0.8238644} - scale: {x: 0.9999998, y: 1, z: 1.0000001} - - name: RightHandThumbMeta - parentName: RightHandThumbTrapezium - position: {x: 0.024852559, y: -1.4210854e-16, z: 1.7763567e-16} - rotation: {x: 0.26023072, y: -0.024331093, z: -0.12567778, w: 0.957023} - scale: {x: 1.0000001, y: 1.0000004, z: 0.9999997} - - name: RightHandThumbProximal - parentName: RightHandThumbMeta - position: {x: 0.03251291, y: 0, z: 1.4210854e-16} - rotation: {x: -0.08270432, y: 0.076961555, z: 0.08406199, w: 0.99003565} - scale: {x: 1.0000002, y: 0.9999998, z: 1.0000001} - - name: RightHandThumbDistal - parentName: RightHandThumbProximal - position: {x: 0.03379309, y: 1.4210854e-16, z: -1.4210854e-16} - rotation: {x: 0.08350631, y: -0.06501554, z: 0.058274046, w: 0.99267507} - scale: {x: 1.0000001, y: 1.0000001, z: 1.0000001} - - name: RightHandThumbTip - parentName: RightHandThumbDistal - position: {x: 0.014863368, y: 0.000000057389798, z: 0.0000000019459812} - rotation: {x: -0.00000013923271, y: 0.000004119705, z: 1, w: -0.00000003073364} - scale: {x: 1.0000001, y: 1.0000001, z: 1} - - name: RightArmUpperTwist1_jnt - parentName: RightArmUpper - position: {x: 0.089999996, y: 1.1046719e-16, z: -3.563816e-16} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightArmUpperTwist2_jnt - parentName: RightArmUpper - position: {x: 0.17999999, y: 1.1046719e-16, z: -3.563816e-16} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightArmUpperTwist3_jnt - parentName: RightArmUpper - position: {x: 0.25679636, y: 0.0000000101391375, z: -2.842171e-16} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} + human: [] + skeleton: [] armTwist: 0.5 foreArmTwist: 0.5 upperLegTwist: 0.5 @@ -1119,15 +141,15 @@ ModelImporter: globalScale: 1 rootMotionBoneName: hasTranslationDoF: 0 - hasExtraRoot: 1 + hasExtraRoot: 0 skeletonHasParents: 1 lastHumanDescriptionAvatarSource: {instanceID: 0} autoGenerateAvatarMappingIfUnspecified: 1 - animationType: 3 + animationType: 2 humanoidOversampling: 1 - avatarSetup: 1 + avatarSetup: 0 addHumanoidExtraRootOnlyWhenUsingAvatar: 1 - remapMaterialsIfMaterialImportModeIsNone: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 additionalBone: 0 userData: assetBundleName: diff --git a/Samples/Models/HighFidelity/high_fidelity_rig.fbx.meta b/Samples/Models/HighFidelity/high_fidelity_rig.fbx.meta index 27e48fa6..c9b4ca71 100644 --- a/Samples/Models/HighFidelity/high_fidelity_rig.fbx.meta +++ b/Samples/Models/HighFidelity/high_fidelity_rig.fbx.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 guid: e90520f3b2e75c34b84d96e20091eb25 ModelImporter: - serializedVersion: 20200 + serializedVersion: 21300 internalIDToNameTable: [] externalObjects: {} materials: @@ -14,6 +14,7 @@ ModelImporter: bakeSimulation: 0 resampleCurves: 1 optimizeGameObjects: 0 + removeConstantScaleCurves: 0 motionNodeName: rigImportErrors: rigImportWarnings: @@ -43,6 +44,7 @@ ModelImporter: importBlendShapes: 1 importCameras: 1 importLights: 1 + nodeNameCollisionStrategy: 0 fileIdsGeneration: 2 swapUVChannels: 0 generateSecondaryUV: 0 @@ -54,6 +56,7 @@ ModelImporter: skinWeightsMode: 0 maxBonesPerVertex: 4 minBoneWeight: 0.001 + optimizeBones: 1 meshOptimizationFlags: -1 indexFormat: 0 secondaryUVAngleDistortion: 8 @@ -1074,7 +1077,7 @@ ModelImporter: feetSpacing: 0 globalScale: 1 rootMotionBoneName: - hasTranslationDoF: 0 + hasTranslationDoF: 1 hasExtraRoot: 1 skeletonHasParents: 1 lastHumanDescriptionAvatarSource: {instanceID: 0} @@ -1083,6 +1086,7 @@ ModelImporter: humanoidOversampling: 1 avatarSetup: 1 addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 1 additionalBone: 0 userData: assetBundleName: diff --git a/Samples/Prefabs/Aura/AuraWithTongue - FirstPerson.prefab b/Samples/Prefabs/Aura/AuraWithTongue - FirstPerson.prefab new file mode 100644 index 00000000..645dbc1f --- /dev/null +++ b/Samples/Prefabs/Aura/AuraWithTongue - FirstPerson.prefab @@ -0,0 +1,122 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &7986394283991802289 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 843904557, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: _blendshapeModifier + value: + objectReference: {fileID: 0} + - target: {fileID: 869131088346887740, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6805427722635360083, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Name + value: AuraWithTongue - FirstPerson + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 908253765, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + - {fileID: 908253762, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + - {fileID: 908253767, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + - {fileID: 908253769, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} +--- !u!1 &1805514783137291426 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8636537841303158035, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 7986394283991802289} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1727280464575251453 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1805514783137291426} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 28dd40a6d175d01498e0477360d6c070, type: 3} + m_Name: + m_EditorClassIdentifier: + Eye: 1 + ConfidenceThreshold: 0 + ApplyPosition: 0 + ApplyRotation: 1 + ReferenceFrame: {fileID: 2879822183606112578} + TrackingMode: 0 +--- !u!4 &2879822183606112578 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5269897990053261555, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 7986394283991802289} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8033380976643437955 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 119646820052554802, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 7986394283991802289} + m_PrefabAsset: {fileID: 0} +--- !u!114 &9219359636438138095 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8033380976643437955} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 28dd40a6d175d01498e0477360d6c070, type: 3} + m_Name: + m_EditorClassIdentifier: + Eye: 0 + ConfidenceThreshold: 0 + ApplyPosition: 0 + ApplyRotation: 1 + ReferenceFrame: {fileID: 2879822183606112578} + TrackingMode: 0 diff --git a/Samples/Prefabs/Aura/AuraWithTongue - FirstPerson.prefab.meta b/Samples/Prefabs/Aura/AuraWithTongue - FirstPerson.prefab.meta new file mode 100644 index 00000000..8271768f --- /dev/null +++ b/Samples/Prefabs/Aura/AuraWithTongue - FirstPerson.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7e1dc9106b4ef4227a0160436ba98ced +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Prefabs/Aura/AuraWithTongue - Mirrored.prefab b/Samples/Prefabs/Aura/AuraWithTongue - Mirrored.prefab new file mode 100644 index 00000000..d7614273 --- /dev/null +++ b/Samples/Prefabs/Aura/AuraWithTongue - Mirrored.prefab @@ -0,0 +1,1115 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &4586958074314054654 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 843904557, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: _faceExpressions + value: + objectReference: {fileID: 0} + - target: {fileID: 908253762, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: _ovrFaceExpressions + value: + objectReference: {fileID: 0} + - target: {fileID: 908253767, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: _duplicateLayerName + value: MirroredCharacter + objectReference: {fileID: 0} + - target: {fileID: 1148030268, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: _faceExpressions + value: + objectReference: {fileID: 0} + - target: {fileID: 74049967219688545, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 118528947505886864, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 119646820052554802, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 153665023725729072, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 224145648162174478, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 283015123308733547, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 311740972759350922, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 386827104656738250, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 439208326490150574, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 529431700278927718, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 566240200379059556, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 605534620011185648, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 745961330339147757, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 794459677015650725, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 857413943628313907, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 869131088346887740, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1000304773713604881, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1093930744852763788, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1157776800282042439, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1158241425439945308, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1291719120759248513, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1334201964728953477, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1357359163193536185, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1432595287416309425, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1638960394841273732, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1779247091487872276, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1807421551552812759, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1810806181035740610, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1837674896288033529, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1911516088436413081, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 1988913533242274581, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2062920148279043650, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2126824905938023402, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2149536801913654565, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2150058818125499861, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2210471340188888672, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2251077720397672694, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2311684165967553280, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2418337792306806378, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2494232498981730089, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2613637064111036097, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2628490292025923946, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2760489799992955608, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2763289309980930536, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2817476488100005803, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2827918957081632155, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2838437542854282514, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2855604362987105491, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2877431785538445201, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2886591267328784620, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2959162534645796842, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2963721737663026021, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2999903248693189977, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3169054110493745329, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3227146748073739620, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3242316007912683244, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3248336518432537246, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3289751141833769306, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3330504799668598168, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3511945791261688114, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3573081386394456025, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3582958703521715555, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3597147028715313926, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3626154662605292807, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3630088939099103813, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3770431529012783346, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3771376975364592410, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3851356669571092894, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4020342480481038901, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4088220486719599306, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4173723693349248765, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4236598415038638762, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4250241066608528350, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4252449883574291969, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4304137794774430471, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4314002648610906104, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4403041871974434120, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4501214080512861202, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4502245707215001553, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4621575407958664350, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4703251304792450460, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4716771243956932617, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4790525481008175005, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4884631947727239541, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4909382173021845204, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5058356032196749086, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5119613922320847805, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5125542810253987685, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5126902457531905862, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5312425055862163957, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5319071210925421616, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5321598968265469933, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5339048159208937027, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5497529564172579121, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5497702858031666603, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5501729867177329874, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5519975346594975446, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5538084559463564848, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5590998164193405067, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5605361599396980155, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5611029495217200204, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5618400391326249265, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5657723948569980427, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5660630544377888079, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5755469830263317571, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5761692701172777736, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5767626176629492078, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5833347388574845624, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5855025665010895651, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5875214427689306968, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5922454588247953501, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5997613527901905846, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6018683061141748002, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6105564661332426222, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6135464623545193271, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6141340723736669673, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6150708498778673716, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6169470576593669945, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6233129136226455233, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6285439560093124033, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6299412198515547699, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6307493566649777332, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6329750965233301166, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6410531656282777608, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6454080479054029214, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6573652607566349905, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6648706169458316966, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6689336529358012629, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6805427722635360083, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Name + value: AuraWithTongue - Mirrored + objectReference: {fileID: 0} + - target: {fileID: 6805427722635360083, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6811297119214058933, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6833631927649383894, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6873868447711041250, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6939682085731690198, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7083033545151276370, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7103226107187506448, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7106826718427586342, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7130914041773222903, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7146937943641289251, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7189858974742101081, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7250578709885026264, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7266056493189691563, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7281886716479359433, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7330121820231816633, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7331601373554505485, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7406354485741138314, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7500645959394812849, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7621284665085255797, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7622002563016512267, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7646355678706252309, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7658236492508163452, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7661308290547641729, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7663831614448417068, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7665725577851039658, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7674732393965471578, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7683601090175889886, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7687556324351957489, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7809701005322292308, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7849919211959101337, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7923769013962390945, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 7971849566028282398, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 8025119514424559480, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 8039685790670277650, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 8146786555766312081, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 8177031365125569856, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 8225985912722293236, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 8233867028577265232, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 8396027223327800835, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 8549315493729574629, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 8636537841303158035, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 8815540480774868323, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 9072128315617248955, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 9076336084446966368, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 908253763, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} +--- !u!4 &686465285796487152 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3904329070637220878, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &736733105935125031 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3859937598849012185, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &757141761675154647 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3830819987583110953, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1034138632089815931 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3598896770637205637, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1213291289765763780 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3422278247831372090, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1594072230638739637 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3005992427230083915, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1596007284917842544 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2994346451891382670, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2376493534750305505 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2257189995743065887, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2778274522199169339 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1812223747632546501, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3172210665934176505 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1418021299970579207, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3194920441808397388 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1440735330008760242, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3490989522449275274 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1142324864039404148, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3567404404089032837 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1020577100832000891, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3689526480303493248 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 908586767777155966, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3918570730952484860 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 705280916094925826, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3927434639022015541 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 660106022922330059, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4013406995184450555 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 583878561129046021, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4077447972099422666 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 521897775873794612, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4116015844866693355 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 483891264865026837, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4551357080254297585 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 36465537841982991, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4586958074618282422 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 908253768, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7050836453888093357} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 674a40251fe8ad841b18517ac5209957, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &4635662550782876303 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 9222537059492151665, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4690683456867563877 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 9128939177910280859, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4894945970183901895 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8954969687411902777, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5074190762774184805 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8773860405498878107, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5551835949387166331 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8260784178361952645, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6434949764680087120 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7414524395095600558, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6454510493255468716 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7366517934922882386, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6730419698328719704 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7120022917516462758, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!1 &7050836453888093357 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6805427722635360083, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!114 &9113924184540537749 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7050836453888093357} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88d4464cfaf7bd54f8bbe081ec2858c8, type: 3} + m_Name: + m_EditorClassIdentifier: + _skeletonToCopy: {fileID: 0} + _mySkeleton: {fileID: 4586958074618282422} + _mirroredBonePairs: + - Name: RightFootTip + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 6730419698328719704} + - Name: RightFootBall + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 2376493534750305505} + - Name: RightFootAnkle + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 3194920441808397388} + - Name: RightLegLower + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 736733105935125031} + - Name: RightLegUpper + ShouldBeReparented: 1 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 6434949764680087120} + - Name: LeftFootTip + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 1596007284917842544} + - Name: LeftFootBall + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 3918570730952484860} + - Name: LeftFootAnkle + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 4635662550782876303} + - Name: LeftLegLower + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 3172210665934176505} + - Name: LeftLegUpper + ShouldBeReparented: 1 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 1594072230638739637} + - Name: RightArmUpperTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 9072355591611486591} + - Name: RightArmUpperTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 4894945970183901895} + - Name: RightArmUpperTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 5074190762774184805} + - Name: RightArmLowerTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 7678141648710171471} + - Name: RightArmLowerTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 3689526480303493248} + - Name: RightArmLowerTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 4690683456867563877} + - Name: LeftArmUpperTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 2778274522199169339} + - Name: LeftArmUpperTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 8714088173187692010} + - Name: LeftArmUpperTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 4013406995184450555} + - Name: LeftArmLowerTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 3490989522449275274} + - Name: LeftArmLowerTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 686465285796487152} + - Name: LeftArmLowerTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 4116015844866693355} + - Name: RightLegUpperTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 5551835949387166331} + - Name: RightLegUpperTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 4551357080254297585} + - Name: RightLegUpperTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 8392301103519243809} + - Name: RightLegLowerTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 6454510493255468716} + - Name: RightLegLowerTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 3567404404089032837} + - Name: RightLegLowerTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 3927434639022015541} + - Name: LeftLegUpperTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 1213291289765763780} + - Name: LeftLegUpperTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 7797360399531655599} + - Name: LeftLegUpperTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 1034138632089815931} + - Name: LeftLegLowerTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 8038464032516053291} + - Name: LeftLegLowerTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 8298505480494692117} + - Name: LeftLegLowerTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 757141761675154647} + - Name: RightEye + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 7274321491654204752} + - Name: LeftEye + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 4077447972099422666} +--- !u!4 &7274321491654204752 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6583051868888401582, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7678141648710171471 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6135621465268625585, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7797360399531655599 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6025235657357597265, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8038464032516053291 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5775438135467360981, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8298505480494692117 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5512987399671377131, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8392301103519243809 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5467184625971054047, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8714088173187692010 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5135949753528462868, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} +--- !u!4 &9072355591611486591 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4778140289205357185, guid: d1c1c3df6bc4b45a195b1167e582a299, type: 3} + m_PrefabInstance: {fileID: 4586958074314054654} + m_PrefabAsset: {fileID: 0} diff --git a/Samples/Prefabs/Aura/AuraWithTongue - Mirrored.prefab.meta b/Samples/Prefabs/Aura/AuraWithTongue - Mirrored.prefab.meta new file mode 100644 index 00000000..2772be55 --- /dev/null +++ b/Samples/Prefabs/Aura/AuraWithTongue - Mirrored.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b2e64c8c2ec8b4b9eb8f461a43f655ef +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Prefabs/Aura/AuraWithTongue.prefab b/Samples/Prefabs/Aura/AuraWithTongue.prefab new file mode 100644 index 00000000..5a167298 --- /dev/null +++ b/Samples/Prefabs/Aura/AuraWithTongue.prefab @@ -0,0 +1,1417 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &5958497211192674818 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: -9187311675338040737, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -9135976255755635936, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -9112162899851204172, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -9059866756016815942, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8847213311776573770, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8834057700521198420, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8824090580276326461, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8800922488687848399, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8787781740469012500, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8483060724595547638, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8330210511580512300, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8226889819895194400, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7964220922082757769, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7669274321156274841, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7597162764153275178, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7275191544539839497, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7250242683770438094, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7247756668144458257, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7114155410334496502, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7102355875840840127, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7049767359782943532, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7031263384667599822, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -6978359981551623543, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -6969244799473730765, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -6741728132235619313, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_AABB.m_Extent.x + value: 0.77 + objectReference: {fileID: 0} + - target: {fileID: -6741728132235619313, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_AABB.m_Extent.y + value: 0.39 + objectReference: {fileID: 0} + - target: {fileID: -6741728132235619313, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_AABB.m_Extent.z + value: 0.67 + objectReference: {fileID: 0} + - target: {fileID: -6647341011961215341, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -6623228789760125721, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -6275833182358993055, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -6249027337035606044, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_AABB.m_Extent.x + value: 0.77 + objectReference: {fileID: 0} + - target: {fileID: -6249027337035606044, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_AABB.m_Extent.y + value: 0.39 + objectReference: {fileID: 0} + - target: {fileID: -6249027337035606044, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_AABB.m_Extent.z + value: 0.67 + objectReference: {fileID: 0} + - target: {fileID: -5817161771851515806, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5760015293192989404, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5754633688063498478, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5744678673790311947, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5693912362640117936, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5318769512202406438, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5255769767193543409, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5179286785850223629, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5124327918778751101, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5121802671798308050, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4939063806295643529, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4895017703229870052, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4760825935633101446, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4696845344897202602, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4663982866106796125, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4596807174448504697, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4516744880628527949, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4421995551647307195, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4421914896565340066, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4369109466740368253, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4019528200609998693, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3772444221139886891, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3738552444315474846, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3635043825429054732, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3502007488472250409, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3417888921271828686, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3360339094580564375, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3190868877705097629, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3123048421995488084, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3068246765461813402, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3033105116581368988, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -2785774523018559695, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -2677496477810667534, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -2158308666747434192, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -2078702375780907557, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -2063924548572147452, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -1809436757310643472, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -1694551467935407960, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -1654075460963305211, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -1626152230425487878, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -1581727209567094584, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -1385046003786240496, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -962621173081855742, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -918878582723120024, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -798833301433893910, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -787583832941566255, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -766063482299460205, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -752632295869245543, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -744929758659424855, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -651521477427225405, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -483459348493555021, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -355474614590220453, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -249806993824317542, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -121649279680299794, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 196589208368137068, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 231972490029580634, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 284271545169117473, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 301829445866603715, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 517502094452491579, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 546441016348547381, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 570656904324732982, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 687532949370539091, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 802016374825675676, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 879964446727780279, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Name + value: AuraWithTongue + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1037404087217703639, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1077528731071372452, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1210210663725047199, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1338686176135294620, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1424689787962333707, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1438226631880634270, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1477798217482579228, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1555640984766758212, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1566214835222321599, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1776891774444346433, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2032408006933636105, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2035148579832936269, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2227812381793750736, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2232402486875594665, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2232645934766717747, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2264945832587597390, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2268383790481518521, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2348705538820639734, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2374601883188571218, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2579000279508907842, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2696513562693367569, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2752961484680983553, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3411046842734644409, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3564413288586655323, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3575809268042201121, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3674481763690114260, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3780909940033665928, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3920069319273640617, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3965708993817108411, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4016824697745884107, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4040142142603492316, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4049569322152316248, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4084090168361365527, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4094604841364776360, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4104837714504476542, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4226470360578124211, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4284646550958561545, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4405195559579928080, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4485680105294507419, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4640567248020186299, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4903879512354799494, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5272272565632825623, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5332809968238436118, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5417951504326533371, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5445295071165155264, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5625034782739049536, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5706951741084809704, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5720809515683333927, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5885227124409531404, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5923885189524427955, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_BlendShapeWeights.Array.size + value: 273 + objectReference: {fileID: 0} + - target: {fileID: 5977728229198574600, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_BlendShapeWeights.Array.size + value: 28 + objectReference: {fileID: 0} + - target: {fileID: 5986916506804157586, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5988036544952753712, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6260939611825697928, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6336173898761326024, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6407208591115249135, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6464540652572523431, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6746033335200931470, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6827197251251715134, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6868304169964944147, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6976215515842226247, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6981254320456765189, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7136494920470486881, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7312708399802071095, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7414696043376941336, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7476557953841388444, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7515159913672278492, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7616546876213642243, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7736302562235454719, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7839611609383722451, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8046361220099247946, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8083291293905714475, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8430720343498348762, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8490677609871296272, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8559812759662826344, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8845050780377150190, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8904061298154248551, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8908642337312114152, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 9113585226918236006, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 9157892405150321496, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 9197684690013794460, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} +--- !u!137 &19700516057464330 stripped +SkinnedMeshRenderer: + m_CorrespondingSourceObject: {fileID: 5977728229198574600, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!137 &37448908620078769 stripped +SkinnedMeshRenderer: + m_CorrespondingSourceObject: {fileID: 5923885189524427955, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &212350093796120728 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5783394800387920538, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &516380830273578687 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6168339422179536061, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &707000664419376488 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -2630364969305827478, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &758901172713831459 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6357109309909218849, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &795181761269956707 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6465436499391679073, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &955083707410458949 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6913577617777828679, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &984851672163677696 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6852843402972134402, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1457155681773549160 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4141043383235347350, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1710549222220524011 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4247524672565025815, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1861734701157625569 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5433276824401421539, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2105735966768434709 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -3492042262321003497, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2181416674842142737 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -3677990310633283053, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2365906563176453751 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8243195762027945077, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2429192723721041921 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8288571981961409027, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2646810688624961043 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -717328083300307951, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2709321220193578619 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -636796523939928967, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2749544576043177145 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8401620812480405179, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2829684828368952597 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8499940660641912599, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2989519625185054489 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8920573021718922523, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3168899644715599634 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8740049587670682896, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3627133179606460417 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6982549524848992771, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3658704027229410439 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -2272481311773467003, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3732129352646794451 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -2198888584636164399, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3760441664403270005 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7394647125203510135, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3807668403238401120 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -1844404806445466014, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3835252908266019390 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -1762777071539367876, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4025658985667170609 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -1914357357991257293, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!137 &4138605516468963374 stripped +SkinnedMeshRenderer: + m_CorrespondingSourceObject: {fileID: -1450279550107696596, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4391987712531735864 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -1277988569044078790, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4464968837453615951 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8018118334481897805, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4634473240136128226 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1360123919412337888, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4679472325935167079 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1315058708315208805, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!1 &4716771243956932617 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1424689787962333707, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!114 &843904556 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4716771243956932617} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a4e539bfcfffb47a0b39556956a8b609, type: 3} + m_Name: + m_EditorClassIdentifier: + _renderers: + - {fileID: 37448908620078769} + _drivenShapeTypes: 3 + _updateTime: 2 +--- !u!114 &843904557 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4716771243956932617} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fbd311f37031484c9a0a5202e7beedb, type: 3} + m_Name: + m_EditorClassIdentifier: + _faceExpressions: {fileID: 908253763} + _blendShapeStrengthMultiplier: 100 + _mappings: 000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f00000020000000210000002200000023000000240000002500000026000000270000002800000029000000320000003200000032000000320000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000033000000340000003500000036000000ffffffffffffffff3700000038000000ffffffffffffffffffffffffffffffff390000003a0000003b0000003c0000003d0000003e000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + retargetingType: 0 + _allowDuplicateMapping: 0 + _blendshapeModifier: {fileID: 908253765} + _combinationShapesTextAsset: {fileID: 0} +--- !u!4 &4745193184451865222 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1399077605911568516, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4831111096749225446 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7945659987477069852, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5002575547182775318 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1719357255493219860, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5047845850698454021 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7728923895653982713, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5112408298856068227 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7763579146615603583, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5194566646911275178 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7303119564941387096, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5352529388243910722 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7423950089311909312, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!1 &5501729867177329874 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2227812381793750736, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1148030267 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5501729867177329874} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a4e539bfcfffb47a0b39556956a8b609, type: 3} + m_Name: + m_EditorClassIdentifier: + _renderers: + - {fileID: 19700516057464330} + _drivenShapeTypes: 3 + _updateTime: 2 +--- !u!114 &1148030268 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5501729867177329874} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fbd311f37031484c9a0a5202e7beedb, type: 3} + m_Name: + m_EditorClassIdentifier: + _faceExpressions: {fileID: 908253763} + _blendShapeStrengthMultiplier: 100 + _mappings: 18000000190000001a0000001b0000004300000041000000420000004400000045000000400000003f000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + retargetingType: 0 + _allowDuplicateMapping: 0 + _blendshapeModifier: {fileID: 0} + _combinationShapesTextAsset: {fileID: 0} +--- !u!4 &5747353780870054983 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7101501009728795067, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5773204507813147053 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -9030175415902569553, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5972562824802001701 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 23111296988571943, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6234044384297918601 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 302607532018576011, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6298941623924150056 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8801577745799690966, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6324332101905596780 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8830328322154738834, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6377102991743393428 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 734316291618870422, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6804420778746085539 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 927456756156140193, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6805427722635360083 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!95 &908253766 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6805427722635360083} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: f0d8794048bdf144b98e8f73ddbc8616, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!114 &908253762 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6805427722635360083} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1fb2f0ec34e79d14a8de21547a8a80da, type: 3} + m_Name: + m_EditorClassIdentifier: + _ovrFaceExpressions: {fileID: 908253763} + _macroExpressionsToEvaluate: + - Thresholds: + - FaceExpression: 32 + EntryThreshold: 0.5 + ExitThreshold: 0.2 + - FaceExpression: 33 + EntryThreshold: 0.5 + ExitThreshold: 0.2 + MacroExpressionTypeDetected: 0 +--- !u!114 &908253763 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6805427722635360083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a95044baf65b10c4e89b246d2f881ac9, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &908253764 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6805427722635360083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 274835e4e2feae04b87f0d000555f8a4, type: 3} + m_Name: + m_EditorClassIdentifier: + _providedSkeletonType: 0 +--- !u!114 &908253765 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6805427722635360083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0d5f898cc52890e478827a817f6f004a, type: 3} + m_Name: + m_EditorClassIdentifier: + _faceExpressionModifiers: [] + _defaultBlendshapeModifierPreset: {fileID: 4900000, guid: 4297b4d2ee369b442805f4d45bb631f7, type: 3} + _globalMultiplier: 1 + _globalClampMin: 0 + _globalClampMax: 2 + _applyGlobalClampingNonMapped: 0 +--- !u!114 &908253767 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6805427722635360083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6b37171b2b40ef94eb6e5746c8e51e5e, type: 3} + m_Name: + m_EditorClassIdentifier: + _skinnedMeshRenderer: {fileID: 37448908620078769} + _subMesh: 0 + _useUnityFunction: 0 + _recalculateIndependently: 1 + _duplicateLayerName: Character + _hiddenMeshLayerName: HiddenMesh + _recalculateMaterialIndices: 00000000 +--- !u!114 &908253768 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6805427722635360083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 674a40251fe8ad841b18517ac5209957, type: 3} + m_Name: + m_EditorClassIdentifier: + _skeletonType: 2 + _updateRootPose: 0 + _updateRootScale: 0 + _enablePhysicsCapsules: 0 + _applyBoneTranslations: 1 + _customBones_V2: + - {fileID: 3732129352646794451} + - {fileID: 4464968837453615951} + - {fileID: 2181416674842142737} + - {fileID: 5112408298856068227} + - {fileID: 955083707410458949} + - {fileID: 795181761269956707} + - {fileID: 1861734701157625569} + - {fileID: 2709321220193578619} + - {fileID: 6377102991743393428} + - {fileID: 0} + - {fileID: 5047845850698454021} + - {fileID: 7018536377228668874} + - {fileID: 0} + - {fileID: 6804420778746085539} + - {fileID: 0} + - {fileID: 2646810688624961043} + - {fileID: 3627133179606460417} + - {fileID: 0} + - {fileID: 0} + - {fileID: 5002575547182775318} + - {fileID: 7644991470843722231} + - {fileID: 6874210426000104043} + - {fileID: 7288660620930683909} + - {fileID: 6298941623924150056} + - {fileID: 0} + - {fileID: 4634473240136128226} + - {fileID: 4679472325935167079} + - {fileID: 8853997866789932741} + - {fileID: 4831111096749225446} + - {fileID: 0} + - {fileID: 8957628919636683179} + - {fileID: 2105735966768434709} + - {fileID: 2365906563176453751} + - {fileID: 1457155681773549160} + - {fileID: 0} + - {fileID: 6324332101905596780} + - {fileID: 5352529388243910722} + - {fileID: 707000664419376488} + - {fileID: 4025658985667170609} + - {fileID: 212350093796120728} + - {fileID: 7631084597175797556} + - {fileID: 5972562824802001701} + - {fileID: 8216913049080197472} + - {fileID: 5747353780870054983} + - {fileID: 0} + - {fileID: 758901172713831459} + - {fileID: 984851672163677696} + - {fileID: 3760441664403270005} + - {fileID: 5773204507813147053} + - {fileID: 2429192723721041921} + - {fileID: 0} + - {fileID: 4745193184451865222} + - {fileID: 2989519625185054489} + - {fileID: 2829684828368952597} + - {fileID: 2749544576043177145} + - {fileID: 0} + - {fileID: 7599623031433485414} + - {fileID: 3835252908266019390} + - {fileID: 1710549222220524011} + - {fileID: 3658704027229410439} + - {fileID: 0} + - {fileID: 516380830273578687} + - {fileID: 8447949617352563639} + - {fileID: 3168899644715599634} + - {fileID: 5194566646911275178} + - {fileID: 6234044384297918601} + - {fileID: 8748535508396884069} + - {fileID: 3807668403238401120} + - {fileID: 4391987712531735864} + - {fileID: 8222719742922047850} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + retargetingType: 0 +--- !u!114 &908253769 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6805427722635360083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 090e3f120851d224c9f4188469fdd8b4, type: 3} + m_Name: + m_EditorClassIdentifier: + _smileEnabled: 1 + _facialExpressionDetector: {fileID: 908253762} + _materialIndex: 0 + _renderer: {fileID: 4138605516468963374} + _glowCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0.80284 + outSlope: 0.80284 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0.057687636 + - serializedVersion: 3 + time: 0.99774873 + value: 0.30478427 + inSlope: -0.0007631472 + outSlope: -0.0007631472 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.06250655 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animator: {fileID: 908253766} + _smileDelay: 0.7 + _smileStateName: Smile + _reverseSmileStateName: ReverseSmile +--- !u!4 &6874210426000104043 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 997209024318296169, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7018536377228668874 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3735186147229607368, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7288660620930683909 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4005480810939948551, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7599623031433485414 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4915787548385356188, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7631084597175797556 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4947245257301045962, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7644991470843722231 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4082691836044145653, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8216913049080197472 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -6865593291145348254, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8222719742922047850 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -6869065103342417048, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8447949617352563639 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2850198907067683253, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8748535508396884069 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3159801897392065127, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8853997866789932741 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -6309704144179493689, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8957628919636683179 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3386480068686406569, guid: 00d0533fd012f490ca15158ab7c3b951, type: 3} + m_PrefabInstance: {fileID: 5958497211192674818} + m_PrefabAsset: {fileID: 0} diff --git a/Samples/Prefabs/Aura/AuraWithTongue.prefab.meta b/Samples/Prefabs/Aura/AuraWithTongue.prefab.meta new file mode 100644 index 00000000..4eace6e4 --- /dev/null +++ b/Samples/Prefabs/Aura/AuraWithTongue.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d1c1c3df6bc4b45a195b1167e582a299 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Prefabs/Aura/Legacy/AuraNoTongue - FirstPerson.prefab b/Samples/Prefabs/Aura/Legacy/AuraNoTongue - FirstPerson.prefab new file mode 100644 index 00000000..07227a63 --- /dev/null +++ b/Samples/Prefabs/Aura/Legacy/AuraNoTongue - FirstPerson.prefab @@ -0,0 +1,111 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &7433103962499901331 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 2348941041940428301, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3001404022569954834, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3669189859606708849, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: _recalculateNormals.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3669189859606708849, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: _recalculateNormals.Array.data[0] + value: + objectReference: {fileID: 0} + - target: {fileID: 4551076991521564256, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5062257003467462296, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_Name + value: AuraFirstPerson + objectReference: {fileID: 0} + - target: {fileID: 5419972594967278913, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6082975183707890969, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6264660918212346196, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: _faceExpressions + value: + objectReference: {fileID: 0} + - target: {fileID: 6264660918212346196, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: _blendshapeModifier + value: + objectReference: {fileID: 0} + - target: {fileID: 6336154319124776328, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8817331992533461409, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: _faceExpressions + value: + objectReference: {fileID: 0} + - target: {fileID: 8817331992533461409, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: _blendshapeModifier + value: + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: -2211786842126212116, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + - {fileID: 2171668725617520317, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + - {fileID: 3395331647892349681, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + - {fileID: 8860770673698801992, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 90beb5cf62adde1468674980ef6933db, type: 3} diff --git a/Samples/Prefabs/Aura/Legacy/AuraNoTongue - FirstPerson.prefab.meta b/Samples/Prefabs/Aura/Legacy/AuraNoTongue - FirstPerson.prefab.meta new file mode 100644 index 00000000..634efdfa --- /dev/null +++ b/Samples/Prefabs/Aura/Legacy/AuraNoTongue - FirstPerson.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1ac7885a83f6c4741addf95e0ceea891 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Prefabs/Aura/Legacy/AuraNoTongue - Mirrored.prefab b/Samples/Prefabs/Aura/Legacy/AuraNoTongue - Mirrored.prefab new file mode 100644 index 00000000..a9a2ddb9 --- /dev/null +++ b/Samples/Prefabs/Aura/Legacy/AuraNoTongue - Mirrored.prefab @@ -0,0 +1,466 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &7288411355728464109 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1571976709777674458, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2171668725617520317, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: _ovrFaceExpressions + value: + objectReference: {fileID: 0} + - target: {fileID: 2348941041940428301, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3001404022569954834, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 3457114928640676862, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4551076991521564256, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5062257003467462296, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_Name + value: AuraMirrored + objectReference: {fileID: 0} + - target: {fileID: 5419972594967278913, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5551653290356837410, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6082975183707890969, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6264660918212346196, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: _faceExpressions + value: + objectReference: {fileID: 0} + - target: {fileID: 6336154319124776328, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: m_Layer + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 8817331992533461409, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: _faceExpressions + value: + objectReference: {fileID: 0} + - target: {fileID: 8860770673698801992, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + propertyPath: _duplicateLayerName + value: MirroredCharacter + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 2001313578789194278, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + - {fileID: 6209689283441993956, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + - {fileID: 4380863743731464986, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + - {fileID: 4901543203706419426, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 90beb5cf62adde1468674980ef6933db, type: 3} +--- !u!4 &95368779866988575 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7239381255198615794, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &209884185233877079 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7479365239600324794, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &262371833876876221 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7386328117638513488, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &348927368646209981 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7057703656229960016, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1130565594431602851 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7680098513081960526, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1958926277652968564 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 9082109605578849433, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2013406713626330248 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 9139120026598231141, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2295647258978558848 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8862631650951588717, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2550476028627066485 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5062257003467462296, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2536231694802738737 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2550476028627066485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88d4464cfaf7bd54f8bbe081ec2858c8, type: 3} + m_Name: + m_EditorClassIdentifier: + _skeletonToCopy: {fileID: 0} + _mySkeleton: {fileID: 3587367410258356533} + _mirroredBonePairs: + - Name: RightFootTip + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 2295647258978558848} + - Name: RightFootBall + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 7081776607838674489} + - Name: RightFootAnkle + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 7992241430073923220} + - Name: RightLegLower + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 5225830134184966399} + - Name: RightLegUpper + ShouldBeReparented: 1 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 2013406713626330248} + - Name: LeftFootTip + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 6096376506271809704} + - Name: LeftFootBall + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 8420897168868676900} + - Name: LeftFootAnkle + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 209884185233877079} + - Name: LeftLegLower + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 7978534390846108193} + - Name: LeftLegUpper + ShouldBeReparented: 1 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 6098945051589710445} + - Name: RightArmUpperTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 4565521224739906471} + - Name: RightArmUpperTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 95368779866988575} + - Name: RightArmUpperTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 348927368646209981} + - Name: RightArmLowerTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 2896583310818445719} + - Name: RightArmLowerTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 8182850048293069400} + - Name: RightArmLowerTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 262371833876876221} + - Name: LeftArmUpperTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 7220097034430966755} + - Name: LeftArmUpperTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 4202473134053394226} + - Name: LeftArmUpperTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 8434954508540414243} + - Name: LeftArmLowerTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 8272824937440078674} + - Name: LeftArmLowerTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 5420740212800204072} + - Name: LeftArmLowerTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 8909105847959841331} + - Name: RightLegUpperTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 1130565594431602851} + - Name: RightLegUpperTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 9049188697495095081} + - Name: RightLegUpperTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 3948521529440660729} + - Name: RightLegLowerTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 1958926277652968564} + - Name: RightLegLowerTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 8303918001288962653} + - Name: RightLegLowerTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 8376003664372840173} + - Name: LeftLegUpperTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 5938840488163977244} + - Name: LeftLegUpperTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 3353299298805658487} + - Name: LeftLegUpperTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 5540968583767538083} + - Name: LeftLegLowerTwist3_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 3256905690160524275} + - Name: LeftLegLowerTwist2_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 3573237757044868557} + - Name: LeftLegLowerTwist1_jnt + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 5205438108013307407} + - Name: RightEye + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 2760445787759521672} + - Name: LeftEye + ShouldBeReparented: 0 + OriginalBone: {fileID: 0} + MirroredBone: {fileID: 8802997239216048914} +--- !u!4 &2760445787759521672 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4857890116540000101, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2896583310818445719 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5554935807643926906, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3256905690160524275 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5194754814204519198, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3353299298805658487 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5452993219753081754, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3573237757044868557 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6103243144901561632, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3587367410258356533 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6119617992236818904, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2550476028627066485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 674a40251fe8ad841b18517ac5209957, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &3948521529440660729 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6047864713693668372, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4202473134053394226 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6879121504164794335, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4565521224739906471 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6520753620005071690, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5205438108013307407 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3249573502154731234, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5225830134184966399 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3287701751469060114, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5420740212800204072 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3323644447429748165, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5540968583767538083 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3008644326089453902, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5938840488163977244 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3985505858223530225, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6096376506271809704 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3584598821105043525, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6098945051589710445 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3568660386741738112, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7081776607838674489 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 532029276904183508, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7220097034430966755 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 78615617955275534, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7978534390846108193 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 836773714489047756, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7992241430073923220 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 851047010796117625, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8182850048293069400 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1489267886157834933, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8272824937440078674 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1723570170498491327, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8303918001288962653 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1592254388956736176, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8376003664372840173 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1231780090360004096, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8420897168868676900 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1294972741108948425, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8434954508540414243 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1165123799847256526, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8802997239216048914 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2238048060178023423, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8909105847959841331 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2199484036238156510, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} +--- !u!4 &9049188697495095081 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1779078738583130052, guid: 90beb5cf62adde1468674980ef6933db, type: 3} + m_PrefabInstance: {fileID: 7288411355728464109} + m_PrefabAsset: {fileID: 0} diff --git a/Samples/Prefabs/Aura/Legacy/AuraNoTongue - Mirrored.prefab.meta b/Samples/Prefabs/Aura/Legacy/AuraNoTongue - Mirrored.prefab.meta new file mode 100644 index 00000000..9b86f49d --- /dev/null +++ b/Samples/Prefabs/Aura/Legacy/AuraNoTongue - Mirrored.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ba603d7826a9d9344a7c045f1a073390 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Prefabs/Aura/Legacy/AuraNoTongue.prefab b/Samples/Prefabs/Aura/Legacy/AuraNoTongue.prefab new file mode 100644 index 00000000..445c8670 --- /dev/null +++ b/Samples/Prefabs/Aura/Legacy/AuraNoTongue.prefab @@ -0,0 +1,1876 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &5368807790722968521 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: -9187311675338040737, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -9135976255755635936, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -9135923264763836050, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -9112162899851204172, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -9059866756016815942, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8847213311776573770, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8834057700521198420, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8824090580276326461, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8800922488687848399, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8787781740469012500, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8760562819165174175, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8567551898056454582, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 88bd2515a02cfbd4cadd2b1039155c5e, type: 2} + - target: {fileID: -8483060724595547638, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8330210511580512300, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8226889819895194400, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8208962257555562109, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8086335704271685688, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 88bd2515a02cfbd4cadd2b1039155c5e, type: 2} + - target: {fileID: -7964220922082757769, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7802571854039214526, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7734404613037387982, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7715445028742473823, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7669274321156274841, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7597162764153275178, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7275191544539839497, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7250242683770438094, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7247756668144458257, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7114155410334496502, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7102355875840840127, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7102355875840840127, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -7094326212299864672, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7049767359782943532, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -7031263384667599822, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -6982387631646502191, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -6978359981551623543, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -6969244799473730765, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -6741728132235619313, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 2a9488ab25d8e5744abfc0604ab635f7, type: 2} + - target: {fileID: -6658194874144329023, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -6647341011961215341, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -6623228789760125721, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -6275833182358993055, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -6249027337035606044, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 810071505f4602f4b81b262ff54812f4, type: 2} + - target: {fileID: -5991416993857143374, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5817161771851515806, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5760015293192989404, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5754633688063498478, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5744678673790311947, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5693912362640117936, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5525380005753893801, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5318769512202406438, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5255769767193543409, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5195355388792387867, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5179286785850223629, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5124327918778751101, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -5121802671798308050, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4939063806295643529, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4921113574789534270, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4895017703229870052, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4826362194594236623, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4797741733443098614, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4760825935633101446, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4696845344897202602, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4663982866106796125, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4596807174448504697, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4516744880628527949, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4421995551647307195, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4421914896565340066, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4369109466740368253, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4364570044705646745, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -4019528200609998693, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3772444221139886891, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3635043825429054732, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3599367542419167623, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.w + value: -0.34736103 + objectReference: {fileID: 0} + - target: {fileID: -3599367542419167623, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.x + value: -0.15862557 + objectReference: {fileID: 0} + - target: {fileID: -3599367542419167623, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.y + value: -0.05962084 + objectReference: {fileID: 0} + - target: {fileID: -3599367542419167623, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.z + value: 0.92229265 + objectReference: {fileID: 0} + - target: {fileID: -3599367542419167623, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -3599367542419167623, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -3599367542419167623, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -3502007488472250409, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3417888921271828686, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3360339094580564375, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3315316119085208912, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.w + value: -0.24711835 + objectReference: {fileID: 0} + - target: {fileID: -3315316119085208912, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.x + value: -0.52960336 + objectReference: {fileID: 0} + - target: {fileID: -3315316119085208912, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.y + value: 0.41708952 + objectReference: {fileID: 0} + - target: {fileID: -3315316119085208912, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.z + value: 0.69605255 + objectReference: {fileID: 0} + - target: {fileID: -3315316119085208912, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -3315316119085208912, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -3315316119085208912, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -3190868877705097629, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3123048421995488084, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3068246765461813402, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -3033105116581368988, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -2983840258435287726, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -2802218739193707655, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -2785774523018559695, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -2677496477810667534, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -2410972405805105329, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -2158308666747434192, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -2078702375780907557, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -2078702375780907557, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -2063924548572147452, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -1809436757310643472, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -1694551467935407960, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -1654075460963305211, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -1626152230425487878, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -1581727209567094584, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -1455328989643715623, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -1450279550107696596, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 306cef69fb9c0f841ac2eebe97233ed9, type: 2} + - target: {fileID: -1385046003786240496, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -1203054951848016681, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -962621173081855742, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -918878582723120024, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -801738015128128662, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -798833301433893910, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -787583832941566255, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -766063482299460205, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -752632295869245543, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -744929758659424855, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -744929758659424855, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -651521477427225405, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -483459348493555021, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -414780205580500237, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -355474614590220453, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -339676386800588155, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -249806993824317542, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -121649279680299794, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 12529467155509094, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 887e84e4010f36b42823a4efc9803c0d, type: 2} + - target: {fileID: 123367843055279752, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 123367843055279752, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 196589208368137068, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 231972490029580634, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 284271545169117473, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 301829445866603715, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 517502094452491579, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 546441016348547381, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 570656904324732982, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 687532949370539091, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 802016374825675676, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 879964446727780279, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 903565169484775224, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Name + value: Aura + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1022254486438928992, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1037404087217703639, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1077528731071372452, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1210210663725047199, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1338686176135294620, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1438226631880634270, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1477798217482579228, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1555640984766758212, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1566214835222321599, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1776891774444346433, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 1976307777978141284, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2032408006933636105, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2035148579832936269, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2227812381793750736, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2227812381793750736, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2232402486875594665, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2232645934766717747, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2264945832587597390, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2268383790481518521, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2348705538820639734, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2374601883188571218, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2389556838633755228, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2579000279508907842, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2696513562693367569, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2752961484680983553, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2789033121041124425, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2896789066556234191, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2919274477711643779, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2923713361900488023, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 35c69333000db8a47887cf9431803022, type: 2} + - target: {fileID: 2923713361900488023, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: 911ec2c5e434d184da2c3b3f8fa5f809, type: 2} + - target: {fileID: 2923713361900488023, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_BlendShapeWeights.Array.size + value: 267 + objectReference: {fileID: 0} + - target: {fileID: 3042293606881015807, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3085980901301279360, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3272761806119087285, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3347417574320557245, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3411046842734644409, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3488966729376702537, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3564413288586655323, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3575809268042201121, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3674481763690114260, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3780909940033665928, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3920069319273640617, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3936413813742657860, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3965708993817108411, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4016824697745884107, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4040142142603492316, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4049569322152316248, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4084090168361365527, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4094604841364776360, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4104837714504476542, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4226470360578124211, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4284646550958561545, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4375524145315515520, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4405195559579928080, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4485680105294507419, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4515019876471041876, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4640567248020186299, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4903879512354799494, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5272272565632825623, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5332809968238436118, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5343594624913628139, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7925312 + objectReference: {fileID: 0} + - target: {fileID: 5343594624913628139, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.x + value: 0.31234086 + objectReference: {fileID: 0} + - target: {fileID: 5343594624913628139, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.y + value: 0.45579156 + objectReference: {fileID: 0} + - target: {fileID: 5343594624913628139, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.z + value: 0.25805363 + objectReference: {fileID: 0} + - target: {fileID: 5343594624913628139, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5343594624913628139, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5343594624913628139, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5417951504326533371, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5445295071165155264, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5625034782739049536, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5706951741084809704, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5720809515683333927, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5810578086047545398, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.w + value: 0.9222926 + objectReference: {fileID: 0} + - target: {fileID: 5810578086047545398, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.x + value: -0.05962084 + objectReference: {fileID: 0} + - target: {fileID: 5810578086047545398, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.y + value: 0.15862556 + objectReference: {fileID: 0} + - target: {fileID: 5810578086047545398, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.z + value: 0.34736103 + objectReference: {fileID: 0} + - target: {fileID: 5810578086047545398, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5810578086047545398, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5810578086047545398, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5885227124409531404, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5954551601336029265, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5977728229198574600, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: cfa09ece4d7119d44a09ddc6e3577659, type: 2} + - target: {fileID: 5977728229198574600, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: 085835c2fe4a3de4e917563ea2905592, type: 2} + - target: {fileID: 5977728229198574600, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Materials.Array.data[2] + value: + objectReference: {fileID: 2100000, guid: 81d2ac57e4c952b43bde5a2fb0d8afea, type: 2} + - target: {fileID: 5986916506804157586, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5988036544952753712, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6002022947040608187, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6117733023077331362, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6138389618300656639, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.w + value: -0.25805363 + objectReference: {fileID: 0} + - target: {fileID: 6138389618300656639, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.x + value: -0.45579156 + objectReference: {fileID: 0} + - target: {fileID: 6138389618300656639, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.y + value: 0.31234086 + objectReference: {fileID: 0} + - target: {fileID: 6138389618300656639, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.z + value: 0.7925312 + objectReference: {fileID: 0} + - target: {fileID: 6138389618300656639, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6138389618300656639, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6138389618300656639, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6260939611825697928, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6336173898761326024, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6407208591115249135, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6464540652572523431, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6468239438025580619, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6521089395196932426, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6700599916629941421, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6746033335200931470, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6749718550831527176, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6827197251251715134, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6868304169964944147, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6976215515842226247, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6981254320456765189, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7046695521581066830, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.w + value: 0.69605255 + objectReference: {fileID: 0} + - target: {fileID: 7046695521581066830, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.x + value: 0.41708952 + objectReference: {fileID: 0} + - target: {fileID: 7046695521581066830, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.y + value: 0.52960336 + objectReference: {fileID: 0} + - target: {fileID: 7046695521581066830, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalRotation.z + value: 0.24711835 + objectReference: {fileID: 0} + - target: {fileID: 7046695521581066830, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7046695521581066830, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7046695521581066830, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7115474647004687308, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7136494920470486881, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7239035682389562298, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7312708399802071095, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7414696043376941336, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7467553126010427192, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7476557953841388444, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7493403508945761619, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7515159913672278492, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7519176824707765555, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7616546876213642243, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7645083925380177348, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7645083925380177348, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7736302562235454719, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 7839611609383722451, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8046361220099247946, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8083291293905714475, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8099370796589914871, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8284076160794155778, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8393744259724924347, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8430720343498348762, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8490677609871296272, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8559812759662826344, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8845050780377150190, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8904061298154248551, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 8908642337312114152, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 9113585226918236006, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 9157892405150321496, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 9197684690013794460, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + propertyPath: m_Layer + value: 10 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} +--- !u!4 &137137969640984362 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5433276824401421539, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &362557559570231262 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -3492042262321003497, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &465262129398385114 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -3677990310633283053, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &867462749228242851 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4141043383235347350, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1120293415924893728 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4247524672565025815, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1296692282333953187 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -2630364969305827478, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1349156850797633000 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6357109309909218849, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1384872279543013800 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6465436499391679073, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1544769904406251662 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6913577617777828679, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1557092056779462603 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6852843402972134402, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1844243561232676345 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5988036544952753712, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4380863743731464986 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1844243561232676345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 28dd40a6d175d01498e0477360d6c070, type: 3} + m_Name: + m_EditorClassIdentifier: + Eye: 0 + ConfidenceThreshold: 0 + ApplyPosition: 0 + ApplyRotation: 1 + ReferenceFrame: {fileID: 5842140497988325688} + TrackingMode: 0 +--- !u!4 &1928500309912648019 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5783394800387920538, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2241541612333746036 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6168339422179536061, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2348941041940428301 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7645083925380177348, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6264660918212346196 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2348941041940428301} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fbd311f37031484c9a0a5202e7beedb, type: 3} + m_Name: + m_EditorClassIdentifier: + _faceExpressions: {fileID: 6209689283441993956} + _blendShapeStrengthMultiplier: 100 + _mappings: 000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f00000020000000210000002200000023000000240000002500000026000000270000002800000029000000320000003200000032000000320000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000033000000340000003500000036000000ffffffffffffffff3700000038000000ffffffffffffffffffffffffffffffff390000003a0000003b0000003c0000003d0000003e000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + retargetingType: 0 + _allowDuplicateMapping: 0 + _blendshapeModifier: {fileID: -2211786842126212116} + _combinationShapesTextAsset: {fileID: 4900000, guid: 5644a9274ef750a4f877e874d54b6510, type: 3} +--- !u!137 &2404434375672670693 stripped +SkinnedMeshRenderer: + m_CorrespondingSourceObject: {fileID: -1450279550107696596, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2648813771970725107 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -1277988569044078790, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2722357913014465156 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8018118334481897805, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3055456990048684490 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6982549524848992771, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3096031731952858444 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -2272481311773467003, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3168893967328476440 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -2198888584636164399, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3179196486759614654 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7394647125203510135, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3235429119180084651 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -1844404806445466014, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3244999293908892661 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -1762777071539367876, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3453979566834643194 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -1914357357991257293, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3552755011074731730 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8920573021718922523, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3732132750515070681 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8740049587670682896, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4099508087156258748 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8243195762027945077, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4145346235155667402 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8288571981961409027, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!1 &4344643677800069281 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8559812759662826344, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!54 &3402506730126294833 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4344643677800069281} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!4 &4362404558402308056 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -717328083300307951, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4442927282515808176 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -636796523939928967, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4474708447791166834 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8401620812480405179, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4572293551602384094 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8499940660641912599, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4661514765550354271 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 734316291618870422, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!1 &5062257003467462296 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!95 &8100845712999224004 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5062257003467462296} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: f0d8794048bdf144b98e8f73ddbc8616, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!114 &-2211786842126212116 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5062257003467462296} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0d5f898cc52890e478827a817f6f004a, type: 3} + m_Name: + m_EditorClassIdentifier: + _faceExpressionModifiers: [] + _defaultBlendshapeModifierPreset: {fileID: 4900000, guid: 4297b4d2ee369b442805f4d45bb631f7, type: 3} + _globalMultiplier: 1 + _globalClampMin: 0 + _globalClampMax: 2 + _applyGlobalClampingNonMapped: 0 +--- !u!114 &2001313578789194278 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5062257003467462296} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 274835e4e2feae04b87f0d000555f8a4, type: 3} + m_Name: + m_EditorClassIdentifier: + _providedSkeletonType: 0 +--- !u!114 &2171668725617520317 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5062257003467462296} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1fb2f0ec34e79d14a8de21547a8a80da, type: 3} + m_Name: + m_EditorClassIdentifier: + _ovrFaceExpressions: {fileID: 6209689283441993956} + _macroExpressionsToEvaluate: + - Thresholds: + - FaceExpression: 32 + EntryThreshold: 0.5 + ExitThreshold: 0.2 + - FaceExpression: 33 + EntryThreshold: 0.5 + ExitThreshold: 0.2 + MacroExpressionTypeDetected: 0 +--- !u!114 &3395331647892349681 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5062257003467462296} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 090e3f120851d224c9f4188469fdd8b4, type: 3} + m_Name: + m_EditorClassIdentifier: + _smileEnabled: 1 + _facialExpressionDetector: {fileID: 2171668725617520317} + _materialIndex: 0 + _renderer: {fileID: 2404434375672670693} + _glowCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0.80284 + outSlope: 0.80284 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0.057687636 + - serializedVersion: 3 + time: 0.99774873 + value: 0.30478427 + inSlope: -0.0007631472 + outSlope: -0.0007631472 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.06250655 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animator: {fileID: 8100845712999224004} + _smileDelay: 0.7 + _smileStateName: Smile + _reverseSmileStateName: ReverseSmile +--- !u!114 &6119617992236818904 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5062257003467462296} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 674a40251fe8ad841b18517ac5209957, type: 3} + m_Name: + m_EditorClassIdentifier: + _skeletonType: 2 + _updateRootPose: 0 + _updateRootScale: 0 + _enablePhysicsCapsules: 0 + _applyBoneTranslations: 1 + _customBones_V2: + - {fileID: 3168893967328476440} + - {fileID: 2722357913014465156} + - {fileID: 465262129398385114} + - {fileID: 6828565186807125320} + - {fileID: 1544769904406251662} + - {fileID: 1384872279543013800} + - {fileID: 137137969640984362} + - {fileID: 4442927282515808176} + - {fileID: 4661514765550354271} + - {fileID: 0} + - {fileID: 6790459117608662478} + - {fileID: 8743697166803979777} + - {fileID: 0} + - {fileID: 5070819246139597160} + - {fileID: 0} + - {fileID: 4362404558402308056} + - {fileID: 3055456990048684490} + - {fileID: 0} + - {fileID: 0} + - {fileID: 6727731802478058973} + - {fileID: 8226234448931723324} + - {fileID: 5140606565525109664} + - {fileID: 9013820164996363726} + - {fileID: 5718258236755554019} + - {fileID: 0} + - {fileID: 6368643211093735209} + - {fileID: 6395622541616813996} + - {fileID: 7128841690415853326} + - {fileID: 6573723197605188653} + - {fileID: 0} + - {fileID: 7241479871780227168} + - {fileID: 362557559570231262} + - {fileID: 4099508087156258748} + - {fileID: 867462749228242851} + - {fileID: 0} + - {fileID: 5761662002292400295} + - {fileID: 5942783965645627785} + - {fileID: 1296692282333953187} + - {fileID: 3453979566834643194} + - {fileID: 1928500309912648019} + - {fileID: 8202757635400902399} + - {fileID: 5391879299091989230} + - {fileID: 7654243030167031979} + - {fileID: 6337602930072216972} + - {fileID: 0} + - {fileID: 1349156850797633000} + - {fileID: 1557092056779462603} + - {fileID: 3179196486759614654} + - {fileID: 5201527208946765926} + - {fileID: 4145346235155667402} + - {fileID: 0} + - {fileID: 6479364392897235789} + - {fileID: 3552755011074731730} + - {fileID: 4572293551602384094} + - {fileID: 4474708447791166834} + - {fileID: 0} + - {fileID: 8162294356013202861} + - {fileID: 3244999293908892661} + - {fileID: 1120293415924893728} + - {fileID: 3096031731952858444} + - {fileID: 0} + - {fileID: 2241541612333746036} + - {fileID: 7857698277181733500} + - {fileID: 3732132750515070681} + - {fileID: 5775810784467808609} + - {fileID: 5670812377507381570} + - {fileID: 7014366487163740590} + - {fileID: 3235429119180084651} + - {fileID: 2648813771970725107} + - {fileID: 7651047951310659745} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + retargetingType: 0 +--- !u!114 &6209689283441993956 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5062257003467462296} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a95044baf65b10c4e89b246d2f881ac9, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8860770673698801992 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5062257003467462296} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6b37171b2b40ef94eb6e5746c8e51e5e, type: 3} + m_Name: + m_EditorClassIdentifier: + _skinnedMeshRenderer: {fileID: 7066935007557725854} + _subMesh: 0 + _useUnityFunction: 0 + _recalculateIndependently: 1 + _duplicateLayerName: Character + _hiddenMeshLayerName: HiddenMesh + _recalculateMaterialIndices: 00000000 +--- !u!4 &5070819246139597160 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 927456756156140193, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5140606565525109664 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 997209024318296169, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5201527208946765926 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -9030175415902569553, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5391879299091989230 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 23111296988571943, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5670812377507381570 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 302607532018576011, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5718258236755554019 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8801577745799690966, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5761662002292400295 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8830328322154738834, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5775810784467808609 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7303119564941387096, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5842140497988325688 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7236539227194721551, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5942783965645627785 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7423950089311909312, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6082975183707890969 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2227812381793750736, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8817331992533461409 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6082975183707890969} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fbd311f37031484c9a0a5202e7beedb, type: 3} + m_Name: + m_EditorClassIdentifier: + _faceExpressions: {fileID: 6209689283441993956} + _blendShapeStrengthMultiplier: 100 + _mappings: 18000000190000001a0000001b000000ffffffffffffffffffffffff + retargetingType: 0 + _allowDuplicateMapping: 0 + _blendshapeModifier: {fileID: -2211786842126212116} + _combinationShapesTextAsset: {fileID: 0} +--- !u!4 &6337602930072216972 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7101501009728795067, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6368643211093735209 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1360123919412337888, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6395622541616813996 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1315058708315208805, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6479364392897235789 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1399077605911568516, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6573723197605188653 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7945659987477069852, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6727731802478058973 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1719357255493219860, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6790459117608662478 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7728923895653982713, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6828565186807125320 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7763579146615603583, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7014366487163740590 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3159801897392065127, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!137 &7066935007557725854 stripped +SkinnedMeshRenderer: + m_CorrespondingSourceObject: {fileID: 2923713361900488023, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7128841690415853326 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -6309704144179493689, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7241479871780227168 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3386480068686406569, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7651047951310659745 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -6869065103342417048, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7654243030167031979 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -6865593291145348254, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7857698277181733500 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2850198907067683253, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8064300903537581272 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2696513562693367569, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4901543203706419426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8064300903537581272} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 28dd40a6d175d01498e0477360d6c070, type: 3} + m_Name: + m_EditorClassIdentifier: + Eye: 1 + ConfidenceThreshold: 0 + ApplyPosition: 0 + ApplyRotation: 1 + ReferenceFrame: {fileID: 5842140497988325688} + TrackingMode: 0 +--- !u!4 &8162294356013202861 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4915787548385356188, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8202757635400902399 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4947245257301045962, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8226234448931723324 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4082691836044145653, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8743697166803979777 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3735186147229607368, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} +--- !u!4 &9013820164996363726 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4005480810939948551, guid: 97c33b5b5e467ff4982d18b3cea2fa0e, type: 3} + m_PrefabInstance: {fileID: 5368807790722968521} + m_PrefabAsset: {fileID: 0} diff --git a/Samples/Prefabs/Aura/Legacy/AuraNoTongue.prefab.meta b/Samples/Prefabs/Aura/Legacy/AuraNoTongue.prefab.meta new file mode 100644 index 00000000..17ca42c2 --- /dev/null +++ b/Samples/Prefabs/Aura/Legacy/AuraNoTongue.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 90beb5cf62adde1468674980ef6933db +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Prefabs/BlendshapeMappingExample/BlendshapeMappingExampleARKIT.prefab b/Samples/Prefabs/BlendshapeMappingExample/BlendshapeMappingExampleARKIT.prefab index fd355fd8..d144dc32 100644 --- a/Samples/Prefabs/BlendshapeMappingExample/BlendshapeMappingExampleARKIT.prefab +++ b/Samples/Prefabs/BlendshapeMappingExample/BlendshapeMappingExampleARKIT.prefab @@ -123,6 +123,18 @@ PrefabInstance: propertyPath: m_Materials.Array.data[0] value: objectReference: {fileID: 2100000, guid: e88c1c6d93413254ab36e53cebc1f111, type: 2} + - target: {fileID: -2928199212358554724, guid: aff2ae892ac69124eb8000bd96c5a64e, type: 3} + propertyPath: m_AABB.m_Extent.x + value: 1.06 + objectReference: {fileID: 0} + - target: {fileID: -2928199212358554724, guid: aff2ae892ac69124eb8000bd96c5a64e, type: 3} + propertyPath: m_AABB.m_Extent.y + value: -0.39 + objectReference: {fileID: 0} + - target: {fileID: -2928199212358554724, guid: aff2ae892ac69124eb8000bd96c5a64e, type: 3} + propertyPath: m_AABB.m_Extent.z + value: -0.65 + objectReference: {fileID: 0} - target: {fileID: -2928199212358554724, guid: aff2ae892ac69124eb8000bd96c5a64e, type: 3} propertyPath: m_Materials.Array.data[0] value: @@ -609,6 +621,20 @@ MonoBehaviour: - {fileID: 314159170131016539} - {fileID: 246903650701507460} - {fileID: 3017241077913359691} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} retargetingType: 0 --- !u!114 &341051990 MonoBehaviour: @@ -622,6 +648,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 274835e4e2feae04b87f0d000555f8a4, type: 3} m_Name: m_EditorClassIdentifier: + _providedSkeletonType: 0 --- !u!114 &341051991 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Samples/Prefabs/BlendshapeMappingExample/BlendshapeMappingExampleARKITFirstPerson.prefab b/Samples/Prefabs/BlendshapeMappingExample/BlendshapeMappingExampleARKITFirstPerson.prefab index 1ea53be9..3dd81d10 100644 --- a/Samples/Prefabs/BlendshapeMappingExample/BlendshapeMappingExampleARKITFirstPerson.prefab +++ b/Samples/Prefabs/BlendshapeMappingExample/BlendshapeMappingExampleARKITFirstPerson.prefab @@ -825,6 +825,22 @@ MonoBehaviour: _rigToggleOnFocus: 1 _retargetingLayer: {fileID: 0} _checkSkeletalUpdatesByProxy: 0 +--- !u!114 &5895253470718524380 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 607326578965322257} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a87c462fa9931da4b872f37c96a3102a, type: 3} + m_Name: + m_EditorClassIdentifier: + _constraints: + - {fileID: 1123534316221971162} + - {fileID: 4031897247645224307} + _skeleton: {fileID: 3946535142790877676} --- !u!4 &1122422457210726926 stripped Transform: m_CorrespondingSourceObject: {fileID: 4131856439344247223, guid: acf265753b6022246b6834742c70714f, type: 3} diff --git a/Samples/Prefabs/BodyTracking.meta b/Samples/Prefabs/BodyTracking.meta new file mode 100644 index 00000000..396a7bda --- /dev/null +++ b/Samples/Prefabs/BodyTracking.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5e2a44e68924c6244b4c63018fd044b8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Prefabs/BodyTracking/BTCalibrationButton.prefab b/Samples/Prefabs/BodyTracking/BTCalibrationButton.prefab new file mode 100644 index 00000000..c9c59d2b --- /dev/null +++ b/Samples/Prefabs/BodyTracking/BTCalibrationButton.prefab @@ -0,0 +1,1507 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &85490586341999887 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2017023932235772292} + - component: {fileID: 6477181184594424968} + - component: {fileID: 9003575218129893120} + m_Layer: 0 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2017023932235772292 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 85490586341999887} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3470885984848954877} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -1.2} + m_SizeDelta: {x: 30, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &6477181184594424968 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 85490586341999887} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: -5839354330806206608, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &9003575218129893120 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 85490586341999887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Calibrate + + Height' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_sharedMaterial: {fileID: -5839354330806206608, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 34 + m_fontSizeBase: 34 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 6477181184594424968} + m_maskType: 0 +--- !u!1 &800166065368880725 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 820298851145317572} + - component: {fileID: 2507027824127248936} + - component: {fileID: 3248071270641686014} + m_Layer: 0 + m_Name: BasicPokeButtonPressAudio + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &820298851145317572 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 800166065368880725} + 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: 4139238253837514319} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!82 &2507027824127248936 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 800166065368880725} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &3248071270641686014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 800166065368880725} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 925ef87c5bafc37469a2f7ec825dee4b, type: 3} + m_Name: + m_EditorClassIdentifier: + _audioSource: {fileID: 0} + _audioClips: + - {fileID: 8300000, guid: 56fe077fa3d84f24c951589f5d187be2, type: 3} + _volume: 0.5 + _volumeRandomization: + _useRandomRange: 0 + _min: 0 + _max: 0 + _pitch: 1 + _pitchRandomization: + _useRandomRange: 0 + _min: 0 + _max: 0 + _spatialize: 1 + _loop: 0 + _chanceToPlay: 100 + _playOnStart: 0 +--- !u!1 &1375468462847334277 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1375468462847334276} + - component: {fileID: 1912671942346180741} + - component: {fileID: 1832570180788912397} + m_Layer: 0 + m_Name: ToggleButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1375468462847334276 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1375468462847334277} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.016, z: -0.01} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7826803693302913232} + - {fileID: 8931745627679980753} + - {fileID: 4139238253837514319} + m_Father: {fileID: 8443568635789723411} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1912671942346180741 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1375468462847334277} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317e663e2bb60ea408fe22b908b59295, type: 3} + m_Name: + m_EditorClassIdentifier: + _interactorFilters: [] + _maxInteractors: -1 + _maxSelectingInteractors: -1 + _data: {fileID: 0} + _pointableElement: {fileID: 0} + _surfacePatch: {fileID: 7114206576011075027} + _enterHoverNormal: 0.01 + _enterHoverTangent: 0 + _exitHoverNormal: 0.05 + _exitHoverTangent: 0 + _cancelSelectNormal: 0.1 + _cancelSelectTangent: 0.03 + _minThresholds: + Enabled: 0 + MinNormal: 0.01 + _dragThresholds: + Enabled: 1 + DragNormal: 0.01 + DragTangent: 0.01 + DragEaseCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.05 + _positionPinning: + Enabled: 0 + MaxPinDistance: 0 + PinningEaseCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ResyncCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.2 + _recoilAssist: + Enabled: 0 + UseDynamicDecay: 0 + DynamicDecayCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 50 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9 + value: 0.5 + inSlope: -47 + outSlope: -47 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + UseVelocityExpansion: 0 + VelocityExpansionMinSpeed: 0.4 + VelocityExpansionMaxSpeed: 1.4 + VelocityExpansionDistance: 0.055 + VelocityExpansionDecayRate: 0.125 + ExitDistance: 0.02 + ReEnterDistance: 0.02 + _closeDistanceThreshold: 0.001 + _tiebreakerScore: 0 +--- !u!114 &1832570180788912397 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1375468462847334277} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e2f8f6e9e6f3e114b9bf9a57c2160615, type: 3} + m_Name: + m_EditorClassIdentifier: + _pointable: {fileID: 1912671942346180741} + _whenRelease: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1947441945900689780} + m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples + m_MethodName: PlayAudio + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 5050709481314298329} + m_TargetAssemblyTypeName: Oculus.Movement.FBS.v59Partner.SuggestBodyTrackingCalibrationButton, + Meta.Movement + m_MethodName: CalibrateHeight + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + _whenHover: + m_PersistentCalls: + m_Calls: [] + _whenUnhover: + m_PersistentCalls: + m_Calls: [] + _whenSelect: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3248071270641686014} + m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples + m_MethodName: PlayAudio + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + _whenUnselect: + m_PersistentCalls: + m_Calls: [] + _whenMove: + m_PersistentCalls: + m_Calls: [] + _whenCancel: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &3173529594657639255 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8931745627679980753} + m_Layer: 0 + m_Name: Visuals + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8931745627679980753 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3173529594657639255} + 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: + - {fileID: 3470885984848954877} + m_Father: {fileID: 1375468462847334276} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3345895682811362175 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7826803693302913232} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7826803693302913232 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3345895682811362175} + 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: + - {fileID: 6128741053928652916} + m_Father: {fileID: 1375468462847334276} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3490598539491735239 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5041582813204136948} + - component: {fileID: 6247021390658626564} + - component: {fileID: 3537410949090852273} + m_Layer: 0 + m_Name: CalibStatusText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5041582813204136948 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3490598539491735239} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.02} + m_LocalScale: {x: 0.0050000004, y: 0.0050000004, z: 0.0050000004} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8443568635789723411} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -0.103} + m_SizeDelta: {x: 30, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &6247021390658626564 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3490598539491735239} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: -5839354330806206608, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &3537410949090852273 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3490598539491735239} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: '-' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_sharedMaterial: {fileID: -5839354330806206608, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 34 + m_fontSizeBase: 34 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 6247021390658626564} + m_maskType: 0 +--- !u!1 &4399736946512276191 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4429161353051734094} + - component: {fileID: 1503924343351342754} + - component: {fileID: 1947441945900689780} + m_Layer: 0 + m_Name: BasicPokeButtonReleaseAudio + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4429161353051734094 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4399736946512276191} + 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: 4139238253837514319} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!82 &1503924343351342754 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4399736946512276191} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &1947441945900689780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4399736946512276191} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 925ef87c5bafc37469a2f7ec825dee4b, type: 3} + m_Name: + m_EditorClassIdentifier: + _audioSource: {fileID: 0} + _audioClips: + - {fileID: 8300000, guid: aebed88a33938c74f80e53b1386c2034, type: 3} + _volume: 0.5 + _volumeRandomization: + _useRandomRange: 0 + _min: 0 + _max: 0 + _pitch: 1 + _pitchRandomization: + _useRandomRange: 0 + _min: 0 + _max: 0 + _spatialize: 1 + _loop: 0 + _chanceToPlay: 100 + _playOnStart: 0 +--- !u!1 &5237971129077730901 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8424462412979786637} + - component: {fileID: 39067990202319869} + - component: {fileID: 4210985503583564487} + - component: {fileID: 3238380456024118379} + - component: {fileID: 6293759989729791790} + m_Layer: 0 + m_Name: ButtonPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8424462412979786637 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5237971129077730901} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.5, y: 1.5, z: 1.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3470885984848954877} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &39067990202319869 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5237971129077730901} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4210985503583564487 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5237971129077730901} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 44100ee3b663d774eaf4dece7161e29d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &3238380456024118379 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5237971129077730901} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5e48d93b64a9ae4f9fd5a728c8f51af, type: 3} + m_Name: + m_EditorClassIdentifier: + _renderers: + - {fileID: 4210985503583564487} + _vectorProperties: [] + _colorProperties: [] + _floatProperties: [] + _updateEveryFrame: 1 +--- !u!114 &6293759989729791790 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5237971129077730901} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3266c3d920715b84089935c4ab019210, type: 3} + m_Name: + m_EditorClassIdentifier: + _interactableView: {fileID: 1912671942346180741} + _editor: {fileID: 3238380456024118379} + _colorShaderPropertyName: _Color + _normalColorState: + Color: {r: 1, g: 1, b: 1, a: 0.39215687} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.1 + _hoverColorState: + Color: {r: 1, g: 1, b: 1, a: 0.5882353} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.1 + _selectColorState: + Color: {r: 0.30196083, g: 0.64535433, b: 0.9529412, a: 0.78431374} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.05 + _disabledColorState: + Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.1 +--- !u!1 &6092687456279695970 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4139238253837514319} + m_Layer: 0 + m_Name: Audio + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4139238253837514319 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6092687456279695970} + 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: + - {fileID: 820298851145317572} + - {fileID: 4429161353051734094} + m_Father: {fileID: 1375468462847334276} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6128741053928652917 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6128741053928652916} + - component: {fileID: 7693601477850287797} + - component: {fileID: 7114206576011075027} + - component: {fileID: 1710961580392061406} + m_Layer: 0 + m_Name: Surface + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6128741053928652916 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6128741053928652917} + 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: 7826803693302913232} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7693601477850287797 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6128741053928652917} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9cf2a74d69b1c1e41916d2a7afdff5be, type: 3} + m_Name: + m_EditorClassIdentifier: + _facing: 0 + _doubleSided: 1 +--- !u!114 &7114206576011075027 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6128741053928652917} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: efd927768041afd4d90e5d822283f0f4, type: 3} + m_Name: + m_EditorClassIdentifier: + _planeSurface: {fileID: 7693601477850287797} + _clippers: + - {fileID: 1710961580392061406} +--- !u!114 &1710961580392061406 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6128741053928652917} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e08ab46e8fb05dc46b34e54466dc11e3, type: 3} + m_Name: + m_EditorClassIdentifier: + _position: {x: 0, y: 0, z: 0} + _size: {x: 3, y: 1, z: 1} +--- !u!1 &8443568635401725567 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8443568635401725560} + - component: {fileID: 8443568635401725541} + - component: {fileID: 8443568635401725540} + m_Layer: 0 + m_Name: MenuPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8443568635401725560 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8443568635401725567} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.15, y: 0.15, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8443568635789723411} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8443568635401725541 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8443568635401725567} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8443568635401725540 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8443568635401725567} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 6a8ed4e5af9074e44a277e70094bbbcf, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &8443568635789723409 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8443568635789723411} + - component: {fileID: 5050709481314298329} + m_Layer: 0 + m_Name: BTCalibrationButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8443568635789723411 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8443568635789723409} + m_LocalRotation: {x: 0.09229593, y: -0.7010574, z: 0.09229593, w: 0.7010574} + m_LocalPosition: {x: -0.875, y: 1, z: -0.026} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8443568635401725560} + - {fileID: 5041582813204136948} + - {fileID: 1375468462847334276} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 15, y: -90, z: 0} +--- !u!114 &5050709481314298329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8443568635789723409} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b740bb2e35294494f9eeddeba5e8fb8b, type: 3} + m_Name: + m_EditorClassIdentifier: + _worldText: {fileID: 3537410949090852273} + _height: 1.8 + _calibrateOnStartup: 0 +--- !u!1 &9081705363521239611 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3470885984848954877} + - component: {fileID: 6158523176492677175} + - component: {fileID: 6216071149273357452} + m_Layer: 0 + m_Name: ButtonVisual + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3470885984848954877 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9081705363521239611} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8424462412979786637} + - {fileID: 2017023932235772292} + m_Father: {fileID: 8931745627679980753} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6158523176492677175 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9081705363521239611} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b3b3f04ac18184468bedd999e5a6688, type: 3} + m_Name: + m_EditorClassIdentifier: + _pokeInteractable: {fileID: 1912671942346180741} + _buttonBaseTransform: {fileID: 6128741053928652916} +--- !u!33 &6216071149273357452 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9081705363521239611} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} diff --git a/Samples/Prefabs/BodyTracking/BTCalibrationButton.prefab.meta b/Samples/Prefabs/BodyTracking/BTCalibrationButton.prefab.meta new file mode 100644 index 00000000..3fd53d8f --- /dev/null +++ b/Samples/Prefabs/BodyTracking/BTCalibrationButton.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c723fc2e86185ec498c4ae6e14c45cd9 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Prefabs/BodyTracking/BodyTrackingFidelityToggle.prefab b/Samples/Prefabs/BodyTracking/BodyTrackingFidelityToggle.prefab new file mode 100644 index 00000000..b18201f3 --- /dev/null +++ b/Samples/Prefabs/BodyTracking/BodyTrackingFidelityToggle.prefab @@ -0,0 +1,279 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7362976725013471434 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7362976725013471432} + - component: {fileID: 6147066115701160651} + m_Layer: 0 + m_Name: BodyTrackingFidelityToggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7362976725013471432 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7362976725013471434} + m_LocalRotation: {x: 0.09229593, y: -0.7010574, z: 0.09229593, w: 0.7010574} + m_LocalPosition: {x: -0.875, y: 1, z: -0.407} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7362976725664924067} + - {fileID: 6119768520224863} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 15, y: -90, z: 0} +--- !u!114 &6147066115701160651 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7362976725013471434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0f0c3d53485cacb428310b4c5c3d6d9b, type: 3} + m_Name: + m_EditorClassIdentifier: + _currentFidelity: 2 + _worldText: {fileID: 8065955003302514907} +--- !u!1 &7362976725664924068 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7362976725664924067} + - component: {fileID: 7362976725664924094} + - component: {fileID: 7362976725664924095} + m_Layer: 0 + m_Name: MenuPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7362976725664924067 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7362976725664924068} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.15, y: 0.15, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7362976725013471432} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7362976725664924094 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7362976725664924068} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &7362976725664924095 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7362976725664924068} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 6a8ed4e5af9074e44a277e70094bbbcf, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1001 &4176701670581757204 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7362976725013471432} + m_Modifications: + - target: {fileID: 1190592599872860168, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 44100ee3b663d774eaf4dece7161e29d, type: 2} + - target: {fileID: 3533162126377251659, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_AnchoredPosition.y + value: -1.2 + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 6147066115701160651} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SwapFidelity + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: Oculus.Movement.Utils.BodyTrackingFidelityToggle, Meta.Movement + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234762, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_Name + value: ToggleButton + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalPosition.y + value: 0.016 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalPosition.z + value: -0.01 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6198825956437652943, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_text + value: Three Point BT + objectReference: {fileID: 0} + - target: {fileID: 6198825956437652943, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_fontSize + value: 34 + objectReference: {fileID: 0} + - target: {fileID: 6198825956437652943, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_fontSizeBase + value: 34 + objectReference: {fileID: 0} + - target: {fileID: 6781307535824638274, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalScale.x + value: 1.5 + objectReference: {fileID: 0} + - target: {fileID: 6781307535824638274, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalScale.y + value: 1.5 + objectReference: {fileID: 0} + - target: {fileID: 6781307535824638274, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalScale.z + value: 1.5 + objectReference: {fileID: 0} + - target: {fileID: 9052892711818005985, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _selectColorState.Color.b + value: 0.9529412 + objectReference: {fileID: 0} + - target: {fileID: 9052892711818005985, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _selectColorState.Color.g + value: 0.64535433 + objectReference: {fileID: 0} + - target: {fileID: 9052892711818005985, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _selectColorState.Color.r + value: 0.30196083 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 2778893221137343601, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} +--- !u!4 &6119768520224863 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + m_PrefabInstance: {fileID: 4176701670581757204} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8065955003302514907 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6198825956437652943, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + m_PrefabInstance: {fileID: 4176701670581757204} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Samples/Prefabs/BodyTracking/BodyTrackingFidelityToggle.prefab.meta b/Samples/Prefabs/BodyTracking/BodyTrackingFidelityToggle.prefab.meta new file mode 100644 index 00000000..e220f0c0 --- /dev/null +++ b/Samples/Prefabs/BodyTracking/BodyTrackingFidelityToggle.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0737e3f63e17bac45b774695173860d1 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Prefabs/HighFidelity/HighFidelityFirstPerson.prefab b/Samples/Prefabs/HighFidelity/HighFidelityFirstPerson.prefab index f4c3573f..cf111658 100644 --- a/Samples/Prefabs/HighFidelity/HighFidelityFirstPerson.prefab +++ b/Samples/Prefabs/HighFidelity/HighFidelityFirstPerson.prefab @@ -611,14 +611,13 @@ MonoBehaviour: _customSkeleton: {fileID: 1024561555539579727} _animator: {fileID: 0} _spineTranslationCorrectionType: 1 - _correctSpineOnce: 0 - _applyToArms: 1 - _applyToHands: 0 - _useMoveTowardsArms: 0 - _snapThreshold: 0.1 - _armWeight: 0 - _handWeight: 0 - _armMoveSpeed: 0 + _spineAlignmentWeight: 0 + _leftShoulderWeight: 0 + _rightShoulderWeight: 0 + _leftArmWeight: 0 + _rightArmWeight: 0 + _leftHandWeight: 0 + _rightHandWeight: 0 _hipsToHeadBones: - {fileID: 4614795461479404054} - {fileID: 7185562945170467144} @@ -627,95 +626,99 @@ MonoBehaviour: - {fileID: 8571687220460749114} - {fileID: 7218135907072257976} - {fileID: 6369423367587295010} + _hipsToHeadBoneTargets: + - {fileID: 4614795461479404054} + - {fileID: 7185562945170467144} + - {fileID: 4255657312160527834} + - {fileID: 8123629613239412764} + - {fileID: 8571687220460749114} + - {fileID: 7218135907072257976} + - {fileID: 6369423367587295010} _leftArmData: ShoulderBone: {fileID: 2701536249310486477} UpperArmBone: {fileID: 4319023010721011036} LowerArmBone: {fileID: 2061263398344273555} HandBone: {fileID: 4076173765156699471} - ArmWeight: 0 - HandWeight: 0 - MoveSpeed: 0 + ShoulderLocalPos: {x: -0.066512585, y: 0.09479429, z: 0.0282178} + LowerArmToHandAxis: {x: -1, y: -0.000000050878956, z: -0.000000043610534} _rightArmData: ShoulderBone: {fileID: 2563644540292334074} UpperArmBone: {fileID: 6432989413210236746} LowerArmBone: {fileID: 5740937155685247320} HandBone: {fileID: 8608038177421147514} - ArmWeight: 0 - HandWeight: 0 - MoveSpeed: 0 + ShoulderLocalPos: {x: -0.066512585, y: 0.09479429, z: -0.0282178} + LowerArmToHandAxis: {x: 1, y: -0.0000008067804, z: 0.000000101756086} _bonePairData: - StartBone: {fileID: 4614795461479404054} EndBone: {fileID: 7185562945170467144} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.038306892 - IsMoveTowards: 0 + HeightProportion: 0.0623864 + LimbProportion: 0.0623864 - StartBone: {fileID: 7185562945170467144} EndBone: {fileID: 4255657312160527834} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.11096214 - IsMoveTowards: 0 + HeightProportion: 0.18071236 + LimbProportion: 0.18071236 - StartBone: {fileID: 4255657312160527834} EndBone: {fileID: 8123629613239412764} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.11240488 - IsMoveTowards: 0 + HeightProportion: 0.183062 + LimbProportion: 0.183062 - StartBone: {fileID: 8123629613239412764} EndBone: {fileID: 8571687220460749114} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.1846194 - IsMoveTowards: 0 + HeightProportion: 0.30067018 + LimbProportion: 0.30067018 - StartBone: {fileID: 8571687220460749114} EndBone: {fileID: 7218135907072257976} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.13176535 - IsMoveTowards: 0 + HeightProportion: 0.21459235 + LimbProportion: 0.21459235 - StartBone: {fileID: 7218135907072257976} EndBone: {fileID: 6369423367587295010} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.07068894 - IsMoveTowards: 0 + HeightProportion: 0.11512364 + LimbProportion: 0.11512364 - StartBone: {fileID: 8571687220460749114} EndBone: {fileID: 2701536249310486477} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.119189434 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 8571687220460749114} EndBone: {fileID: 2563644540292334074} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.119189434 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 2701536249310486477} EndBone: {fileID: 4319023010721011036} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.17650495 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 2563644540292334074} EndBone: {fileID: 6432989413210236746} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.17650484 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 4319023010721011036} EndBone: {fileID: 2061263398344273555} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.25680098 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 6432989413210236746} EndBone: {fileID: 5740937155685247320} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.25679642 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 + - StartBone: {fileID: 2061263398344273555} + EndBone: {fileID: 4076173765156699471} + Distance: 0.2562654 + HeightProportion: 0 + LimbProportion: 0 + - StartBone: {fileID: 5740937155685247320} + EndBone: {fileID: 8608038177421147514} + Distance: 0.25626996 + HeightProportion: 0 + LimbProportion: 0 _startingScale: {x: 1, y: 1, z: 1} _hipsToHeadDistance: 0.6140263 --- !u!1001 &169993673699794201 @@ -865,7 +868,7 @@ MonoBehaviour: - {fileID: 4460941168362880823} _rebindAnimator: 0 _reEnableRig: 0 - _rigToggleOnFocus: 1 + _rigToggleOnFocus: 0 _retargetingLayer: {fileID: 0} _checkSkeletalUpdatesByProxy: 0 --- !u!114 &4416254126646396801 diff --git a/Samples/Prefabs/HipPinning/HighFidelityHipPinningFirstPerson.prefab b/Samples/Prefabs/HipPinning/HighFidelityHipPinningFirstPerson.prefab index 87da3a60..05f19cc5 100644 --- a/Samples/Prefabs/HipPinning/HighFidelityHipPinningFirstPerson.prefab +++ b/Samples/Prefabs/HipPinning/HighFidelityHipPinningFirstPerson.prefab @@ -52,7 +52,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!4 &8724683950891529247 Transform: m_ObjectHideFlags: 0 @@ -83,10 +83,98 @@ MonoBehaviour: m_Weight: 1 m_Data: _skeleton: {fileID: 729980574542687627} + _animator: {fileID: 0} _hipPinningTargets: [] _enableHipPinningHeightAdjustment: 0 _enableHipPinningLeave: 1 _hipPinningLeaveRange: 0.3 + _root: {fileID: 8471446173325432514} + _bones: + - {fileID: 8471446173325432514} + - {fileID: 8911903714498386270} + - {fileID: 6349585496898920960} + - {fileID: 47671476499168914} + - {fileID: 5411799685071577940} + - {fileID: 5571723699023252082} + - {fileID: 6885306115466274032} + - {fileID: 7188521250940347498} + - {fileID: 2223570764790469765} + - {fileID: 0} + - {fileID: 24274709243371028} + - {fileID: 2827531660133311963} + - {fileID: 0} + - {fileID: 1744467641500109490} + - {fileID: 0} + - {fileID: 7124955169347283970} + - {fileID: 8362510363615060496} + - {fileID: 0} + - {fileID: 0} + - {fileID: 231661889192982023} + - {fileID: 3189612359651062758} + - {fileID: 1818795918207504506} + - {fileID: 2557260094991900180} + - {fileID: 1239025080321590585} + - {fileID: 0} + - {fileID: 435517024616815859} + - {fileID: 480587735553768566} + - {fileID: 4360619755558733012} + - {fileID: 382873332449214455} + - {fileID: 0} + - {fileID: 4185063123083879354} + - {fileID: 6585004837766333444} + - {fileID: 7390076919125924966} + - {fileID: 5936707382749461625} + - {fileID: 0} + - {fileID: 1269797664902040445} + - {fileID: 870234492196588115} + - {fileID: 5734337888801986425} + - {fileID: 8180141328021625632} + - {fileID: 4947727555282637449} + - {fileID: 3439834998963424549} + - {fileID: 1493363876542245172} + - {fileID: 3770610562665806705} + - {fileID: 691587755707698774} + - {fileID: 0} + - {fileID: 5535935693886961202} + - {fileID: 5472249403827190801} + - {fileID: 8247345956347994980} + - {fileID: 1604753022617353148} + - {fileID: 7488792797490622992} + - {fileID: 0} + - {fileID: 540960516297597079} + - {fileID: 8009468270963016968} + - {fileID: 6998241898754987780} + - {fileID: 6950154351706005160} + - {fileID: 0} + - {fileID: 3399364874420999799} + - {fileID: 8314276604680294447} + - {fileID: 5901588814454055930} + - {fileID: 8403122463213969046} + - {fileID: 0} + - {fileID: 4715617454967139502} + - {fileID: 3703812518369022374} + - {fileID: 7899737993120255235} + - {fileID: 1030618847793158843} + - {fileID: 1213850807354337944} + - {fileID: 4553906713062197876} + - {fileID: 8254040985717538417} + - {fileID: 8838535512443596585} + - {fileID: 3767059585655917435} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + _obtainedProperReferences: 1 --- !u!1 &1203877893166862650 GameObject: m_ObjectHideFlags: 0 @@ -694,14 +782,15 @@ MonoBehaviour: _customSkeleton: {fileID: 729980574542687627} _animator: {fileID: 0} _spineTranslationCorrectionType: 1 - _correctSpineOnce: 0 - _applyToArms: 1 - _applyToHands: 0 - _useMoveTowardsArms: 0 - _snapThreshold: 0.1 - _armWeight: 0 - _handWeight: 0 - _armMoveSpeed: 0 + _spineLowerAlignmentWeight: 0 + _spineUpperAlignmentWeight: 0 + _chestAlignmentWeight: 0 + _leftShoulderWeight: 0.05 + _rightShoulderWeight: 0.05 + _leftArmWeight: 0 + _rightArmWeight: 0 + _leftHandWeight: 0 + _rightHandWeight: 0 _hipsToHeadBones: - {fileID: 8911903714498386270} - {fileID: 6349585496898920960} @@ -710,97 +799,101 @@ MonoBehaviour: - {fileID: 5571723699023252082} - {fileID: 6885306115466274032} - {fileID: 7188521250940347498} + _hipsToHeadBoneTargets: + - {fileID: 8911903714498386270} + - {fileID: 6349585496898920960} + - {fileID: 47671476499168914} + - {fileID: 5411799685071577940} + - {fileID: 5571723699023252082} + - {fileID: 6885306115466274032} + - {fileID: 7188521250940347498} _leftArmData: ShoulderBone: {fileID: 2223570764790469765} UpperArmBone: {fileID: 24274709243371028} LowerArmBone: {fileID: 2827531660133311963} HandBone: {fileID: 231661889192982023} - ArmWeight: 0 - HandWeight: 0 - MoveSpeed: 0 + ShoulderLocalPos: {x: -0.066512585, y: 0.09479429, z: 0.0282178} + LowerArmToHandAxis: {x: -1, y: -0.000000050878956, z: -0.000000043610534} _rightArmData: ShoulderBone: {fileID: 1744467641500109490} UpperArmBone: {fileID: 7124955169347283970} LowerArmBone: {fileID: 8362510363615060496} HandBone: {fileID: 5535935693886961202} - ArmWeight: 0 - HandWeight: 0 - MoveSpeed: 0 + ShoulderLocalPos: {x: -0.066512585, y: 0.09479429, z: -0.0282178} + LowerArmToHandAxis: {x: 1, y: -0.0000008067804, z: 0.000000101756086} _bonePairData: - StartBone: {fileID: 8911903714498386270} EndBone: {fileID: 6349585496898920960} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.038306892 - IsMoveTowards: 0 + HeightProportion: 0.05904745 + LimbProportion: 0.05904745 - StartBone: {fileID: 6349585496898920960} EndBone: {fileID: 47671476499168914} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.11096214 - IsMoveTowards: 0 + HeightProportion: 0.17104053 + LimbProportion: 0.17104053 - StartBone: {fileID: 47671476499168914} EndBone: {fileID: 5411799685071577940} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.11240488 - IsMoveTowards: 0 + HeightProportion: 0.17326443 + LimbProportion: 0.17326443 - StartBone: {fileID: 5411799685071577940} EndBone: {fileID: 5571723699023252082} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.1846194 - IsMoveTowards: 0 + HeightProportion: 0.28457814 + LimbProportion: 0.28457814 - StartBone: {fileID: 5571723699023252082} EndBone: {fileID: 6885306115466274032} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.13176535 - IsMoveTowards: 0 + HeightProportion: 0.20310725 + LimbProportion: 0.20310725 - StartBone: {fileID: 6885306115466274032} EndBone: {fileID: 7188521250940347498} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.07068894 - IsMoveTowards: 0 + HeightProportion: 0.108962156 + LimbProportion: 0.108962156 - StartBone: {fileID: 5571723699023252082} EndBone: {fileID: 2223570764790469765} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.119189434 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 5571723699023252082} EndBone: {fileID: 1744467641500109490} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.119189434 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 2223570764790469765} EndBone: {fileID: 24274709243371028} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.17650495 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 1744467641500109490} EndBone: {fileID: 7124955169347283970} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.17650484 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 24274709243371028} EndBone: {fileID: 2827531660133311963} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.25680098 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 7124955169347283970} EndBone: {fileID: 8362510363615060496} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.25679642 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 + - StartBone: {fileID: 2827531660133311963} + EndBone: {fileID: 231661889192982023} + Distance: 0.2562654 + HeightProportion: 0 + LimbProportion: 0 + - StartBone: {fileID: 8362510363615060496} + EndBone: {fileID: 5535935693886961202} + Distance: 0.25626996 + HeightProportion: 0 + LimbProportion: 0 _startingScale: {x: 1, y: 1, z: 1} - _hipsToHeadDistance: 0.6140263 + _hipsToHeadDistance: 0.6487476 --- !u!1 &5157524381134081549 GameObject: m_ObjectHideFlags: 0 @@ -1486,6 +1579,31 @@ Transform: m_CorrespondingSourceObject: {fileID: 8453399462411537721, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &382873332449214455 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8302306762418652361, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &435517024616815859 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8101062216020191181, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &480587735553768566 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8128125109434320712, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &540960516297597079 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8207359512856583081, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &691587755707698774 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 9222956565024535912, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!114 &729980574542687627 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: -268267436235680075, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} @@ -1497,11 +1615,36 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 674a40251fe8ad841b18517ac5209957, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!4 &870234492196588115 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8823735774558613869, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1030618847793158843 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8659009376639246725, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!4 &1201287081863484350 stripped Transform: m_CorrespondingSourceObject: {fileID: 7407385077374412928, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &1213850807354337944 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7403904214872510886, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1239025080321590585 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7446248958567726599, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1269797664902040445 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7491948504425181251, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!4 &1387494785415246507 stripped Transform: m_CorrespondingSourceObject: {fileID: 7288753156365912469, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} @@ -1517,6 +1660,16 @@ Transform: m_CorrespondingSourceObject: {fileID: 7285186781874475422, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &1493363876542245172 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7124408530066477578, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1604753022617353148 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6927309286809010306, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!1 &1741218239049055554 stripped GameObject: m_CorrespondingSourceObject: {fileID: 7948160119389308540, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} @@ -1568,6 +1721,11 @@ Transform: m_CorrespondingSourceObject: {fileID: 7949448542854345100, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &1818795918207504506 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8023774096559123268, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!4 &1946852686310272085 stripped Transform: m_CorrespondingSourceObject: {fileID: 7882171755301345131, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} @@ -1583,16 +1741,51 @@ Transform: m_CorrespondingSourceObject: {fileID: 6258203951854967937, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &2557260094991900180 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6132411508968482090, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!4 &2827531660133311963 stripped Transform: m_CorrespondingSourceObject: {fileID: 5862257724485132005, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &3189612359651062758 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6495390013308602584, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3399364874420999799 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6434374002870758729, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3439834998963424549 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6474833708921173531, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3703812518369022374 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4972273723661134488, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!4 &3745266219671988638 stripped Transform: m_CorrespondingSourceObject: {fileID: 5016551006230729376, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &3767059585655917435 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4765034884250153029, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3770610562665806705 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4770546840272928847, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!4 &4101426204065179786 stripped Transform: m_CorrespondingSourceObject: {fileID: 5660096889234379700, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} @@ -1608,11 +1801,36 @@ Transform: m_CorrespondingSourceObject: {fileID: 5746942111429767262, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &4185063123083879354 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5508977647567444100, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4360619755558733012 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5396312734326489066, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4553906713062197876 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5284199281975472458, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!4 &4678272704573622532 stripped Transform: m_CorrespondingSourceObject: {fileID: 3930258721566306874, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &4715617454967139502 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3969562776973727632, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4947727555282637449 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3660967693392800183, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!95 &5008548947791101314 stripped Animator: m_CorrespondingSourceObject: {fileID: 3739806267547174588, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} @@ -1638,6 +1856,11 @@ Transform: m_CorrespondingSourceObject: {fileID: 4430722223406340202, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &5472249403827190801 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4437963807459182383, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!4 &5535935693886961202 stripped Transform: m_CorrespondingSourceObject: {fileID: 4230038290932878604, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} @@ -1648,6 +1871,21 @@ Transform: m_CorrespondingSourceObject: {fileID: 4266378242308141388, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &5734337888801986425 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4175945895470722119, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5901588814454055930 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2846594394623088836, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5936707382749461625 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2595461717386004295, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!4 &6171397758821561763 stripped Transform: m_CorrespondingSourceObject: {fileID: 2576816375597108893, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} @@ -1663,11 +1901,26 @@ Transform: m_CorrespondingSourceObject: {fileID: 3348926708340398398, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &6585004837766333444 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3244041188538974010, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!4 &6885306115466274032 stripped Transform: m_CorrespondingSourceObject: {fileID: 3020226679401504718, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &6950154351706005160 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1591017274452551062, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6998241898754987780 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1691447639479462970, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!4 &7124955169347283970 stripped Transform: m_CorrespondingSourceObject: {fileID: 1479267263978952508, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} @@ -1678,6 +1931,26 @@ Transform: m_CorrespondingSourceObject: {fileID: 1559728415474851668, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &7390076919125924966 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1218600327494969176, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7488792797490622992 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1263835943089850670, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7899737993120255235 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2001292163249632829, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8009468270963016968 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1819698014526127670, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!4 &8065065785454080346 stripped Transform: m_CorrespondingSourceObject: {fileID: 1840665885257681508, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} @@ -1688,6 +1961,26 @@ Transform: m_CorrespondingSourceObject: {fileID: 437626982364542241, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &8180141328021625632 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 568076382193311774, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8247345956347994980 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 293842508234037338, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8254040985717538417 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 354583481934021967, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8314276604680294447 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 361901788088773393, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!4 &8343745682743778248 stripped Transform: m_CorrespondingSourceObject: {fileID: 409112037104754934, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} @@ -1698,6 +1991,21 @@ Transform: m_CorrespondingSourceObject: {fileID: 173986280367921454, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} m_PrefabInstance: {fileID: 8531934559616596798} m_PrefabAsset: {fileID: 0} +--- !u!4 &8403122463213969046 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 214596206711154088, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8471446173325432514 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 285725886604701180, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8838535512443596585 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 923040558877987863, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} + m_PrefabInstance: {fileID: 8531934559616596798} + m_PrefabAsset: {fileID: 0} --- !u!4 &8911903714498386270 stripped Transform: m_CorrespondingSourceObject: {fileID: 993875434627818080, guid: d93e9f2485cf85b4aad13c207e1b410f, type: 3} diff --git a/Samples/Prefabs/ISDKIntegration/ArmatureSkinningUpdateRetargetSkeletonProcessor.prefab b/Samples/Prefabs/ISDKIntegration/ArmatureSkinningUpdateRetargetSkeletonProcessor.prefab index ad4244d4..cd3cef74 100644 --- a/Samples/Prefabs/ISDKIntegration/ArmatureSkinningUpdateRetargetSkeletonProcessor.prefab +++ b/Samples/Prefabs/ISDKIntegration/ArmatureSkinningUpdateRetargetSkeletonProcessor.prefab @@ -1,5 +1,54 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &5934253929075069038 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6520329247888166650} + - component: {fileID: 5858254439604359654} + m_Layer: 0 + m_Name: PlaybackAnimationConstraint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6520329247888166650 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5934253929075069038} + 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: 5579424740586475733} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5858254439604359654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5934253929075069038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3ac6230484089474898c6890ca09d24e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Weight: 0 + m_Data: + _animationPlaybackType: 2 + _captureAnimationConstraint: {fileID: 5356593900378066967} + _avatarMask: {fileID: 31900000, guid: 7129d5b0eec7de64a93fce9a6ba8f4d7, type: 2} --- !u!1001 &5579424741284206770 PrefabInstance: m_ObjectHideFlags: 0 @@ -83,6 +132,22 @@ PrefabInstance: propertyPath: SkeletonPostProcessing.m_PersistentCalls.m_Calls.Array.data[2].m_Arguments.m_ObjectArgumentAssemblyTypeName value: UnityEngine.Object, UnityEngine objectReference: {fileID: 0} + - target: {fileID: 520281171948095653, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_Weight + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2361644816699640067, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3064921622629090106, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3064921622629090106, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: _retargetingLayer + value: + objectReference: {fileID: 2324633634594971607} - target: {fileID: 3817605947884828321, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} propertyPath: m_RootOrder value: 0 @@ -127,6 +192,10 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 5509279618122473931, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 6442339640571472327, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} propertyPath: m_Name value: ArmatureSkinningUpdateRetargetSkeletonProcessor @@ -139,6 +208,26 @@ PrefabInstance: propertyPath: _autoAddTo value: objectReference: {fileID: 0} + - target: {fileID: 7065894658369251356, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: _ovrSkeletonConstraints.Array.size + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7065894658369251356, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: _ovrSkeletonConstraints.Array.data[3] + value: + objectReference: {fileID: 5858254439604359654} + - target: {fileID: 7819795630976784685, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7819795630976784685, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: _retargetingLayer + value: + objectReference: {fileID: 2324633634594971607} + - target: {fileID: 8041379379990558817, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: _autoAddTo + value: + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} --- !u!1 &1443914921768874357 stripped @@ -158,30 +247,74 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: ca8ba73f302887a4a8c206b952a7835f, type: 3} m_Name: m_EditorClassIdentifier: - _autoAddTo: {fileID: 5579424741214871902} + _autoAddTo: {fileID: 2324633634594971607} _skeletonProcessors: - - label: Retarget Hands + - label: Blend Hands Right + Enabled: 0 + Processor: {fileID: 7486900986326145928} + - label: Blend Hands Left + Enabled: 0 + Processor: {fileID: 2444161089806565791} + - label: Retargeted Bone Targets Enabled: 1 - Processor: {fileID: 1483202515538247245} ---- !u!114 &1483202515538247245 stripped + Processor: {fileID: 2519393238448185555} +--- !u!114 &2324633634594971607 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 6483914532100646655, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + m_CorrespondingSourceObject: {fileID: 7866900989153904485, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} m_PrefabInstance: {fileID: 5579424741284206770} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1443914921768874357} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e00344307bbe4d949bfcf8eddb0caf22, type: 3} + m_Script: {fileID: 11500000, guid: 31e3b6438933e1945a67ef8d4db811bf, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &5579424741214871902 stripped +--- !u!114 &2444161089806565791 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 208026092, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + m_CorrespondingSourceObject: {fileID: 7819795630976784685, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + m_PrefabInstance: {fileID: 5579424741284206770} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1443914921768874357} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8359a52c8182ca247b2064624e74dffb, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2519393238448185555 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8041379379990558817, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} m_PrefabInstance: {fileID: 5579424741284206770} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1443914921768874357} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 31e3b6438933e1945a67ef8d4db811bf, type: 3} + m_Script: {fileID: 11500000, guid: e99c227ec21d72d45b36011069f2b263, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &5356593900378066967 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 520281171948095653, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + m_PrefabInstance: {fileID: 5579424741284206770} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0e49d877e5db8344aea414f59493991, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &5579424740586475733 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 720078951, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + m_PrefabInstance: {fileID: 5579424741284206770} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7486900986326145928 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3064921622629090106, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + m_PrefabInstance: {fileID: 5579424741284206770} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1443914921768874357} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8359a52c8182ca247b2064624e74dffb, type: 3} m_Name: m_EditorClassIdentifier: diff --git a/Samples/Prefabs/Retargeting/ArmatureSkinningUpdateRetarget.prefab b/Samples/Prefabs/Retargeting/ArmatureSkinningUpdateRetarget.prefab index 79cc1130..4ddd6e3f 100644 --- a/Samples/Prefabs/Retargeting/ArmatureSkinningUpdateRetarget.prefab +++ b/Samples/Prefabs/Retargeting/ArmatureSkinningUpdateRetarget.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &318886848 +--- !u!1 &720078949 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,48 +8,48 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 318886849} - - component: {fileID: 318886850} + - component: {fileID: 720078951} + - component: {fileID: 720078950} m_Layer: 0 - m_Name: RetargetingConstraint + m_Name: Rig m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &318886849 + m_IsActive: 1 +--- !u!4 &720078951 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 318886848} + m_GameObject: {fileID: 720078949} 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: 720078951} + m_Children: + - {fileID: 5037131235962291318} + - {fileID: 7637878859907608630} + - {fileID: 4695418555050452255} + m_Father: {fileID: 3817605947884828321} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &318886850 +--- !u!114 &720078950 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 318886848} + m_GameObject: {fileID: 720078949} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d65fffb91be5d7446a2921b8a1bda1ae, type: 3} + m_Script: {fileID: 11500000, guid: 70b342d8ce5c2fd48b8fa3147d48d1d1, type: 3} m_Name: m_EditorClassIdentifier: m_Weight: 1 - m_Data: - _retargetingLayer: {fileID: 208026092} - _allowDynamicAdjustmentsRuntime: 1 - _avatarMask: {fileID: 0} ---- !u!1 &720078949 + m_Effectors: [] +--- !u!1 &533994187392997040 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -57,53 +57,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 720078951} - - component: {fileID: 720078950} + - component: {fileID: 7214641546695587818} m_Layer: 0 - m_Name: Rig + m_Name: NeckTwist m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &720078951 +--- !u!4 &7214641546695587818 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 720078949} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 533994187392997040} + m_LocalRotation: {x: 0.060688358, y: -0, z: -0, w: 0.9981568} + m_LocalPosition: {x: 0, y: 1.5604506, z: -0.022289246} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 3328468516607962077} - - {fileID: 7165569085711597175} - - {fileID: 318886849} - - {fileID: 3912856925506536382} - - {fileID: 4800741347203242442} - - {fileID: 7676107143362014296} - - {fileID: 8607772989518956460} - - {fileID: 3283226229436933477} - m_Father: {fileID: 3817605947884828321} - m_RootOrder: 2 + m_Children: [] + m_Father: {fileID: 3806884962704701568} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &720078950 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 720078949} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 70b342d8ce5c2fd48b8fa3147d48d1d1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Weight: 1 - m_Effectors: [] ---- !u!1 &32690563397573404 +--- !u!1 &2790682583795712339 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -111,56 +88,61 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 8607772989518956460} - - component: {fileID: 2594113019570505025} + - component: {fileID: 7587183840484842530} m_Layer: 0 - m_Name: RightArmIK + m_Name: HipsTarget m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &8607772989518956460 +--- !u!4 &7587183840484842530 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 32690563397573404} + m_GameObject: {fileID: 2790682583795712339} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 0.9810986, z: -0.01590455} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 5868464488973929034} - m_Father: {fileID: 720078951} - m_RootOrder: 6 + m_Children: [] + m_Father: {fileID: 4695418555050452255} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2594113019570505025 -MonoBehaviour: +--- !u!1 &3638285599488323782 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 32690563397573404} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: aeda7bfbf984f2a4da5ab4b8967b115d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Weight: 1 - m_Data: - m_Root: {fileID: 1235701047022314321} - m_Mid: {fileID: 3796135998893025026} - m_Tip: {fileID: 2494227819838822627} - m_Target: {fileID: 5868464488973929034} - m_Hint: {fileID: 0} - m_TargetPositionWeight: 1 - m_TargetRotationWeight: 0 - m_HintWeight: 1 - m_MaintainTargetPositionOffset: 0 - m_MaintainTargetRotationOffset: 0 ---- !u!1 &416742457315980562 + serializedVersion: 6 + m_Component: + - component: {fileID: 3762686855905044433} + m_Layer: 0 + m_Name: SpineUpperTarget + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3762686855905044433 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3638285599488323782} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.1427323, z: -0.014681594} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4695418555050452255} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5509279618122473931 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -168,30 +150,380 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 583436289584067096} + - component: {fileID: 5037131235962291318} + - component: {fileID: 520281171948095653} m_Layer: 0 - m_Name: LeftHandTarget + m_Name: CaptureAnimationConstraint m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &583436289584067096 + m_IsActive: 0 +--- !u!4 &5037131235962291318 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 416742457315980562} - m_LocalRotation: {x: 0.18716535, y: -0.22109763, z: 0.68237305, w: 0.6711573} - m_LocalPosition: {x: -0.6883281, y: 1.4085133, z: -0.048862353} + m_GameObject: {fileID: 5509279618122473931} + 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: 7676107143362014296} + m_Father: {fileID: 720078951} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &829442282159543809 +--- !u!114 &520281171948095653 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5509279618122473931} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0e49d877e5db8344aea414f59493991, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Weight: 0 + m_Data: + _animator: {fileID: 4325497552437736820} + _targetAnimatorLayer: 0 + _referencePoseTime: 0 + _referencePose: + - Bone: 0 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 1 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 2 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 3 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 4 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 5 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 6 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 7 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 8 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 9 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 10 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 11 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 12 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 13 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 14 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 15 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 16 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 17 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 18 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 19 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 20 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 21 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 22 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 23 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 24 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 25 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 26 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 27 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 28 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 29 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 30 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 31 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 32 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 33 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 34 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 35 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 36 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 37 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 38 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 39 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 40 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 41 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 42 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 43 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 44 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 45 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 46 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 47 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 48 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 49 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 50 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 51 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 52 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 53 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 54 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + _currentPose: + - Bone: 0 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 1 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 2 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 3 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 4 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 5 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 6 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 7 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 8 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 9 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 10 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 11 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 12 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 13 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 14 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 15 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 16 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 17 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 18 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 19 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 20 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 21 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 22 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 23 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 24 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 25 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 26 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 27 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 28 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 29 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 30 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 31 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 32 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 33 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 34 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 35 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 36 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 37 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 38 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 39 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 40 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 41 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 42 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 43 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 44 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 45 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 46 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 47 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 48 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 49 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 50 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 51 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 52 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 53 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} + - Bone: 54 + LocalPosition: {x: 0, y: 0, z: 0} + LocalRotation: {x: 0, y: 0, z: 0, w: 1} +--- !u!1 &6381604311219588075 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -199,55 +531,67 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 4800741347203242442} - - component: {fileID: 8192828327705243424} + - component: {fileID: 4695418555050452255} + - component: {fileID: 4457886994102197209} m_Layer: 0 - m_Name: DeformationConstraint + m_Name: Deformation m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &4800741347203242442 +--- !u!4 &4695418555050452255 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 829442282159543809} + m_GameObject: {fileID: 6381604311219588075} 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_Children: + - {fileID: 7587183840484842530} + - {fileID: 9220256087756010015} + - {fileID: 3762686855905044433} + - {fileID: 7149144802348253193} + - {fileID: 7277339581642933588} + - {fileID: 9174775783855746668} m_Father: {fileID: 720078951} - m_RootOrder: 4 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &8192828327705243424 +--- !u!114 &4457886994102197209 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 829442282159543809} + m_GameObject: {fileID: 6381604311219588075} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: cb86b2c3f58d2d84c97a1b0a27b1a726, type: 3} + m_Script: {fileID: 11500000, guid: da7a4e7762678a941bc75ee4155418d1, type: 3} m_Name: m_EditorClassIdentifier: m_Weight: 1 m_Data: + _spineLowerAlignmentWeight: 1 + _spineUpperAlignmentWeight: 0.5 + _chestAlignmentWeight: 0 + _leftShoulderWeight: 0.75 + _rightShoulderWeight: 0.75 + _leftArmWeight: 1 + _rightArmWeight: 1 + _leftHandWeight: 1 + _rightHandWeight: 1 + _leftLegWeight: 1 + _rightLegWeight: 1 + _leftToesWeight: 1 + _rightToesWeight: 1 + _alignFeetWeight: 0.75 + _spineTranslationCorrectionType: 3 _customSkeleton: {fileID: 0} _animator: {fileID: 4325497552437736820} - _spineTranslationCorrectionType: 2 - _correctSpineOnce: 0 - _applyToArms: 1 - _applyToHands: 1 - _useMoveTowardsArms: 0 - _snapThreshold: 0.1 - _armWeight: 1 - _handWeight: 1 - _armMoveSpeed: 0 _hipsToHeadBones: - {fileID: 24668466978050337} - {fileID: 4136407814712997250} @@ -255,104 +599,144 @@ MonoBehaviour: - {fileID: 167868239173931932} - {fileID: 8568777009844315901} - {fileID: 813562241272511791} + _hipsToHeadBoneTargets: + - {fileID: 7587183840484842530} + - {fileID: 9220256087756010015} + - {fileID: 3762686855905044433} + - {fileID: 7149144802348253193} + - {fileID: 7277339581642933588} + - {fileID: 9174775783855746668} _leftArmData: ShoulderBone: {fileID: 372011279931233274} UpperArmBone: {fileID: 2853792523736699549} LowerArmBone: {fileID: 4776154206678009637} HandBone: {fileID: 8362296397940282678} - ArmWeight: 1 - HandWeight: 1 - MoveSpeed: 0 + ShoulderLocalPos: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} + LowerArmToHandAxis: {x: -0.00000063156983, y: 1, z: 0.00000006974391} _rightArmData: ShoulderBone: {fileID: 6698092073795100007} UpperArmBone: {fileID: 1235701047022314321} LowerArmBone: {fileID: 3796135998893025026} HandBone: {fileID: 2494227819838822627} - ArmWeight: 1 - HandWeight: 1 - MoveSpeed: 0 + ShoulderLocalPos: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} + LowerArmToHandAxis: {x: 0.00000006586886, y: -1, z: -0.00000003874639} + _leftLegData: + HipsBone: {fileID: 24668466978050337} + UpperLegBone: {fileID: 7606388188277981105} + LowerLegBone: {fileID: 6575490107108777790} + FootBone: {fileID: 4466782864633229390} + ToesBone: {fileID: 7347710556476194970} + ToesLocalPos: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506} + FootLocalRot: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + _rightLegData: + HipsBone: {fileID: 24668466978050337} + UpperLegBone: {fileID: 7049401827258888227} + LowerLegBone: {fileID: 1058771097002273047} + FootBone: {fileID: 2413530998563704695} + ToesBone: {fileID: 5853368343141817120} + ToesLocalPos: {x: -0.00000015643121, y: -0.07224799, z: 0.11807} + FootLocalRot: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} _bonePairData: - StartBone: {fileID: 24668466978050337} EndBone: {fileID: 4136407814712997250} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.058242228 - IsMoveTowards: 0 + HeightProportion: 0.038177162 + LimbProportion: 0.09043276 - StartBone: {fileID: 4136407814712997250} EndBone: {fileID: 4150047613444537597} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.10340428 - IsMoveTowards: 0 + HeightProportion: 0.06778041 + LimbProportion: 0.16055593 - StartBone: {fileID: 4150047613444537597} EndBone: {fileID: 167868239173931932} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.10340428 - IsMoveTowards: 0 + HeightProportion: 0.06778041 + LimbProportion: 0.16055593 - StartBone: {fileID: 167868239173931932} EndBone: {fileID: 8568777009844315901} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.25151414 - IsMoveTowards: 0 + HeightProportion: 0.16486485 + LimbProportion: 0.39052624 - StartBone: {fileID: 8568777009844315901} EndBone: {fileID: 813562241272511791} - SnapThreshold: 0 - MoveTowardsSpeed: 0 Distance: 0.12747405 - IsMoveTowards: 0 + HeightProportion: 0.08355789 + LimbProportion: 0.19792908 - StartBone: {fileID: 167868239173931932} EndBone: {fileID: 372011279931233274} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.19169338 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 167868239173931932} EndBone: {fileID: 6698092073795100007} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.19169505 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 372011279931233274} EndBone: {fileID: 2853792523736699549} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.16743502 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 6698092073795100007} EndBone: {fileID: 1235701047022314321} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.16743432 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 2853792523736699549} EndBone: {fileID: 4776154206678009637} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.28508064 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 1235701047022314321} EndBone: {fileID: 3796135998893025026} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.285085 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 4776154206678009637} EndBone: {fileID: 8362296397940282678} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.24036232 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 - StartBone: {fileID: 3796135998893025026} EndBone: {fileID: 2494227819838822627} - SnapThreshold: 0.1 - MoveTowardsSpeed: 0 Distance: 0.24036369 - IsMoveTowards: 0 + HeightProportion: 0 + LimbProportion: 0 + - StartBone: {fileID: 24668466978050337} + EndBone: {fileID: 7606388188277981105} + Distance: 0.10199556 + HeightProportion: 0.066857 + LimbProportion: 0.115701735 + - StartBone: {fileID: 24668466978050337} + EndBone: {fileID: 7049401827258888227} + Distance: 0.10199563 + HeightProportion: 0.066857055 + LimbProportion: 0.115701824 + - StartBone: {fileID: 7606388188277981105} + EndBone: {fileID: 6575490107108777790} + Distance: 0.41334438 + HeightProportion: 0.27094287 + LimbProportion: 0.46888965 + - StartBone: {fileID: 7049401827258888227} + EndBone: {fileID: 1058771097002273047} + Distance: 0.41334414 + HeightProportion: 0.2709427 + LimbProportion: 0.4688894 + - StartBone: {fileID: 6575490107108777790} + EndBone: {fileID: 4466782864633229390} + Distance: 0.4140398 + HeightProportion: 0.2713987 + LimbProportion: 0.46967852 + - StartBone: {fileID: 1058771097002273047} + EndBone: {fileID: 2413530998563704695} + Distance: 0.41403958 + HeightProportion: 0.27139854 + LimbProportion: 0.46967828 _startingScale: {x: 1, y: 1, z: 1} - _hipsToHeadDistance: 0.6426209 ---- !u!1 &1473924905461991896 + _hipsToHeadDistance: 0.64403903 + _hipsToFootDistance: 0.8815387 + _calculateBoneData: 0 +--- !u!1 &6569133656184895074 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -360,112 +744,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7676107143362014296} - - component: {fileID: 3379190405876128890} + - component: {fileID: 7149144802348253193} m_Layer: 0 - m_Name: LeftArmIK + m_Name: ChestTarget m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &7676107143362014296 +--- !u!4 &7149144802348253193 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1473924905461991896} + m_GameObject: {fileID: 6569133656184895074} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 1.2461365, z: -0.014681594} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 583436289584067096} - m_Father: {fileID: 720078951} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &3379190405876128890 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1473924905461991896} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: aeda7bfbf984f2a4da5ab4b8967b115d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Weight: 1 - m_Data: - m_Root: {fileID: 2853792523736699549} - m_Mid: {fileID: 4776154206678009637} - m_Tip: {fileID: 8362296397940282678} - m_Target: {fileID: 583436289584067096} - m_Hint: {fileID: 0} - m_TargetPositionWeight: 1 - m_TargetRotationWeight: 0 - m_HintWeight: 1 - m_MaintainTargetPositionOffset: 0 - m_MaintainTargetRotationOffset: 0 ---- !u!1 &1595867077748804220 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7165569085711597175} - - component: {fileID: 7207955825035234804} - m_Layer: 0 - m_Name: StraightenRightLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7165569085711597175 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1595867077748804220} - m_LocalRotation: {x: -0, y: 1, z: -0, w: 0} - m_LocalPosition: {x: 0, y: 0, z: 0.97400004} - m_LocalScale: {x: -1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 720078951} - m_RootOrder: 1 + m_Father: {fileID: 4695418555050452255} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &7207955825035234804 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1595867077748804220} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: aeda7bfbf984f2a4da5ab4b8967b115d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Weight: 1 - m_Data: - m_Root: {fileID: 7049401827258888227} - m_Mid: {fileID: 1058771097002273047} - m_Tip: {fileID: 2413530998563704695} - m_Target: {fileID: 3322171736777022741} - m_Hint: {fileID: 0} - m_TargetPositionWeight: 1 - m_TargetRotationWeight: 1 - m_HintWeight: 1 - m_MaintainTargetPositionOffset: 0 - m_MaintainTargetRotationOffset: 0 ---- !u!1 &2614499411421570187 +--- !u!1 &6619589912156159900 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -473,55 +775,48 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 3328468516607962077} - - component: {fileID: 8853966640034974739} + - component: {fileID: 7637878859907608630} + - component: {fileID: 3289871368579812835} m_Layer: 0 - m_Name: StraightenLeftLeg + m_Name: RetargetingConstraint m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3328468516607962077 + m_IsActive: 0 +--- !u!4 &7637878859907608630 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2614499411421570187} - m_LocalRotation: {x: -0, y: 1, z: -0, w: 0} - m_LocalPosition: {x: 0, y: 0, z: 0.97400004} - m_LocalScale: {x: -1, y: 1, z: 1} + m_GameObject: {fileID: 6619589912156159900} + 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: 720078951} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &8853966640034974739 +--- !u!114 &3289871368579812835 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2614499411421570187} + m_GameObject: {fileID: 6619589912156159900} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: aeda7bfbf984f2a4da5ab4b8967b115d, type: 3} + m_Script: {fileID: 11500000, guid: d65fffb91be5d7446a2921b8a1bda1ae, type: 3} m_Name: m_EditorClassIdentifier: m_Weight: 1 m_Data: - m_Root: {fileID: 7606388188277981105} - m_Mid: {fileID: 6575490107108777790} - m_Tip: {fileID: 4466782864633229390} - m_Target: {fileID: 8223565558435501862} - m_Hint: {fileID: 0} - m_TargetPositionWeight: 1 - m_TargetRotationWeight: 1 - m_HintWeight: 1 - m_MaintainTargetPositionOffset: 0 - m_MaintainTargetRotationOffset: 0 ---- !u!1 &3166730603278299432 + _retargetingLayer: {fileID: 7866900989153904485} + _allowDynamicAdjustmentsRuntime: 1 + _avatarMask: {fileID: 0} +--- !u!1 &7366454608359966986 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -529,30 +824,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 3322171736777022741} + - component: {fileID: 9174775783855746668} m_Layer: 0 - m_Name: RightFootTarget + m_Name: HeadTarget m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &3322171736777022741 +--- !u!4 &9174775783855746668 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3166730603278299432} - m_LocalRotation: {x: -0, y: 0.05064953, z: -0.000000006024493, w: 0.99871653} - m_LocalPosition: {x: 0.11543696, y: -0.87920296, z: -0.043957256} + m_GameObject: {fileID: 7366454608359966986} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.6237181, z: -0.014567317} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 24668466978050337} - m_RootOrder: 4 + m_Father: {fileID: 4695418555050452255} + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3481361541465284818 +--- !u!1 &7789488335142133591 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -560,30 +855,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 8223565558435501862} + - component: {fileID: 9220256087756010015} m_Layer: 0 - m_Name: LeftFootTarget + m_Name: SpineLowerTarget m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &8223565558435501862 +--- !u!4 &9220256087756010015 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3481361541465284818} - m_LocalRotation: {x: 0.9987165, y: 0.0000000055879354, z: 0.05064953, w: 5.820766e-11} - m_LocalPosition: {x: -0.11543725, y: -0.87920326, z: -0.043957252} + m_GameObject: {fileID: 7789488335142133591} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.039328, z: -0.014681594} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 24668466978050337} - m_RootOrder: 3 + m_Father: {fileID: 4695418555050452255} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4154677290358204340 +--- !u!1 &7957083159763866352 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -591,30 +886,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5868464488973929034} + - component: {fileID: 7277339581642933588} m_Layer: 0 - m_Name: RightHandTarget + m_Name: NeckTarget m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &5868464488973929034 +--- !u!4 &7277339581642933588 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4154677290358204340} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.6883333, y: 1.4085174, z: -0.048862252} + m_GameObject: {fileID: 7957083159763866352} + m_LocalRotation: {x: 0.060688358, y: -0, z: -0, w: 0.9981568} + m_LocalPosition: {x: 0, y: 1.4971831, z: -0.030011175} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 8607772989518956460} - m_RootOrder: 0 + m_Father: {fileID: 4695418555050452255} + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7232450877174583174 +--- !u!1 &8767510395113025985 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -622,96 +917,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 3283226229436933477} - - component: {fileID: 3676716232870504498} + - component: {fileID: 3806884962704701568} m_Layer: 0 - m_Name: CopyTargetPoseConstraint + m_Name: Twists m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &3283226229436933477 + m_IsActive: 1 +--- !u!4 &3806884962704701568 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7232450877174583174} + m_GameObject: {fileID: 8767510395113025985} 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: 720078951} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &3676716232870504498 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7232450877174583174} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a49dfbc95e780564cb45bafc883d024c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Weight: 1 - m_Data: - _animator: {fileID: 4325497552437736820} - _retargetingLayer: {fileID: 208026092} - _copyPoseToOriginal: 0 ---- !u!1 &9221351095304159911 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3912856925506536382} - - component: {fileID: 2405296923516618485} - m_Layer: 0 - m_Name: CopyOriginalPoseConstraint - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &3912856925506536382 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9221351095304159911} - 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: 720078951} + m_Children: + - {fileID: 7214641546695587818} + m_Father: {fileID: 3817605947884828321} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2405296923516618485 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9221351095304159911} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a49dfbc95e780564cb45bafc883d024c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Weight: 1 - m_Data: - _animator: {fileID: 4325497552437736820} - _retargetingLayer: {fileID: 208026092} - _copyPoseToOriginal: 1 --- !u!1001 &2878048534688545747 PrefabInstance: m_ObjectHideFlags: 0 @@ -795,6 +1024,18 @@ PrefabInstance: propertyPath: m_ApplyRootMotion value: 0 objectReference: {fileID: 0} + - target: {fileID: 2136921240105483057, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.x + value: -0.0095274765 + objectReference: {fileID: 0} + - target: {fileID: 2136921240105483057, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.y + value: -0.08161442 + objectReference: {fileID: 0} + - target: {fileID: 2136921240105483057, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.z + value: 0.012242121 + objectReference: {fileID: 0} - target: {fileID: 2247155861818229139, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} propertyPath: m_IsActive value: 1 @@ -803,6 +1044,10 @@ PrefabInstance: propertyPath: m_LocalPosition.x value: -0.007822365 objectReference: {fileID: 0} + - target: {fileID: 2566856678452017287, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.y + value: -0.091839544 + objectReference: {fileID: 0} - target: {fileID: 2566856678452017287, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} propertyPath: m_LocalPosition.z value: -0.026574552 @@ -835,6 +1080,18 @@ PrefabInstance: propertyPath: m_LocalPosition.z value: 0.000000001862645 objectReference: {fileID: 0} + - target: {fileID: 4741563609192783373, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.x + value: -0.000000028870987 + objectReference: {fileID: 0} + - target: {fileID: 4741563609192783373, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.y + value: -0.24036385 + objectReference: {fileID: 0} + - target: {fileID: 4741563609192783373, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.z + value: 0.000000008381902 + objectReference: {fileID: 0} - target: {fileID: 4849444477218521423, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} propertyPath: m_LocalPosition.x value: 0.004436876 @@ -885,7 +1142,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 9121803696401781268, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} propertyPath: m_Name - value: ArmatureSkinningUpdateRetargetUser + value: ArmatureSkinningUpdateRetarget objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} @@ -899,6 +1156,11 @@ Transform: m_CorrespondingSourceObject: {fileID: 2712436511663056975, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &271489459777286249 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2608824284754742202, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} --- !u!4 &372011279931233274 stripped Transform: m_CorrespondingSourceObject: {fileID: 2511117075805431849, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} @@ -909,6 +1171,16 @@ Transform: m_CorrespondingSourceObject: {fileID: 3223094540932368124, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &942435568972493560 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3090830320396519723, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &995566969887961654 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3035451466240821733, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} --- !u!4 &1058771097002273047 stripped Transform: m_CorrespondingSourceObject: {fileID: 2972766455213642436, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} @@ -919,6 +1191,11 @@ Transform: m_CorrespondingSourceObject: {fileID: 3951616662085982338, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &1638702256349537392 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3552556024653799331, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} --- !u!4 &2413530998563704695 stripped Transform: m_CorrespondingSourceObject: {fileID: 472442842363016356, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} @@ -929,11 +1206,36 @@ Transform: m_CorrespondingSourceObject: {fileID: 391152466220180272, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &2630517260109676806 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 248147018808998613, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2737802297540386453 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 148127632126715206, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} --- !u!4 &2853792523736699549 stripped Transform: m_CorrespondingSourceObject: {fileID: 29929578043304270, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &2948799431510731612 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1088987727013318799, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3604517069801113574 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1582224486623771701, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3685570744738171001 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1501148882204193706, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} --- !u!4 &3796135998893025026 stripped Transform: m_CorrespondingSourceObject: {fileID: 1395680962295553233, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} @@ -944,6 +1246,11 @@ Transform: m_CorrespondingSourceObject: {fileID: 1371976685920341362, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &3858117355688848372 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1331421376152326183, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} --- !u!4 &4136407814712997250 stripped Transform: m_CorrespondingSourceObject: {fileID: 2204398875919224401, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} @@ -959,22 +1266,67 @@ Animator: m_CorrespondingSourceObject: {fileID: 2015256377725734567, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &4341593591503732478 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1995254865806263597, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4455956934440647469 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1884295602380226814, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} --- !u!4 &4466782864633229390 stripped Transform: m_CorrespondingSourceObject: {fileID: 1877388331611999133, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &4605561582185283396 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1736942771008652439, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} --- !u!4 &4776154206678009637 stripped Transform: m_CorrespondingSourceObject: {fileID: 7329800906561977590, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &4985697629920269784 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7115723080690183691, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5061170491986651002 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7047010109057932457, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5234591539898098028 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8022565296337689279, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5492107710739096852 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7766179627964833479, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5853368343141817120 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8560136290028069107, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6033772983780806732 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8380254888661822367, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} --- !u!1 &6442339640571472327 stripped GameObject: m_CorrespondingSourceObject: {fileID: 9121803696401781268, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} ---- !u!114 &208026090 +--- !u!114 &597839387667802579 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -983,71 +1335,11 @@ MonoBehaviour: m_GameObject: {fileID: 6442339640571472327} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 642f072a06af00f42b49882dbbda8521, type: 3} - m_Name: - m_EditorClassIdentifier: - _skeleton: {fileID: 208026092} - _animator: {fileID: 4325497552437736820} - _rigBuilder: {fileID: 208026091} - _ovrSkeletonConstraints: - - {fileID: 318886850} - - {fileID: 2405296923516618485} - - {fileID: 8192828327705243424} - - {fileID: 3676716232870504498} - _rebindAnimator: 1 - _reEnableRig: 1 - _rigToggleOnFocus: 1 - _retargetingLayer: {fileID: 208026092} - _checkSkeletalUpdatesByProxy: 0 ---- !u!114 &208026091 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6442339640571472327} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fff0960ef4ea6e04eac66b4a7fd2189d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_RigLayers: - - m_Rig: {fileID: 720078950} - m_Active: 1 - m_Effectors: [] ---- !u!114 &208026092 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6442339640571472327} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 31e3b6438933e1945a67ef8d4db811bf, type: 3} + m_Script: {fileID: 11500000, guid: 274835e4e2feae04b87f0d000555f8a4, type: 3} m_Name: m_EditorClassIdentifier: - _skeletonType: 2 - _updateRootPose: 0 - _updateRootScale: 0 - _enablePhysicsCapsules: 0 - _applyBoneTranslations: 1 - _correctPositionsLateUpdate: 1 - _leftHandCorrectionWeightLateUpdate: 1 - _rightHandCorrectionWeightLateUpdate: 1 - _applyAnimationConstraintsToCorrectedPositions: 1 - _enableTrackingByProxy: 0 - _retargetingAnimationConstraint: {fileID: 318886850} - _jointRotationTweaks: - - Joint: 17 - RotationTweaks: - - {x: 0, y: 0.42261827, z: 0, w: 0.90630776} - - {x: 0, y: 0, z: 0.1736483, w: -0.9848077} - - Joint: 18 - RotationTweaks: - - {x: 0, y: 0.42261827, z: 0, w: 0.90630776} - - {x: 0, y: 0, z: 0.1736483, w: -0.9848077} ---- !u!114 &208026093 + _providedSkeletonType: 1 +--- !u!114 &2361644816699640067 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1056,10 +1348,229 @@ MonoBehaviour: m_GameObject: {fileID: 6442339640571472327} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 274835e4e2feae04b87f0d000555f8a4, type: 3} + m_Script: {fileID: 11500000, guid: 46311f43d60a6be47be85ee4e2860f06, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &1449580700582008528 + _animator: {fileID: 4325497552437736820} + _skeleton: {fileID: 7866900989153904485} + _leftHand: {fileID: 8362296397940282678} + _rightHand: {fileID: 2494227819838822627} + _copyFingerOffsetsInUpdate: 0 + _fingerOffsets: [] + _interpolatedFingers: [] + _fingers: + - StartBoneTransform: {fileID: 8362296397940282678} + EndBoneTransform: {fileID: 4605561582185283396} + StartBoneId: 19 + EndBoneId: 20 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.037202086 + - StartBoneTransform: {fileID: 4605561582185283396} + EndBoneTransform: {fileID: 1638702256349537392} + StartBoneId: 20 + EndBoneId: 21 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.027841328 + - StartBoneTransform: {fileID: 1638702256349537392} + EndBoneTransform: {fileID: 7720621969630590991} + StartBoneId: 21 + EndBoneId: 22 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.045123335 + - StartBoneTransform: {fileID: 8362296397940282678} + EndBoneTransform: {fileID: 4985697629920269784} + StartBoneId: 19 + EndBoneId: 25 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.095930114 + - StartBoneTransform: {fileID: 4985697629920269784} + EndBoneTransform: {fileID: 6033772983780806732} + StartBoneId: 25 + EndBoneId: 26 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.042097833 + - StartBoneTransform: {fileID: 6033772983780806732} + EndBoneTransform: {fileID: 2737802297540386453} + StartBoneId: 26 + EndBoneId: 27 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.025139272 + - StartBoneTransform: {fileID: 8362296397940282678} + EndBoneTransform: {fileID: 5061170491986651002} + StartBoneId: 19 + EndBoneId: 30 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.08711889 + - StartBoneTransform: {fileID: 5061170491986651002} + EndBoneTransform: {fileID: 2948799431510731612} + StartBoneId: 30 + EndBoneId: 31 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.05127931 + - StartBoneTransform: {fileID: 2948799431510731612} + EndBoneTransform: {fileID: 4455956934440647469} + StartBoneId: 31 + EndBoneId: 32 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.028284062 + - StartBoneTransform: {fileID: 8362296397940282678} + EndBoneTransform: {fileID: 8978626515341356355} + StartBoneId: 19 + EndBoneId: 35 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.083076544 + - StartBoneTransform: {fileID: 8978626515341356355} + EndBoneTransform: {fileID: 5492107710739096852} + StartBoneId: 35 + EndBoneId: 36 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.043630574 + - StartBoneTransform: {fileID: 5492107710739096852} + EndBoneTransform: {fileID: 271489459777286249} + StartBoneId: 36 + EndBoneId: 37 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.02711549 + - StartBoneTransform: {fileID: 8362296397940282678} + EndBoneTransform: {fileID: 8394124404083829141} + StartBoneId: 19 + EndBoneId: 40 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.07869815 + - StartBoneTransform: {fileID: 8394124404083829141} + EndBoneTransform: {fileID: 7324593329673566154} + StartBoneId: 40 + EndBoneId: 41 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.03227268 + - StartBoneTransform: {fileID: 7324593329673566154} + EndBoneTransform: {fileID: 7644225670764006185} + StartBoneId: 41 + EndBoneId: 42 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.020224435 + - StartBoneTransform: {fileID: 2494227819838822627} + EndBoneTransform: {fileID: 995566969887961654} + StartBoneId: 45 + EndBoneId: 46 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.03720179 + - StartBoneTransform: {fileID: 995566969887961654} + EndBoneTransform: {fileID: 3685570744738171001} + StartBoneId: 46 + EndBoneId: 47 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.027840983 + - StartBoneTransform: {fileID: 3685570744738171001} + EndBoneTransform: {fileID: 6743035668138834372} + StartBoneId: 47 + EndBoneId: 48 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.04512085 + - StartBoneTransform: {fileID: 2494227819838822627} + EndBoneTransform: {fileID: 7006316547460879866} + StartBoneId: 45 + EndBoneId: 51 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.09592637 + - StartBoneTransform: {fileID: 7006316547460879866} + EndBoneTransform: {fileID: 8702160152427063123} + StartBoneId: 51 + EndBoneId: 52 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.042101394 + - StartBoneTransform: {fileID: 8702160152427063123} + EndBoneTransform: {fileID: 8470191330660502023} + StartBoneId: 52 + EndBoneId: 53 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.02513925 + - StartBoneTransform: {fileID: 2494227819838822627} + EndBoneTransform: {fileID: 5234591539898098028} + StartBoneId: 45 + EndBoneId: 56 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.087118976 + - StartBoneTransform: {fileID: 5234591539898098028} + EndBoneTransform: {fileID: 2630517260109676806} + StartBoneId: 56 + EndBoneId: 57 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.051275894 + - StartBoneTransform: {fileID: 2630517260109676806} + EndBoneTransform: {fileID: 3858117355688848372} + StartBoneId: 57 + EndBoneId: 58 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.028283633 + - StartBoneTransform: {fileID: 2494227819838822627} + EndBoneTransform: {fileID: 942435568972493560} + StartBoneId: 45 + EndBoneId: 61 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.08307547 + - StartBoneTransform: {fileID: 942435568972493560} + EndBoneTransform: {fileID: 6614107610704357342} + StartBoneId: 61 + EndBoneId: 62 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.043628715 + - StartBoneTransform: {fileID: 6614107610704357342} + EndBoneTransform: {fileID: 8140801458842531684} + StartBoneId: 62 + EndBoneId: 63 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.027114639 + - StartBoneTransform: {fileID: 2494227819838822627} + EndBoneTransform: {fileID: 3604517069801113574} + StartBoneId: 45 + EndBoneId: 66 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.07869771 + - StartBoneTransform: {fileID: 3604517069801113574} + EndBoneTransform: {fileID: 4341593591503732478} + StartBoneId: 66 + EndBoneId: 67 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.03226879 + - StartBoneTransform: {fileID: 4341593591503732478} + EndBoneTransform: {fileID: 7052923847903105770} + StartBoneId: 67 + EndBoneId: 68 + EndPosOffset: {x: 0, y: 0, z: 0} + EndRotOffset: {x: 0, y: 0, z: 0, w: 1} + Distance: 0.020225074 + _calculateFingerData: 0 +--- !u!114 &3064921622629090106 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1068,15 +1579,14 @@ MonoBehaviour: m_GameObject: {fileID: 6442339640571472327} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f8679dc9cec9324429dd9c3909e6cac3, type: 3} + m_Script: {fileID: 11500000, guid: 8359a52c8182ca247b2064624e74dffb, type: 3} m_Name: m_EditorClassIdentifier: - _constraints: - - {fileID: 3379190405876128890} - _retargetingLayer: {fileID: 208026092} - _boneIdToTest: 19 + _constraints: [] + _retargetingLayer: {fileID: 7866900989153904485} + _boneIdToTest: 45 _headTransform: {fileID: 813562241272511791} - _autoAddTo: {fileID: 208026092} + _autoAddTo: {fileID: 7866900989153904485} _constraintsMinDistance: 0.2 _constraintsMaxDistance: 0.5 _blendCurve: @@ -1085,18 +1595,18 @@ MonoBehaviour: - serializedVersion: 3 time: 0 value: 0 - inSlope: 1 - outSlope: 1 - tangentMode: 34 + inSlope: 0 + outSlope: 0 + tangentMode: 0 weightedMode: 0 inWeight: 0 outWeight: 0 - serializedVersion: 3 time: 1 value: 1 - inSlope: 1 - outSlope: 1 - tangentMode: 34 + inSlope: 0 + outSlope: 0 + tangentMode: 0 weightedMode: 0 inWeight: 0 outWeight: 0 @@ -1104,7 +1614,7 @@ MonoBehaviour: m_PostInfinity: 2 m_RotationOrder: 4 _maxWeight: 1 ---- !u!114 &6038665039104002591 +--- !u!114 &7065894658369251356 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1113,15 +1623,54 @@ MonoBehaviour: m_GameObject: {fileID: 6442339640571472327} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f8679dc9cec9324429dd9c3909e6cac3, type: 3} + m_Script: {fileID: 11500000, guid: 642f072a06af00f42b49882dbbda8521, type: 3} m_Name: m_EditorClassIdentifier: - _constraints: - - {fileID: 2594113019570505025} - _retargetingLayer: {fileID: 208026092} - _boneIdToTest: 45 + _skeleton: {fileID: 7866900989153904485} + _animator: {fileID: 4325497552437736820} + _rigBuilder: {fileID: 7335297518904446665} + _ovrSkeletonConstraints: + - {fileID: 520281171948095653} + - {fileID: 3289871368579812835} + - {fileID: 4457886994102197209} + _rebindAnimator: 1 + _reEnableRig: 1 + _rigToggleOnFocus: 0 + _retargetingLayer: {fileID: 7866900989153904485} + _checkSkeletalUpdatesByProxy: 1 +--- !u!114 &7335297518904446665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6442339640571472327} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fff0960ef4ea6e04eac66b4a7fd2189d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RigLayers: + - m_Rig: {fileID: 720078950} + m_Active: 1 + m_Effectors: [] +--- !u!114 &7819795630976784685 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6442339640571472327} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8359a52c8182ca247b2064624e74dffb, type: 3} + m_Name: + m_EditorClassIdentifier: + _constraints: [] + _retargetingLayer: {fileID: 7866900989153904485} + _boneIdToTest: 19 _headTransform: {fileID: 813562241272511791} - _autoAddTo: {fileID: 208026092} + _autoAddTo: {fileID: 7866900989153904485} _constraintsMinDistance: 0.2 _constraintsMaxDistance: 0.5 _blendCurve: @@ -1130,18 +1679,18 @@ MonoBehaviour: - serializedVersion: 3 time: 0 value: 0 - inSlope: 1 - outSlope: 1 - tangentMode: 34 + inSlope: 0 + outSlope: 0 + tangentMode: 0 weightedMode: 0 inWeight: 0 outWeight: 0 - serializedVersion: 3 time: 1 value: 1 - inSlope: 1 - outSlope: 1 - tangentMode: 34 + inSlope: 0 + outSlope: 0 + tangentMode: 0 weightedMode: 0 inWeight: 0 outWeight: 0 @@ -1149,7 +1698,7 @@ MonoBehaviour: m_PostInfinity: 2 m_RotationOrder: 4 _maxWeight: 1 ---- !u!114 &6483914532100646655 +--- !u!114 &7866900989153904485 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1158,42 +1707,162 @@ MonoBehaviour: m_GameObject: {fileID: 6442339640571472327} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e00344307bbe4d949bfcf8eddb0caf22, type: 3} + m_Script: {fileID: 11500000, guid: 31e3b6438933e1945a67ef8d4db811bf, type: 3} m_Name: m_EditorClassIdentifier: - _autoAddTo: {fileID: 208026092} + _skeletonType: 3 + _updateRootPose: 0 + _updateRootScale: 0 + _enablePhysicsCapsules: 0 + _applyBoneTranslations: 1 + _adjustments: + - Joint: 0 + PositionChange: {x: 0, y: 0, z: 0} + RotationChange: {x: 0.5, y: 0, z: 0, w: 0.8660254} + RotationTweaks: [] + DisableRotationTransform: 0 + DisablePositionTransform: 0 + FullBodyBoneIdOverrideValue: 85 + BoneIdOverrideValue: 71 + _fullBodySectionsToAlign: 0400000006000000050000000700000008000000090000000a0000000b00000000000000010000000200000003000000 + _bodySectionsToAlign: 0400000006000000050000000700000008000000090000000a0000000b000000 + _fullBodySectionToPosition: 0400000006000000050000000700000008000000090000000a0000000b00000000000000010000000200000003000000 + _bodySectionToPosition: 04000000060000000500000007000000080000000a0000000b000000 + _updateType: 1 + _applyAnimationConstraintsToCorrectedPositions: 1 + _enableTrackingByProxy: 1 + _retargetingAnimationConstraint: {fileID: 3289871368579812835} + _retargetingProcessors: + - {fileID: 11400000, guid: 15440560904a85846a7a4b75e1f7b96e, type: 2} + - {fileID: 11400000, guid: 8033477507feea54a9c44eb17a69be20, type: 2} + - {fileID: 11400000, guid: b47ca2dcc0aa6e34484b90e7122d3db4, type: 2} + _jointRotationTweaks: + - Joint: 17 + RotationTweaks: + - {x: 0, y: 0.42261827, z: 0, w: 0.90630776} + - {x: 0, y: 0, z: 0.1736483, w: -0.9848077} + - Joint: 18 + RotationTweaks: + - {x: 0, y: 0.42261827, z: 0, w: 0.90630776} + - {x: 0, y: 0, z: 0.1736483, w: -0.9848077} +--- !u!114 &8041379379990558817 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6442339640571472327} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e99c227ec21d72d45b36011069f2b263, type: 3} + m_Name: + m_EditorClassIdentifier: + _autoAddTo: {fileID: 7866900989153904485} _retargetedBoneTargets: - - HumanBodyBone: 17 - Target: {fileID: 583436289584067096} - - HumanBodyBone: 18 - Target: {fileID: 5868464488973929034} + - HumanBodyBone: 0 + Target: {fileID: 7587183840484842530} + - HumanBodyBone: 7 + Target: {fileID: 9220256087756010015} + - HumanBodyBone: 8 + Target: {fileID: 3762686855905044433} + - HumanBodyBone: 54 + Target: {fileID: 7149144802348253193} + - HumanBodyBone: 9 + Target: {fileID: 7277339581642933588} + - HumanBodyBone: 10 + Target: {fileID: 9174775783855746668} --- !u!4 &6575490107108777790 stripped Transform: m_CorrespondingSourceObject: {fileID: 8984739037707363565, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &6614107610704357342 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8951720307451501581, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} --- !u!4 &6698092073795100007 stripped Transform: m_CorrespondingSourceObject: {fileID: 8864358005623957172, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &6743035668138834372 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8819440954177323543, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7006316547460879866 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5101327286840946217, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} --- !u!4 &7049401827258888227 stripped Transform: m_CorrespondingSourceObject: {fileID: 5054270750810229744, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &7052923847903105770 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5049068702756301113, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7324593329673566154 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4780235892836191257, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7347710556476194970 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4758244557350992713, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} --- !u!4 &7606388188277981105 stripped Transform: m_CorrespondingSourceObject: {fileID: 5656433330203690082, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &7644225670764006185 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5612997358871523578, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7720621969630590991 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5536552466207327196, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8140801458842531684 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6271559552345033911, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} --- !u!4 &8362296397940282678 stripped Transform: m_CorrespondingSourceObject: {fileID: 6051775358866550501, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &8394124404083829141 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6020479611914883654, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8470191330660502023 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5943849666732716500, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} --- !u!4 &8568777009844315901 stripped Transform: m_CorrespondingSourceObject: {fileID: 5844133748634574126, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} m_PrefabInstance: {fileID: 2878048534688545747} m_PrefabAsset: {fileID: 0} +--- !u!4 &8702160152427063123 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6860294403975076992, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8978626515341356355 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6587249867207382672, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 2878048534688545747} + m_PrefabAsset: {fileID: 0} diff --git a/Samples/Prefabs/Retargeting/ArmatureSkinningUpdateRetargetUserUpperBody.prefab b/Samples/Prefabs/Retargeting/ArmatureSkinningUpdateRetargetUserUpperBody.prefab new file mode 100644 index 00000000..5a95d985 --- /dev/null +++ b/Samples/Prefabs/Retargeting/ArmatureSkinningUpdateRetargetUserUpperBody.prefab @@ -0,0 +1,1122 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &41237796 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 41237797} + m_Layer: 0 + m_Name: SpineLowerTarget + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &41237797 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41237796} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.039328, z: -0.014681594} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 388136805} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &388136803 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 388136805} + - component: {fileID: 388136804} + m_Layer: 0 + m_Name: Deformation + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &388136805 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 388136803} + 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: + - {fileID: 1653966953} + - {fileID: 41237797} + - {fileID: 1805178966} + - {fileID: 948545905} + - {fileID: 677977384} + - {fileID: 1977851119} + m_Father: {fileID: 1122120705} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &388136804 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 388136803} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb86b2c3f58d2d84c97a1b0a27b1a726, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Weight: 1 + m_Data: + _customSkeleton: {fileID: 0} + _animator: {fileID: 585457876304057424} + _spineTranslationCorrectionType: 3 + _spineLowerAlignmentWeight: 1 + _spineUpperAlignmentWeight: 0.5 + _chestAlignmentWeight: 0 + _leftShoulderWeight: 0.75 + _rightShoulderWeight: 0.75 + _leftArmWeight: 1 + _rightArmWeight: 1 + _leftHandWeight: 1 + _rightHandWeight: 1 + _hipsToHeadBones: + - {fileID: 3769253516756971525} + - {fileID: 972723851879224486} + - {fileID: 977098172415352281} + - {fileID: 3912735870831686328} + - {fileID: 4824162826205284313} + - {fileID: 4562970236519078923} + _hipsToHeadBoneTargets: + - {fileID: 1653966953} + - {fileID: 41237797} + - {fileID: 1805178966} + - {fileID: 948545905} + - {fileID: 677977384} + - {fileID: 1977851119} + _leftArmData: + ShoulderBone: {fileID: 3544633643260244702} + UpperArmBone: {fileID: 1405689208918275001} + LowerArmBone: {fileID: 8525588144871335425} + HandBone: {fileID: 4617438155049792530} + ShoulderLocalPos: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} + LowerArmToHandAxis: {x: -0.00000063156983, y: 1, z: 0.00000006974391} + _rightArmData: + ShoulderBone: {fileID: 7560647181254474819} + UpperArmBone: {fileID: 2683758638816182901} + LowerArmBone: {fileID: 51266213166630438} + HandBone: {fileID: 1622968437178530247} + ShoulderLocalPos: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} + LowerArmToHandAxis: {x: 0.00000004649566, y: -1, z: 0.0000000038746384} + _bonePairData: + - StartBone: {fileID: 3769253516756971525} + EndBone: {fileID: 972723851879224486} + Distance: 0.058242228 + HeightProportion: 0.09043276 + LimbProportion: 0.09043276 + - StartBone: {fileID: 972723851879224486} + EndBone: {fileID: 977098172415352281} + Distance: 0.10340428 + HeightProportion: 0.16055593 + LimbProportion: 0.16055593 + - StartBone: {fileID: 977098172415352281} + EndBone: {fileID: 3912735870831686328} + Distance: 0.10340428 + HeightProportion: 0.16055593 + LimbProportion: 0.16055593 + - StartBone: {fileID: 3912735870831686328} + EndBone: {fileID: 4824162826205284313} + Distance: 0.25151414 + HeightProportion: 0.39052624 + LimbProportion: 0.39052624 + - StartBone: {fileID: 4824162826205284313} + EndBone: {fileID: 4562970236519078923} + Distance: 0.12747405 + HeightProportion: 0.19792908 + LimbProportion: 0.19792908 + - StartBone: {fileID: 3912735870831686328} + EndBone: {fileID: 3544633643260244702} + Distance: 0.19169338 + HeightProportion: 0 + LimbProportion: 0 + - StartBone: {fileID: 3912735870831686328} + EndBone: {fileID: 7560647181254474819} + Distance: 0.19169505 + HeightProportion: 0 + LimbProportion: 0 + - StartBone: {fileID: 3544633643260244702} + EndBone: {fileID: 1405689208918275001} + Distance: 0.16743496 + HeightProportion: 0 + LimbProportion: 0 + - StartBone: {fileID: 7560647181254474819} + EndBone: {fileID: 2683758638816182901} + Distance: 0.1674343 + HeightProportion: 0 + LimbProportion: 0 + - StartBone: {fileID: 1405689208918275001} + EndBone: {fileID: 8525588144871335425} + Distance: 0.28508076 + HeightProportion: 0 + LimbProportion: 0 + - StartBone: {fileID: 2683758638816182901} + EndBone: {fileID: 51266213166630438} + Distance: 0.28508505 + HeightProportion: 0 + LimbProportion: 0 + - StartBone: {fileID: 8525588144871335425} + EndBone: {fileID: 4617438155049792530} + Distance: 0.24036232 + HeightProportion: 0 + LimbProportion: 0 + - StartBone: {fileID: 51266213166630438} + EndBone: {fileID: 1622968437178530247} + Distance: 0.24036375 + HeightProportion: 0 + LimbProportion: 0 + _startingScale: {x: 1, y: 1, z: 1} + _hipsToHeadDistance: 0.64403903 +--- !u!1 &677977383 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 677977384} + m_Layer: 0 + m_Name: NeckTarget + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &677977384 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 677977383} + m_LocalRotation: {x: 0.060688358, y: -0, z: -0, w: 0.9981568} + m_LocalPosition: {x: 0, y: 1.4971831, z: -0.030011175} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 388136805} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &948545904 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 948545905} + m_Layer: 0 + m_Name: ChestTarget + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &948545905 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 948545904} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.2461365, z: -0.014681594} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 388136805} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1122120704 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1122120705} + - component: {fileID: 1122120706} + m_Layer: 0 + m_Name: Rig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1122120705 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1122120704} + 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: + - {fileID: 1786491909873928961} + - {fileID: 478076298790879100} + - {fileID: 1412995356} + - {fileID: 388136805} + m_Father: {fileID: 63731746210207621} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1122120706 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1122120704} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70b342d8ce5c2fd48b8fa3147d48d1d1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Weight: 1 + m_Effectors: [] +--- !u!1 &1412995355 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1412995356} + - component: {fileID: 1412995357} + m_Layer: 0 + m_Name: RetargetingConstraint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &1412995356 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1412995355} + 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: 1122120705} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1412995357 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1412995355} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d65fffb91be5d7446a2921b8a1bda1ae, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Weight: 1 + m_Data: + _retargetingLayer: {fileID: 1280450773} + _allowDynamicAdjustmentsRuntime: 1 + _avatarMask: {fileID: 0} +--- !u!1 &1653966952 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1653966953} + m_Layer: 0 + m_Name: HipsTarget + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1653966953 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1653966952} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.9810986, z: -0.01590455} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 388136805} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1805178965 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1805178966} + m_Layer: 0 + m_Name: SpineUpperTarget + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1805178966 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1805178965} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.1427323, z: -0.014681594} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 388136805} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1977851118 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1977851119} + m_Layer: 0 + m_Name: HeadTarget + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1977851119 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977851118} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.6237181, z: -0.014567317} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 388136805} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4820322356105404079 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6810243515838900540} + m_Layer: 0 + m_Name: RightFootTarget + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6810243515838900540 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4820322356105404079} + m_LocalRotation: {x: -0, y: 0.05064953, z: -0.000000006024493, w: 0.99871653} + m_LocalPosition: {x: 0.11543691, y: -0.87920296, z: -0.043957256} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3769253516756971525} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5818404351995240304 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1786491909873928961} + - component: {fileID: 7659827762101700130} + m_Layer: 0 + m_Name: StraightenLeftLeg + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1786491909873928961 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5818404351995240304} + 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: 1122120705} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7659827762101700130 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5818404351995240304} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aeda7bfbf984f2a4da5ab4b8967b115d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Weight: 1 + m_Data: + m_Root: {fileID: 6744111909174812309} + m_Mid: {fileID: 8023271195216576026} + m_Tip: {fileID: 713121887241261418} + m_Target: {fileID: 7989201138653081976} + m_Hint: {fileID: 0} + m_TargetPositionWeight: 1 + m_TargetRotationWeight: 1 + m_HintWeight: 1 + m_MaintainTargetPositionOffset: 0 + m_MaintainTargetRotationOffset: 0 +--- !u!1 &6786677909684648780 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7989201138653081976} + m_Layer: 0 + m_Name: LeftFootTarget + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7989201138653081976 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6786677909684648780} + m_LocalRotation: {x: 0.9987165, y: 0.0000000055879354, z: 0.05064953, w: 5.820766e-11} + m_LocalPosition: {x: -0.11543727, y: -0.87920326, z: -0.043957252} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3769253516756971525} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8042623355478229157 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 478076298790879100} + - component: {fileID: 6518872729690528950} + m_Layer: 0 + m_Name: StraightenRightLeg + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &478076298790879100 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8042623355478229157} + 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: 1122120705} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6518872729690528950 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8042623355478229157} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aeda7bfbf984f2a4da5ab4b8967b115d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Weight: 1 + m_Data: + m_Root: {fileID: 6182376113165095175} + m_Mid: {fileID: 4226968543005296691} + m_Tip: {fileID: 1541957764070846035} + m_Target: {fileID: 6810243515838900540} + m_Hint: {fileID: 0} + m_TargetPositionWeight: 1 + m_TargetRotationWeight: 1 + m_HintWeight: 1 + m_MaintainTargetPositionOffset: 0 + m_MaintainTargetRotationOffset: 0 +--- !u!1001 &1434491218122775287 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 298533062856023420, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.x + value: -0.0044382317 + objectReference: {fileID: 0} + - target: {fileID: 298533062856023420, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.y + value: -0.07288166 + objectReference: {fileID: 0} + - target: {fileID: 298533062856023420, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.z + value: 0.029358588 + objectReference: {fileID: 0} + - target: {fileID: 649929397234160867, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.x + value: 0.009525538 + objectReference: {fileID: 0} + - target: {fileID: 649929397234160867, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.y + value: 0.081615545 + objectReference: {fileID: 0} + - target: {fileID: 649929397234160867, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.z + value: -0.01224239 + objectReference: {fileID: 0} + - target: {fileID: 1371976685920341362, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1371976685920341362, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.x + value: 1.85 + objectReference: {fileID: 0} + - target: {fileID: 1371976685920341362, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1371976685920341362, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1371976685920341362, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1371976685920341362, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1371976685920341362, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1371976685920341362, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1371976685920341362, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1371976685920341362, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1371976685920341362, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2136921240105483057, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.x + value: -0.009527459 + objectReference: {fileID: 0} + - target: {fileID: 2136921240105483057, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.y + value: -0.08161424 + objectReference: {fileID: 0} + - target: {fileID: 2136921240105483057, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.z + value: 0.012242139 + objectReference: {fileID: 0} + - target: {fileID: 2566856678452017287, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.x + value: -0.007822358 + objectReference: {fileID: 0} + - target: {fileID: 2566856678452017287, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.y + value: -0.091839485 + objectReference: {fileID: 0} + - target: {fileID: 2566856678452017287, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.z + value: -0.026574552 + objectReference: {fileID: 0} + - target: {fileID: 2678034675711006221, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.x + value: 0.01284784 + objectReference: {fileID: 0} + - target: {fileID: 2678034675711006221, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.y + value: 0.086097755 + objectReference: {fileID: 0} + - target: {fileID: 2678034675711006221, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.z + value: 0.003435417 + objectReference: {fileID: 0} + - target: {fileID: 4596122834257617896, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.x + value: -0.00000007078049 + objectReference: {fileID: 0} + - target: {fileID: 4596122834257617896, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.y + value: 0.24036232 + objectReference: {fileID: 0} + - target: {fileID: 4596122834257617896, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.z + value: 0.000000016763806 + objectReference: {fileID: 0} + - target: {fileID: 4741563609192783373, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.x + value: -0.00000004563479 + objectReference: {fileID: 0} + - target: {fileID: 4741563609192783373, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.y + value: -0.24036391 + objectReference: {fileID: 0} + - target: {fileID: 4741563609192783373, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.z + value: 0.000000028870996 + objectReference: {fileID: 0} + - target: {fileID: 4849444477218521423, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.x + value: 0.004436876 + objectReference: {fileID: 0} + - target: {fileID: 4849444477218521423, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.y + value: 0.072881624 + objectReference: {fileID: 0} + - target: {fileID: 4849444477218521423, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.z + value: -0.029359037 + objectReference: {fileID: 0} + - target: {fileID: 7884909160733160561, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.x + value: -0.012848596 + objectReference: {fileID: 0} + - target: {fileID: 7884909160733160561, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.y + value: -0.08609787 + objectReference: {fileID: 0} + - target: {fileID: 7884909160733160561, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.z + value: -0.0034359773 + objectReference: {fileID: 0} + - target: {fileID: 8911350578850176258, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.x + value: -0.009848176 + objectReference: {fileID: 0} + - target: {fileID: 8911350578850176258, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.y + value: -0.047670566 + objectReference: {fileID: 0} + - target: {fileID: 8911350578850176258, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_LocalPosition.z + value: -0.04101276 + objectReference: {fileID: 0} + - target: {fileID: 9121803696401781268, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_Name + value: ArmatureSkinningUpdateRetargetUserUpperBody + objectReference: {fileID: 0} + - target: {fileID: 9121803696401781268, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} +--- !u!4 &51266213166630438 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1395680962295553233, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &63731746210207621 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1371976685920341362, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!95 &585457876304057424 stripped +Animator: + m_CorrespondingSourceObject: {fileID: 2015256377725734567, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &713121887241261418 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1877388331611999133, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &972723851879224486 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2204398875919224401, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &977098172415352281 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2190737017092966190, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1405689208918275001 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 29929578043304270, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1541957764070846035 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 472442842363016356, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1622968437178530247 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 391152466220180272, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2683758638816182901 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3951616662085982338, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3544633643260244702 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2511117075805431849, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3769253516756971525 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2857325278740409074, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3912735870831686328 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2712436511663056975, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4226968543005296691 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2972766455213642436, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4562970236519078923 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3223094540932368124, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4617438155049792530 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6051775358866550501, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4824162826205284313 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5844133748634574126, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6182376113165095175 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5054270750810229744, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6744111909174812309 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5656433330203690082, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7560647181254474819 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8864358005623957172, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!1 &7890163646267885795 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9121803696401781268, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1280450767 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7890163646267885795} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 642f072a06af00f42b49882dbbda8521, type: 3} + m_Name: + m_EditorClassIdentifier: + _skeleton: {fileID: 1280450773} + _animator: {fileID: 585457876304057424} + _rigBuilder: {fileID: 1280450771} + _ovrSkeletonConstraints: + - {fileID: 1412995357} + - {fileID: 388136804} + _rebindAnimator: 1 + _reEnableRig: 1 + _rigToggleOnFocus: 0 + _retargetingLayer: {fileID: 1280450773} + _checkSkeletalUpdatesByProxy: 1 +--- !u!114 &1280450768 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7890163646267885795} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8679dc9cec9324429dd9c3909e6cac3, type: 3} + m_Name: + m_EditorClassIdentifier: + _constraints: [] + _retargetingLayer: {fileID: 1280450773} + _boneIdToTest: 45 + _headTransform: {fileID: 4562970236519078923} + _autoAddTo: {fileID: 1280450773} + _constraintsMinDistance: 0.2 + _constraintsMaxDistance: 0.5 + _blendCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _maxWeight: 1 +--- !u!114 &1280450769 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7890163646267885795} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8679dc9cec9324429dd9c3909e6cac3, type: 3} + m_Name: + m_EditorClassIdentifier: + _constraints: [] + _retargetingLayer: {fileID: 1280450773} + _boneIdToTest: 19 + _headTransform: {fileID: 4562970236519078923} + _autoAddTo: {fileID: 1280450773} + _constraintsMinDistance: 0.2 + _constraintsMaxDistance: 0.5 + _blendCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _maxWeight: 1 +--- !u!114 &1280450770 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7890163646267885795} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e00344307bbe4d949bfcf8eddb0caf22, type: 3} + m_Name: + m_EditorClassIdentifier: + _autoAddTo: {fileID: 1280450773} + _retargetedBoneTargets: + - HumanBodyBone: 0 + Target: {fileID: 1653966953} + - HumanBodyBone: 7 + Target: {fileID: 41237797} + - HumanBodyBone: 8 + Target: {fileID: 1805178966} + - HumanBodyBone: 54 + Target: {fileID: 948545905} + - HumanBodyBone: 9 + Target: {fileID: 677977384} + - HumanBodyBone: 10 + Target: {fileID: 1977851119} +--- !u!114 &1280450771 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7890163646267885795} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fff0960ef4ea6e04eac66b4a7fd2189d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RigLayers: + - m_Rig: {fileID: 1122120706} + m_Active: 1 + m_Effectors: [] +--- !u!114 &1280450772 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7890163646267885795} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 274835e4e2feae04b87f0d000555f8a4, type: 3} + m_Name: + m_EditorClassIdentifier: + _providedSkeletonType: 0 +--- !u!114 &1280450773 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7890163646267885795} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31e3b6438933e1945a67ef8d4db811bf, type: 3} + m_Name: + m_EditorClassIdentifier: + _skeletonType: 2 + _updateRootPose: 0 + _updateRootScale: 0 + _enablePhysicsCapsules: 0 + _applyBoneTranslations: 1 + _adjustments: + - Joint: 0 + PositionChange: {x: 0, y: 0, z: 0} + RotationChange: {x: 0.5, y: 0, z: 0, w: 0.8660254} + RotationTweaks: [] + DisableRotationTransform: 0 + DisablePositionTransform: 0 + FullBodyBoneIdOverrideValue: 85 + BoneIdOverrideValue: 71 + _fullBodySectionsToAlign: 0400000006000000050000000700000008000000090000000a0000000b00000000000000010000000200000003000000 + _bodySectionsToAlign: 0400000006000000050000000700000008000000090000000a0000000b000000 + _fullBodySectionToPosition: 04000000060000000500000007000000080000000a0000000b00000000000000010000000200000003000000 + _bodySectionToPosition: 0400000006000000050000000700000008000000090000000a0000000b000000 + _updateType: 1 + _applyAnimationConstraintsToCorrectedPositions: 1 + _enableTrackingByProxy: 1 + _retargetingAnimationConstraint: {fileID: 1412995357} + _retargetingProcessors: + - {fileID: 11400000, guid: 15440560904a85846a7a4b75e1f7b96e, type: 2} + - {fileID: 11400000, guid: 8033477507feea54a9c44eb17a69be20, type: 2} + - {fileID: 11400000, guid: b47ca2dcc0aa6e34484b90e7122d3db4, type: 2} + _jointRotationTweaks: [] +--- !u!4 &8023271195216576026 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8984739037707363565, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8525588144871335425 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7329800906561977590, guid: 4d1160b6537bb3e42802d3a5219e72c4, type: 3} + m_PrefabInstance: {fileID: 1434491218122775287} + m_PrefabAsset: {fileID: 0} diff --git a/Samples/Prefabs/Retargeting/ArmatureSkinningUpdateRetargetUserUpperBody.prefab.meta b/Samples/Prefabs/Retargeting/ArmatureSkinningUpdateRetargetUserUpperBody.prefab.meta new file mode 100644 index 00000000..91825897 --- /dev/null +++ b/Samples/Prefabs/Retargeting/ArmatureSkinningUpdateRetargetUserUpperBody.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9085bb280872b4a488fbe0addf928ee7 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Prefabs/UI/RetargetingMenu.prefab b/Samples/Prefabs/UI/RetargetingMenu.prefab index 00146c61..cd0244c6 100644 --- a/Samples/Prefabs/UI/RetargetingMenu.prefab +++ b/Samples/Prefabs/UI/RetargetingMenu.prefab @@ -259,38 +259,6 @@ Transform: m_Father: {fileID: 194819018211418997} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &872111951155325370 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6621160322830769724} - m_Layer: 0 - m_Name: Visuals - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6621160322830769724 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 872111951155325370} - 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: - - {fileID: 1169784719407294224} - m_Father: {fileID: 3676727503918658921} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &884186622139581879 GameObject: m_ObjectHideFlags: 0 @@ -368,7 +336,7 @@ MonoBehaviour: m_EditorClassIdentifier: _position: {x: 0, y: 0, z: 0} _size: {x: 3, y: 1, z: 1} ---- !u!1 &1044829674716633490 +--- !u!1 &1278558608965080183 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -376,29 +344,282 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5516519308894108221} + - component: {fileID: 3428445458957398331} + - component: {fileID: 1439991897071983908} + - component: {fileID: 5599344650878878703} m_Layer: 0 - m_Name: Model + m_Name: Add Rigged Robot Constraints + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3428445458957398331 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1278558608965080183} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.07, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2962082793124004268} + - {fileID: 5458924027632475729} + - {fileID: 7977031090338279666} + m_Father: {fileID: 4755192900336154934} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1439991897071983908 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1278558608965080183} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317e663e2bb60ea408fe22b908b59295, type: 3} + m_Name: + m_EditorClassIdentifier: + _interactorFilters: [] + _maxInteractors: -1 + _maxSelectingInteractors: -1 + _data: {fileID: 0} + _pointableElement: {fileID: 0} + _surfacePatch: {fileID: 1198025842780766555} + _enterHoverNormal: 0.01 + _enterHoverTangent: 0 + _exitHoverNormal: 0.05 + _exitHoverTangent: 0 + _cancelSelectNormal: 0.1 + _cancelSelectTangent: 0.03 + _minThresholds: + Enabled: 0 + MinNormal: 0.01 + _dragThresholds: + Enabled: 1 + DragNormal: 0.01 + DragTangent: 0.01 + DragEaseCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.05 + _positionPinning: + Enabled: 0 + MaxPinDistance: 0 + PinningEaseCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ResyncCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.2 + _recoilAssist: + Enabled: 0 + UseDynamicDecay: 0 + DynamicDecayCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 50 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9 + value: 0.5 + inSlope: -47 + outSlope: -47 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + UseVelocityExpansion: 0 + VelocityExpansionMinSpeed: 0.4 + VelocityExpansionMaxSpeed: 1.4 + VelocityExpansionDistance: 0.055 + VelocityExpansionDecayRate: 0.125 + ExitDistance: 0.02 + ReEnterDistance: 0.02 + _closeDistanceThreshold: 0.001 + _tiebreakerScore: 0 +--- !u!114 &5599344650878878703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1278558608965080183} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e2f8f6e9e6f3e114b9bf9a57c2160615, type: 3} + m_Name: + m_EditorClassIdentifier: + _pointable: {fileID: 1439991897071983908} + _whenRelease: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1850453743319247403} + m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples + m_MethodName: PlayAudio + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 4755192900336154933} + m_TargetAssemblyTypeName: Oculus.Movement.UI.RetargetingMenu, Meta.Movement + m_MethodName: AddRiggedRetargetedCharacterWithConstraints + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + _whenHover: + m_PersistentCalls: + m_Calls: [] + _whenUnhover: + m_PersistentCalls: + m_Calls: [] + _whenSelect: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6235965862014387597} + m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples + m_MethodName: PlayAudio + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + _whenUnselect: + m_PersistentCalls: + m_Calls: [] + _whenMove: + m_PersistentCalls: + m_Calls: [] + _whenCancel: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1702556641685069118 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7977031090338279666} + m_Layer: 0 + m_Name: Audio m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &5516519308894108221 +--- !u!4 &7977031090338279666 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1044829674716633490} + m_GameObject: {fileID: 1702556641685069118} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -0, z: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 8438990253971939993} - m_Father: {fileID: 3676727503918658921} - m_RootOrder: 0 + - {fileID: 2478525439814570719} + - {fileID: 5484211908585441615} + m_Father: {fileID: 3428445458957398331} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1840962726374405267 GameObject: @@ -736,7 +957,7 @@ MonoBehaviour: m_EditorClassIdentifier: _position: {x: 0, y: 0, z: 0} _size: {x: 3, y: 1, z: 1} ---- !u!1 &2098668741582178354 +--- !u!1 &2134073342409106288 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -744,41 +965,118 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2118789282557059747} - - component: {fileID: 3805535432188007503} - - component: {fileID: 4257675475786484633} + - component: {fileID: 1797260609389014227} + - component: {fileID: 865348305720758304} + - component: {fileID: 1198025842780766555} + - component: {fileID: 621182220868049171} m_Layer: 0 - m_Name: BasicPokeButtonReleaseAudio + m_Name: Surface m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &2118789282557059747 +--- !u!4 &1797260609389014227 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2098668741582178354} + m_GameObject: {fileID: 2134073342409106288} 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: 1828881643105883298} - m_RootOrder: 1 + m_Father: {fileID: 2962082793124004268} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!82 &3805535432188007503 -AudioSource: +--- !u!114 &865348305720758304 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2098668741582178354} + m_GameObject: {fileID: 2134073342409106288} m_Enabled: 1 - serializedVersion: 4 - OutputAudioMixerGroup: {fileID: 0} + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9cf2a74d69b1c1e41916d2a7afdff5be, type: 3} + m_Name: + m_EditorClassIdentifier: + _facing: 0 + _doubleSided: 1 +--- !u!114 &1198025842780766555 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2134073342409106288} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: efd927768041afd4d90e5d822283f0f4, type: 3} + m_Name: + m_EditorClassIdentifier: + _planeSurface: {fileID: 865348305720758304} + _clippers: + - {fileID: 621182220868049171} +--- !u!114 &621182220868049171 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2134073342409106288} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e08ab46e8fb05dc46b34e54466dc11e3, type: 3} + m_Name: + m_EditorClassIdentifier: + _position: {x: 0, y: 0, z: 0} + _size: {x: 3, y: 1, z: 1} +--- !u!1 &2882098382300715993 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2478525439814570719} + - component: {fileID: 3161992971885771948} + - component: {fileID: 6235965862014387597} + m_Layer: 0 + m_Name: BasicPokeButtonPressAudio + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2478525439814570719 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2882098382300715993} + 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: 7977031090338279666} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!82 &3161992971885771948 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2882098382300715993} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} m_audioClip: {fileID: 0} m_PlayOnAwake: 0 m_Volume: 1 @@ -865,13 +1163,13 @@ AudioSource: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 ---- !u!114 &4257675475786484633 +--- !u!114 &6235965862014387597 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2098668741582178354} + m_GameObject: {fileID: 2882098382300715993} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 925ef87c5bafc37469a2f7ec825dee4b, type: 3} @@ -879,7 +1177,7 @@ MonoBehaviour: m_EditorClassIdentifier: _audioSource: {fileID: 0} _audioClips: - - {fileID: 8300000, guid: aebed88a33938c74f80e53b1386c2034, type: 3} + - {fileID: 8300000, guid: 56fe077fa3d84f24c951589f5d187be2, type: 3} _volume: 0.5 _volumeRandomization: _useRandomRange: 0 @@ -894,7 +1192,7 @@ MonoBehaviour: _loop: 0 _chanceToPlay: 100 _playOnStart: 0 ---- !u!1 &2395704260595574754 +--- !u!1 &3479893511335060230 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -902,171 +1200,56 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 4318127394589348713} - - component: {fileID: 8787482267840042597} - - component: {fileID: 6693447037349402093} + - component: {fileID: 9108726194356657344} + - component: {fileID: 1960431897217229066} + - component: {fileID: 1729463182598030769} m_Layer: 0 - m_Name: Text (TMP) + m_Name: ButtonVisual m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &4318127394589348713 -RectTransform: +--- !u!4 &9108726194356657344 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2395704260595574754} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.001} - m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_GameObject: {fileID: 3479893511335060230} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.2} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1169784719407294224} - m_RootOrder: 1 + m_Children: + - {fileID: 4227210653647702704} + - {fileID: 6178457975552649401} + m_Father: {fileID: 3868676794485974508} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 30, y: 5} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!23 &8787482267840042597 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2395704260595574754} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: -5839354330806206608, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!114 &6693447037349402093 +--- !u!114 &1960431897217229066 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2395704260595574754} + m_GameObject: {fileID: 3479893511335060230} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Script: {fileID: 11500000, guid: 0b3b3f04ac18184468bedd999e5a6688, type: 3} m_Name: m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Add Animation Rigged Robot - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} - m_sharedMaterial: {fileID: -5839354330806206608, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 32 - m_fontSizeBase: 32 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 0 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - _SortingLayer: 0 - _SortingLayerID: 0 - _SortingOrder: 0 - m_hasFontAssetChanged: 0 - m_renderer: {fileID: 8787482267840042597} - m_maskType: 0 ---- !u!1 &3101356872290809016 + _pokeInteractable: {fileID: 6109289713368551864} + _buttonBaseTransform: {fileID: 1967523122632726857} +--- !u!33 &1729463182598030769 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3479893511335060230} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &4363877779481063049 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1074,9 +1257,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 3130758330668228137} - - component: {fileID: 205540423909664965} - - component: {fileID: 937750327430592275} + - component: {fileID: 5929627731669475948} + - component: {fileID: 2658503672041476402} + - component: {fileID: 2231742236105525644} m_Layer: 0 m_Name: BasicPokeButtonPressAudio m_TagString: Untagged @@ -1084,28 +1267,28 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &3130758330668228137 +--- !u!4 &5929627731669475948 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3101356872290809016} + m_GameObject: {fileID: 4363877779481063049} 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: 1828881643105883298} + m_Father: {fileID: 2502071832118734611} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!82 &205540423909664965 +--- !u!82 &2658503672041476402 AudioSource: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3101356872290809016} + m_GameObject: {fileID: 4363877779481063049} m_Enabled: 1 serializedVersion: 4 OutputAudioMixerGroup: {fileID: 0} @@ -1195,13 +1378,13 @@ AudioSource: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 ---- !u!114 &937750327430592275 +--- !u!114 &2231742236105525644 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3101356872290809016} + m_GameObject: {fileID: 4363877779481063049} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 925ef87c5bafc37469a2f7ec825dee4b, type: 3} @@ -1224,7 +1407,7 @@ MonoBehaviour: _loop: 0 _chanceToPlay: 100 _playOnStart: 0 ---- !u!1 &3479893511335060230 +--- !u!1 &4675067971951201953 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1232,98 +1415,41 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 9108726194356657344} - - component: {fileID: 1960431897217229066} - - component: {fileID: 1729463182598030769} + - component: {fileID: 194819018211418997} + - component: {fileID: 3332566153571542050} + - component: {fileID: 3251139294588466155} m_Layer: 0 - m_Name: ButtonVisual + m_Name: RemoveLast m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &9108726194356657344 +--- !u!4 &194819018211418997 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3479893511335060230} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.2} - m_LocalScale: {x: 1, y: 1, z: 1} + m_GameObject: {fileID: 4675067971951201953} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 4227210653647702704} - - {fileID: 6178457975552649401} - m_Father: {fileID: 3868676794485974508} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1960431897217229066 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3479893511335060230} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0b3b3f04ac18184468bedd999e5a6688, type: 3} - m_Name: - m_EditorClassIdentifier: - _pokeInteractable: {fileID: 6109289713368551864} - _buttonBaseTransform: {fileID: 1967523122632726857} ---- !u!33 &1729463182598030769 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3479893511335060230} - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &3676727503918658920 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3676727503918658921} - - component: {fileID: 4223203923031812712} - - component: {fileID: 4142856143600608224} - m_Layer: 0 - m_Name: Add Rigged Robot - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3676727503918658921 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3676727503918658920} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.07, z: 0} - m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 5516519308894108221} - - {fileID: 6621160322830769724} - - {fileID: 1828881643105883298} + - {fileID: 7706727491920732236} + - {fileID: 9107794898092211047} + - {fileID: 2502071832118734611} m_Father: {fileID: 4755192900336154934} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &4223203923031812712 +--- !u!114 &3332566153571542050 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3676727503918658920} + m_GameObject: {fileID: 4675067971951201953} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 317e663e2bb60ea408fe22b908b59295, type: 3} @@ -1334,7 +1460,7 @@ MonoBehaviour: _maxSelectingInteractors: -1 _data: {fileID: 0} _pointableElement: {fileID: 0} - _surfacePatch: {fileID: 4803727101265788734} + _surfacePatch: {fileID: 4020707738441964073} _enterHoverNormal: 0.01 _enterHoverTangent: 0 _exitHoverNormal: 0.05 @@ -1377,29 +1503,109 @@ MonoBehaviour: _positionPinning: Enabled: 0 MaxPinDistance: 0 + PinningEaseCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ResyncCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.2 _recoilAssist: Enabled: 0 + UseDynamicDecay: 0 + DynamicDecayCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 50 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9 + value: 0.5 + inSlope: -47 + outSlope: -47 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + UseVelocityExpansion: 0 + VelocityExpansionMinSpeed: 0.4 + VelocityExpansionMaxSpeed: 1.4 + VelocityExpansionDistance: 0.055 + VelocityExpansionDecayRate: 0.125 ExitDistance: 0.02 ReEnterDistance: 0.02 _closeDistanceThreshold: 0.001 _tiebreakerScore: 0 ---- !u!114 &4142856143600608224 +--- !u!114 &3251139294588466155 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3676727503918658920} + m_GameObject: {fileID: 4675067971951201953} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: e2f8f6e9e6f3e114b9bf9a57c2160615, type: 3} m_Name: m_EditorClassIdentifier: - _pointable: {fileID: 4223203923031812712} + _pointable: {fileID: 3332566153571542050} _whenRelease: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 4257675475786484633} + - m_Target: {fileID: 906698699010387789} m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples m_MethodName: PlayAudio m_Mode: 1 @@ -1413,7 +1619,7 @@ MonoBehaviour: m_CallState: 2 - m_Target: {fileID: 4755192900336154933} m_TargetAssemblyTypeName: Oculus.Movement.Samples.RetargetingMenu, Assembly-CSharp - m_MethodName: AddRiggedRetargetedCharacter + m_MethodName: RemoveLastCharacter m_Mode: 1 m_Arguments: m_ObjectArgument: {fileID: 0} @@ -1432,7 +1638,7 @@ MonoBehaviour: _whenSelect: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 937750327430592275} + - m_Target: {fileID: 2231742236105525644} m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples m_MethodName: PlayAudio m_Mode: 1 @@ -1453,7 +1659,7 @@ MonoBehaviour: _whenCancel: m_PersistentCalls: m_Calls: [] ---- !u!1 &4363877779481063049 +--- !u!1 &4755192900336154932 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1461,381 +1667,49 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5929627731669475948} - - component: {fileID: 2658503672041476402} - - component: {fileID: 2231742236105525644} + - component: {fileID: 4755192900336154934} + - component: {fileID: 4755192900336154933} m_Layer: 0 - m_Name: BasicPokeButtonPressAudio + m_Name: RetargetingMenu m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &5929627731669475948 +--- !u!4 &4755192900336154934 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4363877779481063049} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 4755192900336154932} + m_LocalRotation: {x: 0.09229593, y: -0.7010574, z: 0.09229593, w: 0.7010574} + m_LocalPosition: {x: -0.84, y: 1.223, z: 0.103} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2502071832118734611} + m_Children: + - {fileID: 1392910777745800631} + - {fileID: 6725289421763366585} + - {fileID: 3428445458957398331} + - {fileID: 194819018211418997} + m_Father: {fileID: 0} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!82 &2658503672041476402 -AudioSource: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4363877779481063049} - m_Enabled: 1 - serializedVersion: 4 - OutputAudioMixerGroup: {fileID: 0} - m_audioClip: {fileID: 0} - m_PlayOnAwake: 0 - m_Volume: 1 - m_Pitch: 1 - Loop: 0 - Mute: 0 - Spatialize: 0 - SpatializePostEffects: 0 - Priority: 128 - DopplerLevel: 1 - MinDistance: 1 - MaxDistance: 500 - Pan2D: 0 - rolloffMode: 0 - BypassEffects: 0 - BypassListenerEffects: 0 - BypassReverbZones: 0 - rolloffCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - panLevelCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - spreadCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - reverbZoneMixCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 ---- !u!114 &2231742236105525644 + m_LocalEulerAnglesHint: {x: 15, y: -90, z: 0} +--- !u!114 &4755192900336154933 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4363877779481063049} + m_GameObject: {fileID: 4755192900336154932} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 925ef87c5bafc37469a2f7ec825dee4b, type: 3} - m_Name: - m_EditorClassIdentifier: - _audioSource: {fileID: 0} - _audioClips: - - {fileID: 8300000, guid: 56fe077fa3d84f24c951589f5d187be2, type: 3} - _volume: 0.5 - _volumeRandomization: - _useRandomRange: 0 - _min: 0 - _max: 0 - _pitch: 1 - _pitchRandomization: - _useRandomRange: 0 - _min: 0 - _max: 0 - _spatialize: 1 - _loop: 0 - _chanceToPlay: 100 - _playOnStart: 0 ---- !u!1 &4675067971951201953 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 194819018211418997} - - component: {fileID: 3332566153571542050} - - component: {fileID: 3251139294588466155} - m_Layer: 0 - m_Name: RemoveLast - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &194819018211418997 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4675067971951201953} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0} - m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 7706727491920732236} - - {fileID: 9107794898092211047} - - {fileID: 2502071832118734611} - m_Father: {fileID: 4755192900336154934} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &3332566153571542050 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4675067971951201953} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 317e663e2bb60ea408fe22b908b59295, type: 3} - m_Name: - m_EditorClassIdentifier: - _interactorFilters: [] - _maxInteractors: -1 - _maxSelectingInteractors: -1 - _data: {fileID: 0} - _pointableElement: {fileID: 0} - _surfacePatch: {fileID: 4020707738441964073} - _enterHoverNormal: 0.01 - _enterHoverTangent: 0 - _exitHoverNormal: 0.05 - _exitHoverTangent: 0 - _cancelSelectNormal: 0.1 - _cancelSelectTangent: 0.03 - _minThresholds: - Enabled: 0 - MinNormal: 0.01 - _dragThresholds: - Enabled: 1 - DragNormal: 0.01 - DragTangent: 0.01 - DragEaseCurve: - _animationCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - _animationLength: 0.05 - _positionPinning: - Enabled: 0 - MaxPinDistance: 0 - _recoilAssist: - Enabled: 0 - ExitDistance: 0.02 - ReEnterDistance: 0.02 - _closeDistanceThreshold: 0.001 - _tiebreakerScore: 0 ---- !u!114 &3251139294588466155 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4675067971951201953} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e2f8f6e9e6f3e114b9bf9a57c2160615, type: 3} - m_Name: - m_EditorClassIdentifier: - _pointable: {fileID: 3332566153571542050} - _whenRelease: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 906698699010387789} - m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples - m_MethodName: PlayAudio - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 4755192900336154933} - m_TargetAssemblyTypeName: Oculus.Movement.Samples.RetargetingMenu, Assembly-CSharp - m_MethodName: RemoveLastCharacter - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - _whenHover: - m_PersistentCalls: - m_Calls: [] - _whenUnhover: - m_PersistentCalls: - m_Calls: [] - _whenSelect: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 2231742236105525644} - m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples - m_MethodName: PlayAudio - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - _whenUnselect: - m_PersistentCalls: - m_Calls: [] - _whenMove: - m_PersistentCalls: - m_Calls: [] - _whenCancel: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &4755192900336154932 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4755192900336154934} - - component: {fileID: 4755192900336154933} - m_Layer: 0 - m_Name: RetargetingMenu - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4755192900336154934 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4755192900336154932} - m_LocalRotation: {x: 0.09229593, y: -0.7010574, z: 0.09229593, w: 0.7010574} - m_LocalPosition: {x: -0.84, y: 1.223, z: 0.103} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1392910777745800631} - - {fileID: 6725289421763366585} - - {fileID: 3676727503918658921} - - {fileID: 194819018211418997} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 15, y: -90, z: 0} ---- !u!114 &4755192900336154933 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4755192900336154932} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d376eb07fa664244e9694e33783cdf63, type: 3} + m_Script: {fileID: 11500000, guid: d376eb07fa664244e9694e33783cdf63, type: 3} m_Name: m_EditorClassIdentifier: _characterToSpawn: {fileID: 3095215436059244498, guid: 5d5cf77ca551ff84cb219f05d1f9e349, type: 3} _spawnParent: {fileID: 0} _spawnOffset: {x: -1, y: 0, z: 0} - _positionsToCorrectLateUpdateMask: {fileID: 31900000, guid: 8aaeff1dd84dcdb468f621bf1ecfea63, type: 2} - _tPoseMask: {fileID: 31900000, guid: 7129d5b0eec7de64a93fce9a6ba8f4d7, type: 2} --- !u!1 &4797691732841845106 GameObject: m_ObjectHideFlags: 0 @@ -2040,7 +1914,7 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_renderer: {fileID: 729072134489529748} m_maskType: 0 ---- !u!1 &4997131447421833064 +--- !u!1 &4930540850470529805 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2048,41 +1922,267 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 4981521232027198969} - - component: {fileID: 7820890919149851413} - - component: {fileID: 7156454844736113859} + - component: {fileID: 7419488056608105277} + - component: {fileID: 8019156815344769797} + - component: {fileID: 4351798612378256829} + - component: {fileID: 6419215860301465028} + - component: {fileID: 1738942169616285156} m_Layer: 0 - m_Name: BasicPokeButtonPressAudio + m_Name: ButtonPanel m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &4981521232027198969 +--- !u!4 &7419488056608105277 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4997131447421833064} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 4930540850470529805} + 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_LocalScale: {x: 3, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 8588968248862584690} + m_Father: {fileID: 6049096318425824116} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!82 &7820890919149851413 -AudioSource: +--- !u!33 &8019156815344769797 +MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4997131447421833064} - m_Enabled: 1 - serializedVersion: 4 - OutputAudioMixerGroup: {fileID: 0} + m_GameObject: {fileID: 4930540850470529805} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4351798612378256829 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4930540850470529805} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 76a19c8ba767ac4489bc28e88c399433, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &6419215860301465028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4930540850470529805} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5e48d93b64a9ae4f9fd5a728c8f51af, type: 3} + m_Name: + m_EditorClassIdentifier: + _renderers: + - {fileID: 4351798612378256829} + _vectorProperties: [] + _colorProperties: [] + _floatProperties: [] + _updateEveryFrame: 1 +--- !u!114 &1738942169616285156 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4930540850470529805} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3266c3d920715b84089935c4ab019210, type: 3} + m_Name: + m_EditorClassIdentifier: + _interactableView: {fileID: 1439991897071983908} + _editor: {fileID: 6419215860301465028} + _colorShaderPropertyName: _Color + _normalColorState: + Color: {r: 1, g: 1, b: 1, a: 0.39215687} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.1 + _hoverColorState: + Color: {r: 1, g: 1, b: 1, a: 0.5882353} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.1 + _selectColorState: + Color: {r: 0.30196083, g: 0.64535433, b: 0.9529412, a: 0.78431374} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.05 + _disabledColorState: + Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.1 +--- !u!1 &4997131447421833064 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4981521232027198969} + - component: {fileID: 7820890919149851413} + - component: {fileID: 7156454844736113859} + m_Layer: 0 + m_Name: BasicPokeButtonPressAudio + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4981521232027198969 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4997131447421833064} + 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: 8588968248862584690} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!82 &7820890919149851413 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4997131447421833064} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} m_audioClip: {fileID: 0} m_PlayOnAwake: 0 m_Volume: 1 @@ -2528,7 +2628,7 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_renderer: {fileID: 1702417451795967413} m_maskType: 0 ---- !u!1 &6725289421763366584 +--- !u!1 &5957457165166594143 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2536,171 +2636,157 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6725289421763366585} - - component: {fileID: 6109289713368551864} - - component: {fileID: 6281741384999557168} + - component: {fileID: 5484211908585441615} + - component: {fileID: 2826177543550940040} + - component: {fileID: 1850453743319247403} m_Layer: 0 - m_Name: Add Robot + m_Name: BasicPokeButtonReleaseAudio m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &6725289421763366585 +--- !u!4 &5484211908585441615 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6725289421763366584} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.14, z: 0} - m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_GameObject: {fileID: 5957457165166594143} + 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: - - {fileID: 2512382020737843693} - - {fileID: 3868676794485974508} - - {fileID: 8588968248862584690} - m_Father: {fileID: 4755192900336154934} + m_Children: [] + m_Father: {fileID: 7977031090338279666} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &6109289713368551864 -MonoBehaviour: +--- !u!82 &2826177543550940040 +AudioSource: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6725289421763366584} + m_GameObject: {fileID: 5957457165166594143} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 317e663e2bb60ea408fe22b908b59295, type: 3} - m_Name: - m_EditorClassIdentifier: - _interactorFilters: [] - _maxInteractors: -1 - _maxSelectingInteractors: -1 - _data: {fileID: 0} - _pointableElement: {fileID: 0} - _surfacePatch: {fileID: 3240655970514371822} - _enterHoverNormal: 0.01 - _enterHoverTangent: 0 - _exitHoverNormal: 0.05 - _exitHoverTangent: 0 - _cancelSelectNormal: 0.1 - _cancelSelectTangent: 0.03 - _minThresholds: - Enabled: 0 - MinNormal: 0.01 - _dragThresholds: - Enabled: 1 - DragNormal: 0.01 - DragTangent: 0.01 - DragEaseCurve: - _animationCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - _animationLength: 0.05 - _positionPinning: - Enabled: 0 - MaxPinDistance: 0 - _recoilAssist: - Enabled: 0 - ExitDistance: 0.02 - ReEnterDistance: 0.02 - _closeDistanceThreshold: 0.001 - _tiebreakerScore: 0 ---- !u!114 &6281741384999557168 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &1850453743319247403 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6725289421763366584} + m_GameObject: {fileID: 5957457165166594143} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e2f8f6e9e6f3e114b9bf9a57c2160615, type: 3} + m_Script: {fileID: 11500000, guid: 925ef87c5bafc37469a2f7ec825dee4b, type: 3} m_Name: m_EditorClassIdentifier: - _pointable: {fileID: 6109289713368551864} - _whenRelease: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 6144342000968298569} - m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples - m_MethodName: PlayAudio - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 4755192900336154933} - m_TargetAssemblyTypeName: Oculus.Movement.Samples.RetargetingMenu, Assembly-CSharp - m_MethodName: AddNormalRetargetedCharacter - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - _whenHover: - m_PersistentCalls: - m_Calls: [] - _whenUnhover: - m_PersistentCalls: - m_Calls: [] - _whenSelect: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 7156454844736113859} - m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples - m_MethodName: PlayAudio - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - _whenUnselect: - m_PersistentCalls: - m_Calls: [] - _whenMove: - m_PersistentCalls: - m_Calls: [] - _whenCancel: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &6780252258615367894 + _audioSource: {fileID: 0} + _audioClips: + - {fileID: 8300000, guid: aebed88a33938c74f80e53b1386c2034, type: 3} + _volume: 0.5 + _volumeRandomization: + _useRandomRange: 0 + _min: 0 + _max: 0 + _pitch: 1 + _pitchRandomization: + _useRandomRange: 0 + _min: 0 + _max: 0 + _spatialize: 1 + _loop: 0 + _chanceToPlay: 100 + _playOnStart: 0 +--- !u!1 &6060657674233748457 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2708,56 +2794,171 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1169784719407294224} - - component: {fileID: 8459872656687454938} - - component: {fileID: 8526179059950976609} + - component: {fileID: 6264912874766185974} + - component: {fileID: 2009867996588970253} + - component: {fileID: 1384883439842264498} m_Layer: 0 - m_Name: ButtonVisual + m_Name: Text (TMP) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1169784719407294224 -Transform: +--- !u!224 &6264912874766185974 +RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6780252258615367894} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.2} - m_LocalScale: {x: 1, y: 1, z: 1} + m_GameObject: {fileID: 6060657674233748457} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.001} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 6123007111203139936} - - {fileID: 4318127394589348713} - m_Father: {fileID: 6621160322830769724} - m_RootOrder: 0 + m_Children: [] + m_Father: {fileID: 6049096318425824116} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &8459872656687454938 -MonoBehaviour: + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 30, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &2009867996588970253 +MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6780252258615367894} + m_GameObject: {fileID: 6060657674233748457} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0b3b3f04ac18184468bedd999e5a6688, type: 3} - m_Name: - m_EditorClassIdentifier: - _pokeInteractable: {fileID: 4223203923031812712} - _buttonBaseTransform: {fileID: 8438990253971939993} ---- !u!33 &8526179059950976609 -MeshFilter: + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: -5839354330806206608, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &1384883439842264498 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6780252258615367894} - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &6930090098547139138 + m_GameObject: {fileID: 6060657674233748457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Add Anim Rigged Robot (constraints) + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_sharedMaterial: {fileID: -5839354330806206608, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 32 + m_fontSizeBase: 32 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 2009867996588970253} + m_maskType: 0 +--- !u!1 &6206402690742134272 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2765,7 +2966,7 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2512382020737843693} + - component: {fileID: 2962082793124004268} m_Layer: 0 m_Name: Model m_TagString: Untagged @@ -2773,23 +2974,23 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &2512382020737843693 +--- !u!4 &2962082793124004268 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6930090098547139138} + m_GameObject: {fileID: 6206402690742134272} 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: - - {fileID: 1967523122632726857} - m_Father: {fileID: 6725289421763366585} + - {fileID: 1797260609389014227} + m_Father: {fileID: 3428445458957398331} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7082198509606359658 +--- !u!1 &6603601737997919136 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2797,31 +2998,56 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 3868676794485974508} + - component: {fileID: 6049096318425824116} + - component: {fileID: 2997180388951138463} + - component: {fileID: 6750794865369471923} m_Layer: 0 - m_Name: Visuals + m_Name: ButtonVisual m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &3868676794485974508 +--- !u!4 &6049096318425824116 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7082198509606359658} + m_GameObject: {fileID: 6603601737997919136} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 0, z: -0.2} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 9108726194356657344} - m_Father: {fileID: 6725289421763366585} - m_RootOrder: 1 + - {fileID: 7419488056608105277} + - {fileID: 6264912874766185974} + m_Father: {fileID: 5458924027632475729} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7539583871471348920 +--- !u!114 &2997180388951138463 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6603601737997919136} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b3b3f04ac18184468bedd999e5a6688, type: 3} + m_Name: + m_EditorClassIdentifier: + _pokeInteractable: {fileID: 1439991897071983908} + _buttonBaseTransform: {fileID: 1797260609389014227} +--- !u!33 &6750794865369471923 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6603601737997919136} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &6725289421763366584 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2829,177 +3055,99 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6123007111203139936} - - component: {fileID: 2349248745677742352} - - component: {fileID: 1900682225575563306} - - component: {fileID: 928287659365561990} - - component: {fileID: 8594860634550005187} + - component: {fileID: 6725289421763366585} + - component: {fileID: 6109289713368551864} + - component: {fileID: 6281741384999557168} m_Layer: 0 - m_Name: ButtonPanel + m_Name: Add Robot m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &6123007111203139936 +--- !u!4 &6725289421763366585 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7539583871471348920} + m_GameObject: {fileID: 6725289421763366584} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 3, y: 1, z: 1} + m_LocalPosition: {x: 0, y: 0.14, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1169784719407294224} - m_RootOrder: 0 + m_Children: + - {fileID: 2512382020737843693} + - {fileID: 3868676794485974508} + - {fileID: 8588968248862584690} + m_Father: {fileID: 4755192900336154934} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &2349248745677742352 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7539583871471348920} - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &1900682225575563306 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7539583871471348920} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 76a19c8ba767ac4489bc28e88c399433, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!114 &928287659365561990 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7539583871471348920} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d5e48d93b64a9ae4f9fd5a728c8f51af, type: 3} - m_Name: - m_EditorClassIdentifier: - _renderers: - - {fileID: 1900682225575563306} - _vectorProperties: [] - _colorProperties: [] - _floatProperties: [] - _updateEveryFrame: 1 ---- !u!114 &8594860634550005187 +--- !u!114 &6109289713368551864 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7539583871471348920} + m_GameObject: {fileID: 6725289421763366584} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3266c3d920715b84089935c4ab019210, type: 3} + m_Script: {fileID: 11500000, guid: 317e663e2bb60ea408fe22b908b59295, type: 3} m_Name: m_EditorClassIdentifier: - _interactableView: {fileID: 4223203923031812712} - _editor: {fileID: 928287659365561990} - _colorShaderPropertyName: _Color - _normalColorState: - Color: {r: 1, g: 1, b: 1, a: 0.39215687} - ColorCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - ColorTime: 0.1 - _hoverColorState: - Color: {r: 1, g: 1, b: 1, a: 0.5882353} - ColorCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - ColorTime: 0.1 - _selectColorState: - Color: {r: 0.30196083, g: 0.64535433, b: 0.9529412, a: 0.78431374} - ColorCurve: + _interactorFilters: [] + _maxInteractors: -1 + _maxSelectingInteractors: -1 + _data: {fileID: 0} + _pointableElement: {fileID: 0} + _surfacePatch: {fileID: 3240655970514371822} + _enterHoverNormal: 0.01 + _enterHoverTangent: 0 + _exitHoverNormal: 0.05 + _exitHoverTangent: 0 + _cancelSelectNormal: 0.1 + _cancelSelectTangent: 0.03 + _minThresholds: + Enabled: 0 + MinNormal: 0.01 + _dragThresholds: + Enabled: 1 + DragNormal: 0.01 + DragTangent: 0.01 + DragEaseCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.05 + _positionPinning: + Enabled: 0 + MaxPinDistance: 0 + PinningEaseCurve: serializedVersion: 2 m_Curve: - serializedVersion: 3 - time: 0 + time: 0.2 value: 0 inSlope: 0 outSlope: 0 @@ -3019,15 +3167,41 @@ MonoBehaviour: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - ColorTime: 0.05 - _disabledColorState: - Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} - ColorCurve: + ResyncCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.2 + _recoilAssist: + Enabled: 0 + UseDynamicDecay: 0 + DynamicDecayCurve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 - value: 0 + value: 50 inSlope: 0 outSlope: 0 tangentMode: 0 @@ -3035,10 +3209,10 @@ MonoBehaviour: inWeight: 0 outWeight: 0 - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 + time: 0.9 + value: 0.5 + inSlope: -47 + outSlope: -47 tangentMode: 0 weightedMode: 0 inWeight: 0 @@ -3046,7 +3220,181 @@ MonoBehaviour: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - ColorTime: 0.1 + UseVelocityExpansion: 0 + VelocityExpansionMinSpeed: 0.4 + VelocityExpansionMaxSpeed: 1.4 + VelocityExpansionDistance: 0.055 + VelocityExpansionDecayRate: 0.125 + ExitDistance: 0.02 + ReEnterDistance: 0.02 + _closeDistanceThreshold: 0.001 + _tiebreakerScore: 0 +--- !u!114 &6281741384999557168 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6725289421763366584} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e2f8f6e9e6f3e114b9bf9a57c2160615, type: 3} + m_Name: + m_EditorClassIdentifier: + _pointable: {fileID: 6109289713368551864} + _whenRelease: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6144342000968298569} + m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples + m_MethodName: PlayAudio + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 4755192900336154933} + m_TargetAssemblyTypeName: Oculus.Movement.Samples.RetargetingMenu, Assembly-CSharp + m_MethodName: AddNormalRetargetedCharacter + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + _whenHover: + m_PersistentCalls: + m_Calls: [] + _whenUnhover: + m_PersistentCalls: + m_Calls: [] + _whenSelect: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 7156454844736113859} + m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples + m_MethodName: PlayAudio + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + _whenUnselect: + m_PersistentCalls: + m_Calls: [] + _whenMove: + m_PersistentCalls: + m_Calls: [] + _whenCancel: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &6836745370898204783 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5458924027632475729} + m_Layer: 0 + m_Name: Visuals + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5458924027632475729 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6836745370898204783} + 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: + - {fileID: 6049096318425824116} + m_Father: {fileID: 3428445458957398331} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6930090098547139138 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2512382020737843693} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2512382020737843693 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6930090098547139138} + 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: + - {fileID: 1967523122632726857} + m_Father: {fileID: 6725289421763366585} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7082198509606359658 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3868676794485974508} + m_Layer: 0 + m_Name: Visuals + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3868676794485974508 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7082198509606359658} + 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: + - {fileID: 9108726194356657344} + m_Father: {fileID: 6725289421763366585} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &7975660613610540284 GameObject: m_ObjectHideFlags: 0 @@ -3237,39 +3585,6 @@ MonoBehaviour: _loop: 0 _chanceToPlay: 100 _playOnStart: 0 ---- !u!1 &8402990809417904271 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1828881643105883298} - m_Layer: 0 - m_Name: Audio - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1828881643105883298 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8402990809417904271} - 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: - - {fileID: 3130758330668228137} - - {fileID: 2118789282557059747} - m_Father: {fileID: 3676727503918658921} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &8410012317061352610 GameObject: m_ObjectHideFlags: 0 @@ -3327,83 +3642,6 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8410012317061352610} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &8438990253971939992 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8438990253971939993} - - component: {fileID: 5392445518143138904} - - component: {fileID: 4803727101265788734} - - component: {fileID: 4012275257739213619} - m_Layer: 0 - m_Name: Surface - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8438990253971939993 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8438990253971939992} - 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: 5516519308894108221} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &5392445518143138904 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8438990253971939992} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9cf2a74d69b1c1e41916d2a7afdff5be, type: 3} - m_Name: - m_EditorClassIdentifier: - _facing: 0 - _doubleSided: 1 ---- !u!114 &4803727101265788734 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8438990253971939992} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: efd927768041afd4d90e5d822283f0f4, type: 3} - m_Name: - m_EditorClassIdentifier: - _planeSurface: {fileID: 5392445518143138904} - _clippers: - - {fileID: 4012275257739213619} ---- !u!114 &4012275257739213619 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8438990253971939992} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e08ab46e8fb05dc46b34e54466dc11e3, type: 3} - m_Name: - m_EditorClassIdentifier: - _position: {x: 0, y: 0, z: 0} - _size: {x: 3, y: 1, z: 1} --- !u!1 &8751418975657857256 GameObject: m_ObjectHideFlags: 0 @@ -3430,7 +3668,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8751418975657857256} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0.07, z: 0.015} + m_LocalPosition: {x: 0, y: 0.075, z: 0.015} m_LocalScale: {x: 0.206, y: 0.25, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] diff --git a/Samples/Prefabs/UI/SceneSelectMenu.prefab b/Samples/Prefabs/UI/SceneSelectMenu.prefab index 86bf1f83..d26a74ad 100644 --- a/Samples/Prefabs/UI/SceneSelectMenu.prefab +++ b/Samples/Prefabs/UI/SceneSelectMenu.prefab @@ -32,7 +32,7 @@ Transform: - {fileID: 2549952249915243376} - {fileID: 7597415162121578777} m_Father: {fileID: 8658488230205805794} - m_RootOrder: 8 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &4271415050658874122 MonoBehaviour: @@ -638,7 +638,7 @@ Transform: - {fileID: 305503144458546338} - {fileID: 5191241710672434283} m_Father: {fileID: 8658488230205805794} - m_RootOrder: 9 + m_RootOrder: 11 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &2798372348693892148 MonoBehaviour: @@ -812,8 +812,8 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8658488229782025614} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.06, y: 0, z: 0} - m_LocalScale: {x: 0.65, y: 0.15, z: 1} + m_LocalPosition: {x: 0.174, y: 0, z: 0} + m_LocalScale: {x: 0.9, y: 0.15, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 8658488230205805794} @@ -907,6 +907,8 @@ Transform: - {fileID: 2565307352021962037} - {fileID: 9194900716493453131} - {fileID: 1991922945704778449} + - {fileID: 4175489239077749549} + - {fileID: 4989797128357484873} - {fileID: 5619690541653141950} - {fileID: 7725480232778756649} - {fileID: 9089983429057873465} @@ -963,7 +965,146 @@ MonoBehaviour: SceneName: MovementHipPinning - LocalPosition: {x: 0.293, y: -0.0011, z: -0.01} SceneName: MovementRetargeting + - LocalPosition: {x: 0.413, y: -0.0011, z: -0.01} + SceneName: MovementISDKIntegration + - LocalPosition: {x: 0.533, y: -0.0011, z: -0.01} + SceneName: MovementLocomotion _iconTransform: {fileID: 2560278188891738669} +--- !u!1001 &4869431817475686 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8658488230205805794} + m_Modifications: + - target: {fileID: 1190592599872860168, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 9de3fd2ff03786e40a634ce417f5b951, type: 2} + - target: {fileID: 3533162126377251659, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_AnchoredPosition.y + value: -1.2 + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 8658488230205805795} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: Load + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: Oculus.Interaction.Samples.SceneLoader, Oculus.Interaction.Samples + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_StringArgument + value: MovementISDKIntegration + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234762, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_Name + value: ISDK Button + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalPosition.x + value: 0.413 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalPosition.y + value: 0.016 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalPosition.z + value: -0.01 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6198825956437652943, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_text + value: ISDK + objectReference: {fileID: 0} + - target: {fileID: 6198825956437652943, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_fontSize + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 6198825956437652943, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_fontSizeBase + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 6781307535824638274, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalScale.x + value: 1.5 + objectReference: {fileID: 0} + - target: {fileID: 6781307535824638274, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalScale.y + value: 1.5 + objectReference: {fileID: 0} + - target: {fileID: 6781307535824638274, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalScale.z + value: 1.5 + objectReference: {fileID: 0} + - target: {fileID: 9052892711818005985, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _selectColorState.Color.b + value: 0.9529412 + objectReference: {fileID: 0} + - target: {fileID: 9052892711818005985, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _selectColorState.Color.g + value: 0.64535433 + objectReference: {fileID: 0} + - target: {fileID: 9052892711818005985, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _selectColorState.Color.r + value: 0.30196083 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 2778893221137343601, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} +--- !u!4 &4175489239077749549 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + m_PrefabInstance: {fileID: 4869431817475686} + m_PrefabAsset: {fileID: 0} --- !u!1001 &291624500155126182 PrefabInstance: m_ObjectHideFlags: 0 @@ -1559,7 +1700,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} propertyPath: m_RootOrder - value: 7 + value: 9 objectReference: {fileID: 0} - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} propertyPath: m_LocalScale.x @@ -1804,3 +1945,140 @@ Transform: m_CorrespondingSourceObject: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} m_PrefabInstance: {fileID: 8392516705622583396} m_PrefabAsset: {fileID: 0} +--- !u!1001 &8997153991721487362 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8658488230205805794} + m_Modifications: + - target: {fileID: 1190592599872860168, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: c532a3f48f2a70348b39263ec7ab50ed, type: 2} + - target: {fileID: 3533162126377251659, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_AnchoredPosition.y + value: -1.2 + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 8658488230205805795} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: Load + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: Oculus.Interaction.Samples.SceneLoader, Oculus.Interaction.Samples + objectReference: {fileID: 0} + - target: {fileID: 3718601612112823234, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _whenRelease.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_StringArgument + value: MovementLocomotion + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234762, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_Name + value: Locomotion Button + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalPosition.x + value: 0.533 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalPosition.y + value: 0.016 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalPosition.z + value: -0.01 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6198825956437652943, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_text + value: 'Locomotion + +' + objectReference: {fileID: 0} + - target: {fileID: 6198825956437652943, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_fontSize + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 6198825956437652943, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_fontSizeBase + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 6781307535824638274, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalScale.x + value: 1.5 + objectReference: {fileID: 0} + - target: {fileID: 6781307535824638274, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalScale.y + value: 1.5 + objectReference: {fileID: 0} + - target: {fileID: 6781307535824638274, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: m_LocalScale.z + value: 1.5 + objectReference: {fileID: 0} + - target: {fileID: 9052892711818005985, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _selectColorState.Color.b + value: 0.9529412 + objectReference: {fileID: 0} + - target: {fileID: 9052892711818005985, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _selectColorState.Color.g + value: 0.64535433 + objectReference: {fileID: 0} + - target: {fileID: 9052892711818005985, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + propertyPath: _selectColorState.Color.r + value: 0.30196083 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 2778893221137343601, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} +--- !u!4 &4989797128357484873 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4171210596153234763, guid: 323cb65d2594c79499a11a99ff0fb347, type: 3} + m_PrefabInstance: {fileID: 8997153991721487362} + m_PrefabAsset: {fileID: 0} diff --git a/Samples/Prefabs/UtilVisuals/DebugBones.prefab b/Samples/Prefabs/UtilVisuals/DebugBones.prefab new file mode 100644 index 00000000..63ec950e --- /dev/null +++ b/Samples/Prefabs/UtilVisuals/DebugBones.prefab @@ -0,0 +1,226 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &669339439527238449 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 669339439527238463} + - component: {fileID: 669339439527238448} + - component: {fileID: 669339439527238462} + m_Layer: 0 + m_Name: DebugBones + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &669339439527238463 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 669339439527238449} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.81499124, y: 1.347516, z: 0.12875414} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &669339439527238448 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 669339439527238449} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c79d7660e6ccc8a47882b41bfbda4978, type: 3} + m_Name: + m_EditorClassIdentifier: + _whenToRender: 2 + _visualizationGuideType: 0 + _maskToVisualize: {fileID: 31900000, guid: 8267e3d56146c7e43bd0296dc7f86558, type: 2} + _customBoneVisualData: + BoneTuples: + - FirstBone: 0 + SecondBone: 7 + Hide: 0 + - FirstBone: 1 + SecondBone: 3 + Hide: 0 + - FirstBone: 2 + SecondBone: 4 + Hide: 0 + - FirstBone: 3 + SecondBone: 5 + Hide: 0 + - FirstBone: 4 + SecondBone: 6 + Hide: 0 + - FirstBone: 5 + SecondBone: 19 + Hide: 0 + - FirstBone: 6 + SecondBone: 20 + Hide: 0 + - FirstBone: 7 + SecondBone: 8 + Hide: 0 + - FirstBone: 8 + SecondBone: 54 + Hide: 0 + - FirstBone: 9 + SecondBone: 10 + Hide: 0 + - FirstBone: 11 + SecondBone: 13 + Hide: 0 + - FirstBone: 12 + SecondBone: 14 + Hide: 0 + - FirstBone: 13 + SecondBone: 15 + Hide: 0 + - FirstBone: 14 + SecondBone: 16 + Hide: 0 + - FirstBone: 15 + SecondBone: 17 + Hide: 0 + - FirstBone: 16 + SecondBone: 18 + Hide: 0 + - FirstBone: 17 + SecondBone: 30 + Hide: 0 + - FirstBone: 18 + SecondBone: 45 + Hide: 0 + - FirstBone: 10 + SecondBone: 21 + Hide: 0 + - FirstBone: 10 + SecondBone: 22 + Hide: 0 + - FirstBone: 10 + SecondBone: 23 + Hide: 0 + - FirstBone: 24 + SecondBone: 25 + Hide: 0 + - FirstBone: 25 + SecondBone: 26 + Hide: 0 + - FirstBone: 26 + SecondBone: 55 + Hide: 0 + - FirstBone: 27 + SecondBone: 28 + Hide: 0 + - FirstBone: 28 + SecondBone: 29 + Hide: 0 + - FirstBone: 29 + SecondBone: 55 + Hide: 0 + - FirstBone: 30 + SecondBone: 31 + Hide: 0 + - FirstBone: 31 + SecondBone: 32 + Hide: 0 + - FirstBone: 32 + SecondBone: 55 + Hide: 0 + - FirstBone: 33 + SecondBone: 34 + Hide: 0 + - FirstBone: 34 + SecondBone: 35 + Hide: 0 + - FirstBone: 35 + SecondBone: 55 + Hide: 0 + - FirstBone: 36 + SecondBone: 37 + Hide: 0 + - FirstBone: 37 + SecondBone: 38 + Hide: 0 + - FirstBone: 38 + SecondBone: 55 + Hide: 0 + - FirstBone: 39 + SecondBone: 40 + Hide: 0 + - FirstBone: 40 + SecondBone: 41 + Hide: 0 + - FirstBone: 41 + SecondBone: 55 + Hide: 0 + - FirstBone: 42 + SecondBone: 43 + Hide: 0 + - FirstBone: 43 + SecondBone: 44 + Hide: 0 + - FirstBone: 44 + SecondBone: 55 + Hide: 0 + - FirstBone: 45 + SecondBone: 46 + Hide: 0 + - FirstBone: 46 + SecondBone: 47 + Hide: 0 + - FirstBone: 47 + SecondBone: 55 + Hide: 0 + - FirstBone: 48 + SecondBone: 49 + Hide: 0 + - FirstBone: 49 + SecondBone: 50 + Hide: 0 + - FirstBone: 50 + SecondBone: 55 + Hide: 0 + - FirstBone: 51 + SecondBone: 52 + Hide: 0 + - FirstBone: 52 + SecondBone: 53 + Hide: 0 + - FirstBone: 53 + SecondBone: 55 + Hide: 0 + - FirstBone: 54 + SecondBone: 9 + Hide: 0 + _lineRendererPrefab: {fileID: 7812178534108119229, guid: 6d28b0d0a0ff2234cbf60710c8c912dc, type: 3} + _axisRendererPrefab: {fileID: 106719106145556050, guid: 6103ef5d90d602545af4eb910563af03, type: 3} + _visualType: 0 + _animatorComp: {fileID: 0} +--- !u!114 &669339439527238462 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 669339439527238449} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 84fe64f23f2a68b4a86633382680187d, type: 3} + m_Name: + m_EditorClassIdentifier: + _boneVisualizer: {fileID: 669339439527238448} + _lineColor: {r: 0.9959899, g: 1, b: 0, a: 1} diff --git a/Samples/Prefabs/UtilVisuals/DebugBones.prefab.meta b/Samples/Prefabs/UtilVisuals/DebugBones.prefab.meta new file mode 100644 index 00000000..71e2f614 --- /dev/null +++ b/Samples/Prefabs/UtilVisuals/DebugBones.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 83912ab7fbdf5db41822aa92a1698430 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Prefabs/UtilVisuals/DebugBonesOVRSkeleton.prefab b/Samples/Prefabs/UtilVisuals/DebugBonesOVRSkeleton.prefab new file mode 100644 index 00000000..eb656923 --- /dev/null +++ b/Samples/Prefabs/UtilVisuals/DebugBonesOVRSkeleton.prefab @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1624724815262641718 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1624724815262641716} + - component: {fileID: 1624724815262641707} + m_Layer: 0 + m_Name: DebugBonesOVRSkeleton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1624724815262641716 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1624724815262641718} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.81499124, y: 1.347516, z: 0.12875414} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1624724815262641707 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1624724815262641718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ab1e3682a8676d84faba89a2aee068e8, type: 3} + m_Name: + m_EditorClassIdentifier: + _whenToRender: 2 + _visualizationGuideType: 0 + _maskToVisualize: {fileID: 0} + _customBoneVisualData: + BoneTuples: [] + _lineRendererPrefab: {fileID: 7812178534108119229, guid: 91a281e92421c464e837420766cafd02, type: 3} + _axisRendererPrefab: {fileID: 106719106145556050, guid: 6103ef5d90d602545af4eb910563af03, type: 3} + _visualType: 0 + _ovrSkeletonComp: {fileID: 0} + _visualizeBindPose: 0 diff --git a/Samples/Prefabs/UtilVisuals/DebugBonesOVRSkeleton.prefab.meta b/Samples/Prefabs/UtilVisuals/DebugBonesOVRSkeleton.prefab.meta new file mode 100644 index 00000000..9b83b59f --- /dev/null +++ b/Samples/Prefabs/UtilVisuals/DebugBonesOVRSkeleton.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4fc27752d2cf86d4282408b4cd7d4675 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Prefabs/UtilVisuals/DebugBonesOVRSkeletonFullBody.prefab b/Samples/Prefabs/UtilVisuals/DebugBonesOVRSkeletonFullBody.prefab new file mode 100644 index 00000000..d7f12bfb --- /dev/null +++ b/Samples/Prefabs/UtilVisuals/DebugBonesOVRSkeletonFullBody.prefab @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1692031724233491721 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1692031724233491723} + - component: {fileID: 1236458827194487761} + m_Layer: 0 + m_Name: DebugBonesOVRSkeletonFullBody + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1692031724233491723 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1692031724233491721} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.81499124, y: 1.347516, z: 0.12875414} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1236458827194487761 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1692031724233491721} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f7ef839cc9cacff4091af449079bbce3, type: 3} + m_Name: + m_EditorClassIdentifier: + _whenToRender: 2 + _visualizationGuideType: 0 + _maskToVisualize: {fileID: 0} + _customBoneVisualData: + BoneTuples: [] + _lineRendererPrefab: {fileID: 7812178534108119229, guid: 91a281e92421c464e837420766cafd02, type: 3} + _axisRendererPrefab: {fileID: 106719106145556050, guid: 6103ef5d90d602545af4eb910563af03, type: 3} + _visualType: 0 + _ovrSkeletonComp: {fileID: 0} + _visualizeBindPose: 0 diff --git a/Samples/Prefabs/UtilVisuals/DebugBonesOVRSkeletonFullBody.prefab.meta b/Samples/Prefabs/UtilVisuals/DebugBonesOVRSkeletonFullBody.prefab.meta new file mode 100644 index 00000000..81c50fef --- /dev/null +++ b/Samples/Prefabs/UtilVisuals/DebugBonesOVRSkeletonFullBody.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8919fa825b25b4544b361623e5d62aba +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Presets/BlendshapeModifiers/AuraBlendshapeModifierPreset.json b/Samples/Presets/BlendshapeModifiers/AuraBlendshapeModifierPreset.json index e955b04f..bef1b461 100644 --- a/Samples/Presets/BlendshapeModifiers/AuraBlendshapeModifierPreset.json +++ b/Samples/Presets/BlendshapeModifiers/AuraBlendshapeModifierPreset.json @@ -2,7 +2,7 @@ "FaceExpressionModifiers": [ { "FaceExpressions": [ - 63 + 70 ], "MinValue": 0.0, "MaxValue": 1.0, @@ -301,6 +301,62 @@ "MinValue": 0.0, "MaxValue": 1.0, "Multiplier": 1.5 + }, + { + "FaceExpressions": [ + 63 + ], + "MinValue": 0.0, + "MaxValue": 1.0, + "Multiplier": 2.0 + }, + { + "FaceExpressions": [ + 64 + ], + "MinValue": 0.0, + "MaxValue": 1.0, + "Multiplier": 2.0 + }, + { + "FaceExpressions": [ + 65 + ], + "MinValue": 0.0, + "MaxValue": 1.0, + "Multiplier": 2.0 + }, + { + "FaceExpressions": [ + 66 + ], + "MinValue": 0.0, + "MaxValue": 1.0, + "Multiplier": 2.0 + }, + { + "FaceExpressions": [ + 67 + ], + "MinValue": 0.0, + "MaxValue": 1.0, + "Multiplier": 2.0 + }, + { + "FaceExpressions": [ + 68 + ], + "MinValue": 0.0, + "MaxValue": 1.0, + "Multiplier": 2.0 + }, + { + "FaceExpressions": [ + 69 + ], + "MinValue": 0.0, + "MaxValue": 1.0, + "Multiplier": 2.0 } ] } diff --git a/Samples/RetargetingProcessors.meta b/Samples/RetargetingProcessors.meta new file mode 100644 index 00000000..45f2db33 --- /dev/null +++ b/Samples/RetargetingProcessors.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e2c96434f8b7686478b6fdd4a5733e4b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/RetargetingProcessors/ArmatureCorrectBones.asset b/Samples/RetargetingProcessors/ArmatureCorrectBones.asset new file mode 100644 index 00000000..d9d3f795 --- /dev/null +++ b/Samples/RetargetingProcessors/ArmatureCorrectBones.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 99f3c86fa39b08a438ed987947aa34c7, type: 3} + m_Name: ArmatureCorrectBones + m_EditorClassIdentifier: + Weight: 1 + _correctPositionsLateUpdate: 1 + _shoulderCorrectionWeightLateUpdate: 0 + _leftHandCorrectionWeightLateUpdate: 1 + _rightHandCorrectionWeightLateUpdate: 1 diff --git a/Samples/RetargetingProcessors/ArmatureCorrectBones.asset.meta b/Samples/RetargetingProcessors/ArmatureCorrectBones.asset.meta new file mode 100644 index 00000000..9641c0d6 --- /dev/null +++ b/Samples/RetargetingProcessors/ArmatureCorrectBones.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 15440560904a85846a7a4b75e1f7b96e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/RetargetingProcessors/ArmatureCorrectLeftHand.asset b/Samples/RetargetingProcessors/ArmatureCorrectLeftHand.asset new file mode 100644 index 00000000..a68b5640 --- /dev/null +++ b/Samples/RetargetingProcessors/ArmatureCorrectLeftHand.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e245a3cf228c72d4ab693be869f73596, type: 3} + m_Name: ArmatureCorrectLeftHand + m_EditorClassIdentifier: + Weight: 1 + _handedness: 0 + _handIKType: 1 + _ikTolerance: 0.000001 + _ikIterations: 10 + _ikMaxStretch: 0.01 diff --git a/Samples/RetargetingProcessors/ArmatureCorrectLeftHand.asset.meta b/Samples/RetargetingProcessors/ArmatureCorrectLeftHand.asset.meta new file mode 100644 index 00000000..ae98ea81 --- /dev/null +++ b/Samples/RetargetingProcessors/ArmatureCorrectLeftHand.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8033477507feea54a9c44eb17a69be20 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/RetargetingProcessors/ArmatureCorrectRightHand.asset b/Samples/RetargetingProcessors/ArmatureCorrectRightHand.asset new file mode 100644 index 00000000..752daac0 --- /dev/null +++ b/Samples/RetargetingProcessors/ArmatureCorrectRightHand.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e245a3cf228c72d4ab693be869f73596, type: 3} + m_Name: ArmatureCorrectRightHand + m_EditorClassIdentifier: + Weight: 1 + _handedness: 1 + _handIKType: 1 + _ikTolerance: 0.000001 + _ikIterations: 10 + _ikMaxStretch: 0.01 diff --git a/Samples/RetargetingProcessors/ArmatureCorrectRightHand.asset.meta b/Samples/RetargetingProcessors/ArmatureCorrectRightHand.asset.meta new file mode 100644 index 00000000..57dbb932 --- /dev/null +++ b/Samples/RetargetingProcessors/ArmatureCorrectRightHand.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b47ca2dcc0aa6e34484b90e7122d3db4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Scenes/MovementAura.unity b/Samples/Scenes/MovementAura.unity index a314efac..e74d8928 100644 --- a/Samples/Scenes/MovementAura.unity +++ b/Samples/Scenes/MovementAura.unity @@ -123,6 +123,38 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &12707107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 12707108} + m_Layer: 0 + m_Name: RightControllerInHandAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &12707108 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 12707107} + 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: + - {fileID: 818423631} + m_Father: {fileID: 2097346132} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &23275527 GameObject: m_ObjectHideFlags: 0 @@ -191,197 +223,384 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!4 &47947179 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8128128007792444460, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} ---- !u!4 &86349598 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 6239945130830917590, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} ---- !u!4 &295800113 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8578487884311766621, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &338789853 +--- !u!1001 &346779796 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 2406909326056993035, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - propertyPath: m_Name - value: AuraFirstPerson - objectReference: {fileID: 0} - - target: {fileID: 3039050048987196337, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} + - target: {fileID: 3730632290436700508, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: _ovrCameraRig + value: + objectReference: {fileID: 2097346130} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} propertyPath: m_RootOrder - value: 11 + value: 4 objectReference: {fileID: 0} - - target: {fileID: 3039050048987196337, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 3039050048987196337, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 3039050048987196337, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 3039050048987196337, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 3039050048987196337, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} propertyPath: m_LocalRotation.x - value: -0 + value: 0 objectReference: {fileID: 0} - - target: {fileID: 3039050048987196337, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} propertyPath: m_LocalRotation.y - value: -0 + value: 0 objectReference: {fileID: 0} - - target: {fileID: 3039050048987196337, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} propertyPath: m_LocalRotation.z - value: -0 + value: 0 objectReference: {fileID: 0} - - target: {fileID: 3039050048987196337, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 3039050048987196337, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 3039050048987196337, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 6678269571562373685, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: m_Name + value: OVRInteraction + objectReference: {fileID: 0} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} ---- !u!114 &338789857 stripped + m_SourcePrefab: {fileID: 100100000, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} +--- !u!114 &346779797 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 3533794273248333687, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} + m_CorrespondingSourceObject: {fileID: 8937797799668855672, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + m_PrefabInstance: {fileID: 346779796} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a95044baf65b10c4e89b246d2f881ac9, type: 3} + m_Script: {fileID: 11500000, guid: 998a5646185efb9488265f3a2f35a99a, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1001 &346779796 +--- !u!114 &346779798 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3730632290436700508, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + m_PrefabInstance: {fileID: 346779796} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a7b47e36715521d4e8a30d2c5b6e83e2, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &346779799 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + m_PrefabInstance: {fileID: 346779796} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &390338566 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 3730632290436700508, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} - propertyPath: _ovrCameraRig - value: - objectReference: {fileID: 2097346130} - - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + - target: {fileID: 3505176259486029538, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + propertyPath: m_Name + value: AuraWithTongue - FirstPerson + objectReference: {fileID: 0} + - target: {fileID: 4318727261365488728, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} propertyPath: m_RootOrder - value: 4 + value: 11 objectReference: {fileID: 0} - - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + - target: {fileID: 4318727261365488728, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + - target: {fileID: 4318727261365488728, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + - target: {fileID: 4318727261365488728, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + - target: {fileID: 4318727261365488728, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + - target: {fileID: 4318727261365488728, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + - target: {fileID: 4318727261365488728, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + - target: {fileID: 4318727261365488728, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + - target: {fileID: 4318727261365488728, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + - target: {fileID: 4318727261365488728, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + - target: {fileID: 4318727261365488728, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6678269571562373685, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} - propertyPath: m_Name - value: OVRInteraction - objectReference: {fileID: 0} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} ---- !u!114 &346779797 stripped + m_SourcePrefab: {fileID: 100100000, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} +--- !u!114 &390338567 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 8937797799668855672, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} - m_PrefabInstance: {fileID: 346779796} + m_CorrespondingSourceObject: {fileID: 7986394284228639737, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 998a5646185efb9488265f3a2f35a99a, type: 3} + m_Script: {fileID: 11500000, guid: 674a40251fe8ad841b18517ac5209957, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &346779798 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 3730632290436700508, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} - m_PrefabInstance: {fileID: 346779796} +--- !u!4 &390338568 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4319871781508972800, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a7b47e36715521d4e8a30d2c5b6e83e2, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!4 &346779799 stripped +--- !u!4 &390338569 stripped Transform: - m_CorrespondingSourceObject: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} - m_PrefabInstance: {fileID: 346779796} + m_CorrespondingSourceObject: {fileID: 7083790099656272591, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338570 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1181595226888176426, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338571 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3213883545862531888, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338572 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1338464322197219464, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338573 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1663619109631998250, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338574 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6993814384659194821, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338575 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6411905218465408447, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338576 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7521714804058972836, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} m_PrefabAsset: {fileID: 0} ---- !u!4 &418178501 stripped +--- !u!4 &390338577 stripped Transform: - m_CorrespondingSourceObject: {fileID: 2615749128829108470, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} + m_CorrespondingSourceObject: {fileID: 8643270440885740404, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} m_PrefabAsset: {fileID: 0} ---- !u!4 &461806964 stripped +--- !u!4 &390338578 stripped Transform: - m_CorrespondingSourceObject: {fileID: 3400439068070495373, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} + m_CorrespondingSourceObject: {fileID: 2995967285700267941, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} m_PrefabAsset: {fileID: 0} ---- !u!4 &472370611 stripped +--- !u!4 &390338579 stripped Transform: - m_CorrespondingSourceObject: {fileID: 7847581812954233322, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} + m_CorrespondingSourceObject: {fileID: 7408145670149407156, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} m_PrefabAsset: {fileID: 0} ---- !u!4 &474789949 stripped +--- !u!4 &390338580 stripped Transform: - m_CorrespondingSourceObject: {fileID: 492494068934581955, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} + m_CorrespondingSourceObject: {fileID: 3859283074556241695, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} m_PrefabAsset: {fileID: 0} +--- !u!4 &390338581 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7632325980162130821, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338582 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 590237559207922719, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338583 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2049538296574691380, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338584 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7950210686059532222, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338585 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2668954778363618414, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338586 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6576415999193215080, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338587 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 643590618074184931, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338588 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6988617122292689610, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338589 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7492993243109080698, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338590 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 9019542851784826371, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338591 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8180358943245997742, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338592 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 872071424880093975, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338593 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5143728039558552314, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338594 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4731876549282996363, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338595 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4415973643819662304, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338596 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6855752700826169652, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338597 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 9041131911780874934, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338598 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4536010120253694820, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338599 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2474534056614120794, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338600 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6628332399607492248, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338601 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1236334709570363584, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338602 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7430084000468278707, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!4 &390338603 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5141792950361344063, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} +--- !u!114 &390338604 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7986394284228639730, guid: 7e1dc9106b4ef4227a0160436ba98ced, type: 3} + m_PrefabInstance: {fileID: 390338566} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a95044baf65b10c4e89b246d2f881ac9, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &432086290 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 432086291} + m_Layer: 0 + m_Name: LeftHandAnchorDetached + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &432086291 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 432086290} + 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: 1032955161} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &477545143 PrefabInstance: m_ObjectHideFlags: 0 @@ -392,11 +611,11 @@ PrefabInstance: - target: {fileID: 2798372348693892148, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} propertyPath: _ovrFaceExpressions value: - objectReference: {fileID: 338789857} + objectReference: {fileID: 390338604} - target: {fileID: 4271415050658874122, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} propertyPath: _ovrFaceExpressions value: - objectReference: {fileID: 338789857} + objectReference: {fileID: 390338604} - target: {fileID: 8658488230205805792, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} propertyPath: m_Name value: SceneSelectMenu @@ -447,11 +666,6 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} ---- !u!4 &487908488 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 1814267006412282634, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} --- !u!1001 &564222107 PrefabInstance: m_ObjectHideFlags: 0 @@ -513,16 +727,38 @@ PrefabInstance: objectReference: {fileID: 1853165310} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: caf1104dfe6d01c4e9dabd59f18e535a, type: 3} ---- !u!4 &585751134 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8160349101843041571, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} +--- !u!1 &568173554 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} ---- !u!4 &637200001 stripped + serializedVersion: 6 + m_Component: + - component: {fileID: 568173555} + m_Layer: 0 + m_Name: LeftControllerInHandAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &568173555 Transform: - m_CorrespondingSourceObject: {fileID: 4420826698126478553, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 568173554} + 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: + - {fileID: 811929954} + m_Father: {fileID: 2097346131} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &642860452 GameObject: m_ObjectHideFlags: 0 @@ -630,21 +866,68 @@ PrefabInstance: objectReference: {fileID: 1853165312} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: caf1104dfe6d01c4e9dabd59f18e535a, type: 3} ---- !u!4 &719847376 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8565594098525157978, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} +--- !u!1 &811929953 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} ---- !u!4 &732637564 stripped + serializedVersion: 6 + m_Component: + - component: {fileID: 811929954} + m_Layer: 0 + m_Name: LeftHandOnControllerAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &811929954 Transform: - m_CorrespondingSourceObject: {fileID: 8658333499061904492, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} ---- !u!4 &745484609 stripped + m_GameObject: {fileID: 811929953} + 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: 568173555} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &818423630 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 818423631} + m_Layer: 0 + m_Name: RightHandOnControllerAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &818423631 Transform: - m_CorrespondingSourceObject: {fileID: 1869870799671864310, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 818423630} + 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: 12707108} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &851446170 GameObject: m_ObjectHideFlags: 0 @@ -675,26 +958,12 @@ Transform: m_Children: - {fileID: 998197330} - {fileID: 1438888680} + - {fileID: 1171584013} - {fileID: 2094724099} - {fileID: 1686754103} m_Father: {fileID: 0} m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!4 &906841005 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7363663391121949853, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} ---- !u!4 &929519113 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4057809391609751628, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} ---- !u!4 &938489071 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 5370529331450009473, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} --- !u!1001 &938568254 PrefabInstance: m_ObjectHideFlags: 0 @@ -756,6 +1025,37 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} +--- !u!1 &965816506 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 965816507} + m_Layer: 0 + m_Name: RightHandAnchorDetached + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &965816507 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 965816506} + 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: 1032955161} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &998197329 GameObject: m_ObjectHideFlags: 0 @@ -850,15 +1150,236 @@ Light: m_UseViewFrustumForShadowCasterCull: 1 m_ShadowRadius: 0 m_ShadowAngle: 0 ---- !u!4 &1000281984 stripped +--- !u!4 &1032955161 stripped Transform: - m_CorrespondingSourceObject: {fileID: 3716775801310997171, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} + m_CorrespondingSourceObject: {fileID: 459718, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + m_PrefabInstance: {fileID: 2097346129} m_PrefabAsset: {fileID: 0} ---- !u!4 &1025859825 stripped +--- !u!1001 &1171584012 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 851446171} + m_Modifications: + - target: {fileID: 4586958073313416898, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _faceExpressions + value: + objectReference: {fileID: 390338604} + - target: {fileID: 4586958074552888787, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _faceExpressions + value: + objectReference: {fileID: 390338604} + - target: {fileID: 4586958074618282428, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4586958074618282428, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _ovrFaceExpressions + value: + objectReference: {fileID: 390338604} + - target: {fileID: 7050836453888093357, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: m_Name + value: AuraWithTongue - Mirrored + objectReference: {fileID: 0} + - target: {fileID: 7679282542875227671, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7679282542875227671, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7679282542875227671, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7679282542875227671, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7679282542875227671, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7679282542875227671, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7679282542875227671, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7679282542875227671, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7679282542875227671, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7679282542875227671, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7679282542875227671, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _skeletonToCopy + value: + objectReference: {fileID: 390338567} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[0].OriginalBone + value: + objectReference: {fileID: 390338592} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[1].OriginalBone + value: + objectReference: {fileID: 390338591} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[2].OriginalBone + value: + objectReference: {fileID: 390338590} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[3].OriginalBone + value: + objectReference: {fileID: 390338586} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[4].OriginalBone + value: + objectReference: {fileID: 390338582} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[5].OriginalBone + value: + objectReference: {fileID: 390338603} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[6].OriginalBone + value: + objectReference: {fileID: 390338602} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[7].OriginalBone + value: + objectReference: {fileID: 390338601} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[8].OriginalBone + value: + objectReference: {fileID: 390338597} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[9].OriginalBone + value: + objectReference: {fileID: 390338593} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[10].OriginalBone + value: + objectReference: {fileID: 390338571} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[11].OriginalBone + value: + objectReference: {fileID: 390338572} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[12].OriginalBone + value: + objectReference: {fileID: 390338573} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[13].OriginalBone + value: + objectReference: {fileID: 390338568} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[14].OriginalBone + value: + objectReference: {fileID: 390338569} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[15].OriginalBone + value: + objectReference: {fileID: 390338570} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[16].OriginalBone + value: + objectReference: {fileID: 390338577} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[17].OriginalBone + value: + objectReference: {fileID: 390338578} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[18].OriginalBone + value: + objectReference: {fileID: 390338579} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[19].OriginalBone + value: + objectReference: {fileID: 390338574} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[20].OriginalBone + value: + objectReference: {fileID: 390338575} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[21].OriginalBone + value: + objectReference: {fileID: 390338576} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[22].OriginalBone + value: + objectReference: {fileID: 390338583} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[23].OriginalBone + value: + objectReference: {fileID: 390338584} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[24].OriginalBone + value: + objectReference: {fileID: 390338585} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[25].OriginalBone + value: + objectReference: {fileID: 390338587} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[26].OriginalBone + value: + objectReference: {fileID: 390338588} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[27].OriginalBone + value: + objectReference: {fileID: 390338589} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[28].OriginalBone + value: + objectReference: {fileID: 390338594} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[29].OriginalBone + value: + objectReference: {fileID: 390338595} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[30].OriginalBone + value: + objectReference: {fileID: 390338596} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[31].OriginalBone + value: + objectReference: {fileID: 390338598} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[32].OriginalBone + value: + objectReference: {fileID: 390338599} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[33].OriginalBone + value: + objectReference: {fileID: 390338600} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[34].OriginalBone + value: + objectReference: {fileID: 390338580} + - target: {fileID: 9113924184540537749, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + propertyPath: _mirroredBonePairs.Array.data[35].OriginalBone + value: + objectReference: {fileID: 390338581} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} +--- !u!4 &1171584013 stripped Transform: - m_CorrespondingSourceObject: {fileID: 3803822332041905031, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} + m_CorrespondingSourceObject: {fileID: 7679282542875227671, guid: b2e64c8c2ec8b4b9eb8f461a43f655ef, type: 3} + m_PrefabInstance: {fileID: 1171584012} m_PrefabAsset: {fileID: 0} --- !u!1001 &1235700453 PrefabInstance: @@ -921,16 +1442,6 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} ---- !u!4 &1249525720 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2150983583248977150, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} ---- !u!4 &1312182469 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 5685630397771454173, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} --- !u!1001 &1404505943 PrefabInstance: m_ObjectHideFlags: 0 @@ -1044,16 +1555,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 5545149144574972019, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} m_PrefabInstance: {fileID: 1404505943} m_PrefabAsset: {fileID: 0} ---- !u!4 &1428514347 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 118838387238511811, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} ---- !u!4 &1432506149 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8326383765505920294, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} --- !u!1001 &1438888679 PrefabInstance: m_ObjectHideFlags: 0 @@ -1064,159 +1565,163 @@ PrefabInstance: - target: {fileID: 2267799048079188300, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _faceExpressions value: - objectReference: {fileID: 338789857} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _skeletonToCopy value: - objectReference: {fileID: 2044729478} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[0].OriginalBone value: - objectReference: {fileID: 1249525720} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[1].OriginalBone value: - objectReference: {fileID: 1894828740} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[2].OriginalBone value: - objectReference: {fileID: 472370611} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[3].OriginalBone value: - objectReference: {fileID: 938489071} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[4].OriginalBone value: - objectReference: {fileID: 745484609} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[5].OriginalBone value: - objectReference: {fileID: 86349598} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[6].OriginalBone value: - objectReference: {fileID: 719847376} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[7].OriginalBone value: - objectReference: {fileID: 1770004740} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[8].OriginalBone value: - objectReference: {fileID: 1520363872} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[9].OriginalBone value: - objectReference: {fileID: 1932136559} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[10].OriginalBone value: - objectReference: {fileID: 637200001} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[11].OriginalBone value: - objectReference: {fileID: 1655080565} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[12].OriginalBone value: - objectReference: {fileID: 474789949} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[13].OriginalBone value: - objectReference: {fileID: 2091017508} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[14].OriginalBone value: - objectReference: {fileID: 1432506149} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[15].OriginalBone value: - objectReference: {fileID: 1428514347} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[16].OriginalBone value: - objectReference: {fileID: 906841005} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[17].OriginalBone value: - objectReference: {fileID: 929519113} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[18].OriginalBone value: - objectReference: {fileID: 295800113} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[19].OriginalBone value: - objectReference: {fileID: 47947179} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[20].OriginalBone value: - objectReference: {fileID: 2066700438} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[21].OriginalBone value: - objectReference: {fileID: 2102093178} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[22].OriginalBone value: - objectReference: {fileID: 1836730120} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[23].OriginalBone value: - objectReference: {fileID: 1586760128} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[24].OriginalBone value: - objectReference: {fileID: 1025859825} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[25].OriginalBone value: - objectReference: {fileID: 487908488} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[26].OriginalBone value: - objectReference: {fileID: 585751134} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[27].OriginalBone value: - objectReference: {fileID: 1548674639} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[28].OriginalBone value: - objectReference: {fileID: 1514094813} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[29].OriginalBone value: - objectReference: {fileID: 2027375733} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[30].OriginalBone value: - objectReference: {fileID: 1312182469} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[31].OriginalBone value: - objectReference: {fileID: 461806964} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[32].OriginalBone value: - objectReference: {fileID: 1000281984} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[33].OriginalBone value: - objectReference: {fileID: 2045335701} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[34].OriginalBone value: - objectReference: {fileID: 418178501} + objectReference: {fileID: 0} - target: {fileID: 2536231694802738737, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _mirroredBonePairs.Array.data[35].OriginalBone value: - objectReference: {fileID: 732637564} + objectReference: {fileID: 0} - target: {fileID: 2550476028627066485, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: m_Name value: AuraMirrored objectReference: {fileID: 0} + - target: {fileID: 2550476028627066485, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 2895476751637890255, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: m_RootOrder value: 1 @@ -1264,7 +1769,7 @@ PrefabInstance: - target: {fileID: 3734935905854523833, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _faceExpressions value: - objectReference: {fileID: 338789857} + objectReference: {fileID: 0} - target: {fileID: 8865039754712819280, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: m_Enabled value: 1 @@ -1272,7 +1777,7 @@ PrefabInstance: - target: {fileID: 8865039754712819280, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} propertyPath: _ovrFaceExpressions value: - objectReference: {fileID: 338789857} + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} --- !u!4 &1438888680 stripped @@ -1280,21 +1785,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 2895476751637890255, guid: ba603d7826a9d9344a7c045f1a073390, type: 3} m_PrefabInstance: {fileID: 1438888679} m_PrefabAsset: {fileID: 0} ---- !u!4 &1514094813 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 5794141357479823202, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} ---- !u!4 &1520363872 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7834963631821954399, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} ---- !u!4 &1548674639 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8520698193000044947, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} --- !u!1001 &1548721494 PrefabInstance: m_ObjectHideFlags: 0 @@ -1364,16 +1854,6 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 835e735ca71bf78459fb2cababd74112, type: 3} ---- !u!4 &1586760128 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 9193885352273143895, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} ---- !u!4 &1655080565 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 238904423246909281, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} --- !u!1 &1686754102 GameObject: m_ObjectHideFlags: 0 @@ -1404,7 +1884,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 851446171} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 6.693, y: 289.123, z: 72.38} --- !u!108 &1686754104 Light: @@ -1468,11 +1948,6 @@ Light: m_UseViewFrustumForShadowCasterCull: 1 m_ShadowRadius: 0 m_ShadowAngle: 0 ---- !u!4 &1770004740 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 66352937753036585, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} --- !u!1001 &1790575144 PrefabInstance: m_ObjectHideFlags: 0 @@ -1534,11 +2009,6 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} ---- !u!4 &1836730120 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 986992297073405917, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} --- !u!1001 &1853165309 PrefabInstance: m_ObjectHideFlags: 0 @@ -1652,11 +2122,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 83685398960850492, guid: fbfc588a949bb1a42b20e5bddc4cf8cf, type: 3} m_PrefabInstance: {fileID: 1853165309} m_PrefabAsset: {fileID: 0} ---- !u!4 &1894828740 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 6937115062404493639, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} --- !u!1001 &1918804857 PrefabInstance: m_ObjectHideFlags: 0 @@ -1767,37 +2232,6 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 835e735ca71bf78459fb2cababd74112, type: 3} ---- !u!4 &1932136559 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 6242513676157664531, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} ---- !u!4 &2027375733 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 3209761254539533321, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} ---- !u!114 &2044729478 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 3732059742009787979, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 674a40251fe8ad841b18517ac5209957, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!4 &2045335701 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 5350132638922213745, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} ---- !u!4 &2066700438 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 5276043551722242646, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} --- !u!1 &2076536254 GameObject: m_ObjectHideFlags: 0 @@ -1986,11 +2420,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} ---- !u!4 &2091017508 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 3040114485284841193, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} --- !u!1 &2094724098 GameObject: m_ObjectHideFlags: 0 @@ -2021,7 +2450,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 851446171} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 14.671, y: 338.6, z: 78.095} --- !u!108 &2094724100 Light: @@ -2196,11 +2625,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 13b3318f5d2f2d54393fdd91b1970751, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!4 &2102093178 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8764448769166329165, guid: 1ac7885a83f6c4741addf95e0ceea891, type: 3} - m_PrefabInstance: {fileID: 338789853} - m_PrefabAsset: {fileID: 0} --- !u!1001 &2476541158994686476 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Samples/Scenes/MovementBlendshapeMappingExample.unity b/Samples/Scenes/MovementBlendshapeMappingExample.unity index 6301c56f..c74e06ba 100644 --- a/Samples/Scenes/MovementBlendshapeMappingExample.unity +++ b/Samples/Scenes/MovementBlendshapeMappingExample.unity @@ -123,6 +123,38 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &11866984 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 11866985} + m_Layer: 0 + m_Name: RightControllerInHandAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &11866985 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 11866984} + 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: + - {fileID: 2123792917} + m_Father: {fileID: 2097346132} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &23275527 GameObject: m_ObjectHideFlags: 0 @@ -797,6 +829,37 @@ Transform: m_CorrespondingSourceObject: {fileID: 2747730224568278618, guid: 70c1ec55e63be294f92b377695e53302, type: 3} m_PrefabInstance: {fileID: 1844149371} m_PrefabAsset: {fileID: 0} +--- !u!1 &893696617 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 893696618} + m_Layer: 0 + m_Name: RightHandAnchorDetached + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &893696618 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 893696617} + 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: 1328425359} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &903951107 stripped Transform: m_CorrespondingSourceObject: {fileID: 2055742801895016221, guid: 4f6634390b1d87c488b90ffe9aa5d702, type: 3} @@ -1093,6 +1156,11 @@ Transform: m_CorrespondingSourceObject: {fileID: 7449292010121941889, guid: 70c1ec55e63be294f92b377695e53302, type: 3} m_PrefabInstance: {fileID: 1844149371} m_PrefabAsset: {fileID: 0} +--- !u!4 &1328425359 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 459718, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + m_PrefabInstance: {fileID: 2097346129} + m_PrefabAsset: {fileID: 0} --- !u!1001 &1404505943 PrefabInstance: m_ObjectHideFlags: 0 @@ -1622,11 +1690,74 @@ Transform: m_CorrespondingSourceObject: {fileID: 8082333127555231696, guid: 4f6634390b1d87c488b90ffe9aa5d702, type: 3} m_PrefabInstance: {fileID: 1561311111} m_PrefabAsset: {fileID: 0} +--- !u!1 &1762506789 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1762506790} + m_Layer: 0 + m_Name: LeftHandOnControllerAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1762506790 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1762506789} + 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: 1779134144} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &1776024879 stripped Transform: m_CorrespondingSourceObject: {fileID: 5244368838297366373, guid: 4f6634390b1d87c488b90ffe9aa5d702, type: 3} m_PrefabInstance: {fileID: 1561311111} m_PrefabAsset: {fileID: 0} +--- !u!1 &1779134143 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1779134144} + m_Layer: 0 + m_Name: LeftControllerInHandAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1779134144 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1779134143} + 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: + - {fileID: 1762506790} + m_Father: {fileID: 2097346131} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &1785405832 stripped Transform: m_CorrespondingSourceObject: {fileID: 1990495893587582008, guid: 70c1ec55e63be294f92b377695e53302, type: 3} @@ -2440,6 +2571,24 @@ Transform: m_CorrespondingSourceObject: {fileID: 3206834323034422351, guid: 70c1ec55e63be294f92b377695e53302, type: 3} m_PrefabInstance: {fileID: 1844149371} m_PrefabAsset: {fileID: 0} +--- !u!1 &1844149373 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2867427915179452149, guid: 70c1ec55e63be294f92b377695e53302, type: 3} + m_PrefabInstance: {fileID: 1844149371} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1844149374 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1844149373} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 274835e4e2feae04b87f0d000555f8a4, type: 3} + m_Name: + m_EditorClassIdentifier: + _providedSkeletonType: 0 --- !u!1001 &1853165309 PrefabInstance: m_ObjectHideFlags: 0 @@ -2693,6 +2842,37 @@ Transform: m_CorrespondingSourceObject: {fileID: 1502899699220297356, guid: 70c1ec55e63be294f92b377695e53302, type: 3} m_PrefabInstance: {fileID: 1844149371} m_PrefabAsset: {fileID: 0} +--- !u!1 &1954411104 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1954411105} + m_Layer: 0 + m_Name: LeftHandAnchorDetached + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1954411105 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1954411104} + 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: 1328425359} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &1964776331 stripped Transform: m_CorrespondingSourceObject: {fileID: 1292583167331237465, guid: 4f6634390b1d87c488b90ffe9aa5d702, type: 3} @@ -3121,6 +3301,37 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 13b3318f5d2f2d54393fdd91b1970751, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &2123792916 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2123792917} + m_Layer: 0 + m_Name: RightHandOnControllerAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2123792917 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2123792916} + 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: 11866985} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &2132290614 stripped Transform: m_CorrespondingSourceObject: {fileID: 3684499879929461753, guid: 70c1ec55e63be294f92b377695e53302, type: 3} diff --git a/Samples/Scenes/MovementHighFidelity.unity b/Samples/Scenes/MovementHighFidelity.unity index f7f8f25a..d34668cb 100644 --- a/Samples/Scenes/MovementHighFidelity.unity +++ b/Samples/Scenes/MovementHighFidelity.unity @@ -260,6 +260,7 @@ MonoBehaviour: m_EditorClassIdentifier: HandType: 1 _pointerPoseRoot: {fileID: 1725491925} + m_showState: 3 --- !u!1001 &93580076 PrefabInstance: m_ObjectHideFlags: 0 @@ -402,6 +403,38 @@ Transform: m_CorrespondingSourceObject: {fileID: 2001547177827195915, guid: 566315f3a83d28341a878d894d4feca3, type: 3} m_PrefabInstance: {fileID: 645097915} m_PrefabAsset: {fileID: 0} +--- !u!1 &183046850 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 183046851} + m_Layer: 0 + m_Name: LeftControllerInHandAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &183046851 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 183046850} + 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: + - {fileID: 1870521406} + m_Father: {fileID: 1725491927} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &217809098 GameObject: m_ObjectHideFlags: 0 @@ -437,6 +470,11 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &231784326 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 459718, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + m_PrefabInstance: {fileID: 1725491922} + m_PrefabAsset: {fileID: 0} --- !u!4 &328043515 stripped Transform: m_CorrespondingSourceObject: {fileID: 3193790350860734130, guid: 87903eea09623ae4a9457dd17b46d93e, type: 3} @@ -607,6 +645,10 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 0} m_Modifications: + - target: {fileID: 1933170782430618965, guid: 566315f3a83d28341a878d894d4feca3, type: 3} + propertyPath: _rigToggleOnFocus + value: 0 + objectReference: {fileID: 0} - target: {fileID: 2561547567721264650, guid: 566315f3a83d28341a878d894d4feca3, type: 3} propertyPath: m_Name value: HighFidelityFirstPerson @@ -736,6 +778,37 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d952c175ec3c6554199fd744548ce50a, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &913407483 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 913407484} + m_Layer: 0 + m_Name: RightHandAnchorDetached + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &913407484 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 913407483} + 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: 231784326} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &925250236 stripped Transform: m_CorrespondingSourceObject: {fileID: 205543766343305595, guid: 566315f3a83d28341a878d894d4feca3, type: 3} @@ -1379,6 +1452,7 @@ MonoBehaviour: m_EditorClassIdentifier: HandType: 0 _pointerPoseRoot: {fileID: 1725491925} + m_showState: 3 --- !u!4 &1259570857 stripped Transform: m_CorrespondingSourceObject: {fileID: 5463775779351168343, guid: 566315f3a83d28341a878d894d4feca3, type: 3} @@ -1493,6 +1567,69 @@ Light: m_UseViewFrustumForShadowCasterCull: 1 m_ShadowRadius: 0 m_ShadowAngle: 0 +--- !u!1 &1381946664 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1381946665} + m_Layer: 0 + m_Name: RightControllerInHandAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1381946665 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1381946664} + 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: + - {fileID: 1517976943} + m_Father: {fileID: 1725491926} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1517976942 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1517976943} + m_Layer: 0 + m_Name: RightHandOnControllerAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1517976943 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1517976942} + 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: 1381946665} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &1629986362 stripped Transform: m_CorrespondingSourceObject: {fileID: 8171288238379911719, guid: 566315f3a83d28341a878d894d4feca3, type: 3} @@ -1789,11 +1926,130 @@ Transform: m_CorrespondingSourceObject: {fileID: 2351689378477139741, guid: 566315f3a83d28341a878d894d4feca3, type: 3} m_PrefabInstance: {fileID: 645097915} m_PrefabAsset: {fileID: 0} +--- !u!1 &1870521405 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1870521406} + m_Layer: 0 + m_Name: LeftHandOnControllerAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1870521406 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1870521405} + 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: 183046851} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1872841226 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1872841227} + m_Layer: 0 + m_Name: LeftHandAnchorDetached + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1872841227 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1872841226} + 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: 231784326} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &1905307916 stripped Transform: m_CorrespondingSourceObject: {fileID: 237930284793799618, guid: 566315f3a83d28341a878d894d4feca3, type: 3} m_PrefabInstance: {fileID: 645097915} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1929693008 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_RootOrder + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.x + value: -0.875 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.z + value: -0.407 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.x + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.z + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471434, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_Name + value: BodyTrackingFidelityToggle + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0737e3f63e17bac45b774695173860d1, type: 3} --- !u!1001 &1951164776 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Samples/Scenes/MovementHipPinning.unity b/Samples/Scenes/MovementHipPinning.unity index 7383bfd4..738dea17 100644 --- a/Samples/Scenes/MovementHipPinning.unity +++ b/Samples/Scenes/MovementHipPinning.unity @@ -201,11 +201,74 @@ Transform: m_CorrespondingSourceObject: {fileID: 3350530247479060347, guid: d58e14a8ab54f24428fbc3e051bf50f5, type: 3} m_PrefabInstance: {fileID: 551610152} m_PrefabAsset: {fileID: 0} +--- !u!1 &51149273 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 51149274} + m_Layer: 0 + m_Name: LeftControllerInHandAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &51149274 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 51149273} + 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: + - {fileID: 516573878} + m_Father: {fileID: 127940095} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &79229698 stripped Transform: m_CorrespondingSourceObject: {fileID: 4125661287277911189, guid: d58e14a8ab54f24428fbc3e051bf50f5, type: 3} m_PrefabInstance: {fileID: 551610152} m_PrefabAsset: {fileID: 0} +--- !u!1 &117296795 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 117296796} + m_Layer: 0 + m_Name: LeftHandAnchorDetached + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &117296796 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 117296795} + 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: 1345984282} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &127940095 stripped Transform: m_CorrespondingSourceObject: {fileID: 482130, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} @@ -604,6 +667,37 @@ GameObject: m_CorrespondingSourceObject: {fileID: 2567101040732880021, guid: bc3f0e03432171b4a934d508d7df1bca, type: 3} m_PrefabInstance: {fileID: 804730340} m_PrefabAsset: {fileID: 0} +--- !u!1 &516573877 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 516573878} + m_Layer: 0 + m_Name: LeftHandOnControllerAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &516573878 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 516573877} + 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: 51149274} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &522667889 stripped Transform: m_CorrespondingSourceObject: {fileID: 1014346871493952158, guid: aa6451b2c95f5584fa019e1eb42e1536, type: 3} @@ -851,6 +945,10 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 257095862529243277, guid: bc3f0e03432171b4a934d508d7df1bca, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 747047141393442697, guid: bc3f0e03432171b4a934d508d7df1bca, type: 3} propertyPath: m_Data.m_Target value: @@ -915,6 +1013,10 @@ PrefabInstance: propertyPath: m_Name value: HighFidelityHipPinningFirstPerson objectReference: {fileID: 0} + - target: {fileID: 1741218239049055554, guid: bc3f0e03432171b4a934d508d7df1bca, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2949926527234871885, guid: bc3f0e03432171b4a934d508d7df1bca, type: 3} propertyPath: m_LocalPosition.x value: 0.19999997 @@ -1588,6 +1690,37 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!1 &1064994720 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1064994721} + m_Layer: 0 + m_Name: RightHandAnchorDetached + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1064994721 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1064994720} + 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: 1345984282} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &1112354246 stripped Transform: m_CorrespondingSourceObject: {fileID: 1066807844683816777, guid: d58e14a8ab54f24428fbc3e051bf50f5, type: 3} @@ -1695,6 +1828,7 @@ MonoBehaviour: m_EditorClassIdentifier: HandType: 1 _pointerPoseRoot: {fileID: 361435593} + m_showState: 3 --- !u!4 &1179204934 stripped Transform: m_CorrespondingSourceObject: {fileID: 1188504392089412552, guid: d58e14a8ab54f24428fbc3e051bf50f5, type: 3} @@ -1813,6 +1947,37 @@ Transform: m_CorrespondingSourceObject: {fileID: 4154210162335435616, guid: bc3f0e03432171b4a934d508d7df1bca, type: 3} m_PrefabInstance: {fileID: 804730340} m_PrefabAsset: {fileID: 0} +--- !u!1 &1220759788 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1220759789} + m_Layer: 0 + m_Name: RightHandOnControllerAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1220759789 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1220759788} + 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: 1829964754} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &1263528852 stripped Transform: m_CorrespondingSourceObject: {fileID: 6171397758821561763, guid: bc3f0e03432171b4a934d508d7df1bca, type: 3} @@ -1873,6 +2038,11 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 13 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1345984282 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 459718, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + m_PrefabInstance: {fileID: 361435587} + m_PrefabAsset: {fileID: 0} --- !u!1 &1378099949 stripped GameObject: m_CorrespondingSourceObject: {fileID: 8045791010571789425, guid: aa6451b2c95f5584fa019e1eb42e1536, type: 3} @@ -2014,6 +2184,7 @@ MonoBehaviour: m_EditorClassIdentifier: HandType: 0 _pointerPoseRoot: {fileID: 361435593} + m_showState: 3 --- !u!1001 &1517599764 PrefabInstance: m_ObjectHideFlags: 0 @@ -2442,6 +2613,63 @@ Transform: m_CorrespondingSourceObject: {fileID: 1632928558548522276, guid: bc3f0e03432171b4a934d508d7df1bca, type: 3} m_PrefabInstance: {fileID: 804730340} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1745391659 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_RootOrder + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.x + value: -0.875 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.z + value: -0.407 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.x + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.z + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471434, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_Name + value: BodyTrackingFidelityToggle + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0737e3f63e17bac45b774695173860d1, type: 3} --- !u!4 &1778452685 stripped Transform: m_CorrespondingSourceObject: {fileID: 5504533049474937555, guid: d58e14a8ab54f24428fbc3e051bf50f5, type: 3} @@ -2452,6 +2680,38 @@ Transform: m_CorrespondingSourceObject: {fileID: 8343745682743778248, guid: bc3f0e03432171b4a934d508d7df1bca, type: 3} m_PrefabInstance: {fileID: 804730340} m_PrefabAsset: {fileID: 0} +--- !u!1 &1829964753 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1829964754} + m_Layer: 0 + m_Name: RightControllerInHandAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1829964754 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1829964753} + 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: + - {fileID: 1220759789} + m_Father: {fileID: 947772452} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1863112869 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 1054376643923719174, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} diff --git a/Samples/Scenes/MovementISDKIntegration.unity b/Samples/Scenes/MovementISDKIntegration.unity index 42683d84..f1bc613e 100644 --- a/Samples/Scenes/MovementISDKIntegration.unity +++ b/Samples/Scenes/MovementISDKIntegration.unity @@ -228,20 +228,68 @@ Transform: m_CorrespondingSourceObject: {fileID: 6966857970010877544, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} +--- !u!1001 &50906629 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 8443568635789723409, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_Name + value: BTCalibrationButton + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_RootOrder + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalPosition.x + value: -0.875 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalPosition.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalPosition.z + value: -0.275 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalRotation.x + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalRotation.z + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} --- !u!4 &51472184 stripped Transform: m_CorrespondingSourceObject: {fileID: 7074563621144590399, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} ---- !u!319 &52514089 -AvatarMask: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 - m_Elements: [] --- !u!4 &93568388 stripped Transform: m_CorrespondingSourceObject: {fileID: 3599611966401181169, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} @@ -1181,8 +1229,88 @@ MonoBehaviour: _positionPinning: Enabled: 0 MaxPinDistance: 0 + PinningEaseCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ResyncCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.2 _recoilAssist: Enabled: 0 + UseDynamicDecay: 0 + DynamicDecayCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 50 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9 + value: 0.5 + inSlope: -47 + outSlope: -47 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + UseVelocityExpansion: 0 + VelocityExpansionMinSpeed: 0.4 + VelocityExpansionMaxSpeed: 1.4 + VelocityExpansionDistance: 0.055 + VelocityExpansionDecayRate: 0.125 ExitDistance: 0.02 ReEnterDistance: 0.02 _closeDistanceThreshold: 0.001 @@ -1288,7 +1416,7 @@ MonoBehaviour: OnActivate: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1313465879} + - m_Target: {fileID: 947634417} m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[UnityEngine.HumanBodyBones, UnityEngine m_MethodName: set_IsShowingLines @@ -1304,7 +1432,7 @@ MonoBehaviour: OnDeactivate: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1313465879} + - m_Target: {fileID: 947634417} m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[UnityEngine.HumanBodyBones, UnityEngine m_MethodName: set_IsShowingLines @@ -1323,7 +1451,7 @@ MonoBehaviour: OnActivate: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1313465879} + - m_Target: {fileID: 947634417} m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[UnityEngine.HumanBodyBones, UnityEngine m_MethodName: set_IsShowingAxes @@ -1339,7 +1467,7 @@ MonoBehaviour: OnDeactivate: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1313465879} + - m_Target: {fileID: 947634417} m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[UnityEngine.HumanBodyBones, UnityEngine m_MethodName: set_IsShowingAxes @@ -1358,7 +1486,7 @@ MonoBehaviour: OnActivate: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1313465879} + - m_Target: {fileID: 947634417} m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[UnityEngine.HumanBodyBones, UnityEngine m_MethodName: set_IsShowingAxes @@ -1371,7 +1499,7 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 1 m_CallState: 2 - - m_Target: {fileID: 1313465879} + - m_Target: {fileID: 947634417} m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[UnityEngine.HumanBodyBones, UnityEngine m_MethodName: set_IsShowingLines @@ -1387,7 +1515,7 @@ MonoBehaviour: OnDeactivate: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1313465879} + - m_Target: {fileID: 947634417} m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[UnityEngine.HumanBodyBones, UnityEngine m_MethodName: set_IsShowingAxes @@ -1400,7 +1528,7 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - - m_Target: {fileID: 1313465879} + - m_Target: {fileID: 947634417} m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[UnityEngine.HumanBodyBones, UnityEngine m_MethodName: set_IsShowingLines @@ -1551,6 +1679,37 @@ Transform: m_CorrespondingSourceObject: {fileID: 8361321661816597808, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} +--- !u!1 &601350642 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 601350643} + m_Layer: 0 + m_Name: LeftHandAnchorDetached + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &601350643 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 601350642} + 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: 2075359726} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &609117981 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 482801000701448007, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} @@ -1603,6 +1762,106 @@ Transform: m_CorrespondingSourceObject: {fileID: 3715466454324626421, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} +--- !u!1001 &800006208 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1803550042} + m_Modifications: + - target: {fileID: 1236458827194487761, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: _maskToVisualize + value: + objectReference: {fileID: 31900000, guid: 8267e3d56146c7e43bd0296dc7f86558, type: 2} + - target: {fileID: 1236458827194487761, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: _ovrSkeletonComp + value: + objectReference: {fileID: 1320817568} + - target: {fileID: 1692031724233491721, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_Name + value: DebugBonesOVRSkeletonFullBody + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} +--- !u!4 &800006209 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + m_PrefabInstance: {fileID: 800006208} + m_PrefabAsset: {fileID: 0} +--- !u!1 &800006210 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1692031724233491721, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + m_PrefabInstance: {fileID: 800006208} + m_PrefabAsset: {fileID: 0} +--- !u!114 &800006211 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1236458827194487761, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + m_PrefabInstance: {fileID: 800006208} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 800006210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f7ef839cc9cacff4091af449079bbce3, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &800006212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 800006210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 84fe64f23f2a68b4a86633382680187d, type: 3} + m_Name: + m_EditorClassIdentifier: + _boneVisualizer: {fileID: 800006211} + _lineColor: {r: 0.6037736, g: 0.6037736, b: 0.6037736, a: 0.5019608} --- !u!4 &801156447 stripped Transform: m_CorrespondingSourceObject: {fileID: 7706974062571457071, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} @@ -1719,6 +1978,95 @@ Transform: m_CorrespondingSourceObject: {fileID: 8251760988216600566, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} +--- !u!1001 &947634415 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1803550042} + m_Modifications: + - target: {fileID: 669339439527238448, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: _animatorComp + value: + objectReference: {fileID: 1313172172} + - target: {fileID: 669339439527238449, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_Name + value: DebugBones + objectReference: {fileID: 0} + - target: {fileID: 669339439527238462, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: _lineColor.b + value: 0.0627451 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238462, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: _lineColor.g + value: 0.6039216 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238462, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: _lineColor.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} +--- !u!4 &947634416 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + m_PrefabInstance: {fileID: 947634415} + m_PrefabAsset: {fileID: 0} +--- !u!114 &947634417 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 669339439527238448, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + m_PrefabInstance: {fileID: 947634415} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c79d7660e6ccc8a47882b41bfbda4978, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!4 &1026697025 stripped Transform: m_CorrespondingSourceObject: {fileID: 6969163518431648179, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} @@ -1743,39 +2091,39 @@ PrefabInstance: m_Modifications: - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.size - value: 6 + value: 8 objectReference: {fileID: 0} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[0].label - value: DrawOVRSkeletonBones Initial + value: DebugBonesOVRSkeletonFullBody objectReference: {fileID: 0} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[1].label - value: LeftHandISDK + value: LeftHandSynthetic objectReference: {fileID: 0} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[2].label - value: RightHandISDK + value: RightHandSynthetic objectReference: {fileID: 0} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[3].label - value: LeftControllerHand + value: LeftControllerHandSynthentic objectReference: {fileID: 0} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[4].label - value: RightControllerHand + value: RightControllerHandSynthetic objectReference: {fileID: 0} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[5].label - value: Retarget Hands + value: Blend Hands Right objectReference: {fileID: 0} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[6].label - value: Retarget Hands + value: Blend Hands Left objectReference: {fileID: 0} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[7].label - value: DebugBonesOVRSkeleton Processed + value: Retargeted Bone Targets objectReference: {fileID: 0} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[0].Enabled @@ -1799,11 +2147,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[5].Enabled - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[6].Enabled - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[7].Enabled @@ -1812,7 +2160,7 @@ PrefabInstance: - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[0].Processor value: - objectReference: {fileID: 1639108944} + objectReference: {fileID: 800006211} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[1].Processor value: @@ -1832,19 +2180,31 @@ PrefabInstance: - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[5].Processor value: - objectReference: {fileID: 1313172174} + objectReference: {fileID: 1077107420} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[6].Processor value: - objectReference: {fileID: 1313172174} + objectReference: {fileID: 1077107419} - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: _skeletonProcessors.Array.data[7].Processor value: - objectReference: {fileID: 0} + objectReference: {fileID: 1077107418} - target: {fileID: 1443914921768874357, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: m_Name value: ArmatureSkinningUpdateRetargetSkeletonProcessor objectReference: {fileID: 0} + - target: {fileID: 2444161089806565791, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7486900986326145928, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7901607669017022897, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8760844189829344787, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} propertyPath: m_RootOrder value: 0 @@ -1896,6 +2256,39 @@ Transform: m_CorrespondingSourceObject: {fileID: 8760844189829344787, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} +--- !u!114 &1077107418 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2519393238448185555, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e99c227ec21d72d45b36011069f2b263, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1077107419 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2444161089806565791, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8359a52c8182ca247b2064624e74dffb, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1077107420 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7486900986326145928, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8359a52c8182ca247b2064624e74dffb, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!114 &1080009793 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 2143258140644656283, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} @@ -1928,11 +2321,74 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 5c67033f580359c4581dff1ccffcca91, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &1150841218 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1150841219} + m_Layer: 0 + m_Name: RightControllerInHandAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1150841219 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1150841218} + 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: + - {fileID: 1604474858} + m_Father: {fileID: 2075359723} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &1166936339 stripped Transform: m_CorrespondingSourceObject: {fileID: 97385810576080294, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} +--- !u!1 &1187683666 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1187683667} + m_Layer: 0 + m_Name: RightHandAnchorDetached + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1187683667 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187683666} + 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: 2075359726} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1189990871 PrefabInstance: m_ObjectHideFlags: 0 @@ -2005,11 +2461,100 @@ Transform: m_CorrespondingSourceObject: {fileID: 2924620594742007848, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} +--- !u!1 &1248782088 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1248782089} + m_Layer: 0 + m_Name: LeftControllerInHandAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1248782089 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1248782088} + 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: + - {fileID: 1445610575} + m_Father: {fileID: 2075359724} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &1254955912 stripped Transform: m_CorrespondingSourceObject: {fileID: 5208342001094232904, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1284353486 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.x + value: -0.875 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.z + value: -0.446 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.x + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.z + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471434, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_Name + value: BodyTrackingFidelityToggle + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0737e3f63e17bac45b774695173860d1, type: 3} --- !u!114 &1289915232 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 3744647067011934911, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} @@ -2036,257 +2581,22 @@ Transform: m_CorrespondingSourceObject: {fileID: 8590939900806535248, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} ---- !u!114 &1313172171 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 5579424741214871902, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} - m_PrefabInstance: {fileID: 1077107416} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 31e3b6438933e1945a67ef8d4db811bf, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!95 &1313172172 stripped Animator: m_CorrespondingSourceObject: {fileID: 8172159923276885446, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} ---- !u!114 &1313172174 stripped +--- !u!114 &1320817568 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 1483202515538247245, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_CorrespondingSourceObject: {fileID: 2324633634594971607, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e00344307bbe4d949bfcf8eddb0caf22, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &1313465878 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1313465880} - - component: {fileID: 1313465879} - - component: {fileID: 1313465881} - m_Layer: 0 - m_Name: DrawRetargetedBones - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1313465879 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1313465878} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c79d7660e6ccc8a47882b41bfbda4978, type: 3} - m_Name: - m_EditorClassIdentifier: - _whenToRender: 0 - _visualizationGuideType: 0 - _maskToVisualize: {fileID: 31900000, guid: 8267e3d56146c7e43bd0296dc7f86558, type: 2} - _customBoneVisualData: - BoneTuples: - - FirstBone: 0 - SecondBone: 7 - Hide: 0 - - FirstBone: 1 - SecondBone: 3 - Hide: 0 - - FirstBone: 2 - SecondBone: 4 - Hide: 0 - - FirstBone: 3 - SecondBone: 5 - Hide: 0 - - FirstBone: 4 - SecondBone: 6 - Hide: 0 - - FirstBone: 5 - SecondBone: 19 - Hide: 0 - - FirstBone: 6 - SecondBone: 20 - Hide: 0 - - FirstBone: 7 - SecondBone: 8 - Hide: 0 - - FirstBone: 8 - SecondBone: 54 - Hide: 0 - - FirstBone: 9 - SecondBone: 10 - Hide: 0 - - FirstBone: 11 - SecondBone: 13 - Hide: 0 - - FirstBone: 12 - SecondBone: 14 - Hide: 0 - - FirstBone: 13 - SecondBone: 15 - Hide: 0 - - FirstBone: 14 - SecondBone: 16 - Hide: 0 - - FirstBone: 15 - SecondBone: 17 - Hide: 0 - - FirstBone: 16 - SecondBone: 18 - Hide: 0 - - FirstBone: 17 - SecondBone: 30 - Hide: 0 - - FirstBone: 18 - SecondBone: 45 - Hide: 0 - - FirstBone: 10 - SecondBone: 21 - Hide: 0 - - FirstBone: 10 - SecondBone: 22 - Hide: 0 - - FirstBone: 10 - SecondBone: 23 - Hide: 0 - - FirstBone: 24 - SecondBone: 25 - Hide: 0 - - FirstBone: 25 - SecondBone: 26 - Hide: 0 - - FirstBone: 26 - SecondBone: 55 - Hide: 0 - - FirstBone: 27 - SecondBone: 28 - Hide: 0 - - FirstBone: 28 - SecondBone: 29 - Hide: 0 - - FirstBone: 29 - SecondBone: 55 - Hide: 0 - - FirstBone: 30 - SecondBone: 31 - Hide: 0 - - FirstBone: 31 - SecondBone: 32 - Hide: 0 - - FirstBone: 32 - SecondBone: 55 - Hide: 0 - - FirstBone: 33 - SecondBone: 34 - Hide: 0 - - FirstBone: 34 - SecondBone: 35 - Hide: 0 - - FirstBone: 35 - SecondBone: 55 - Hide: 0 - - FirstBone: 36 - SecondBone: 37 - Hide: 0 - - FirstBone: 37 - SecondBone: 38 - Hide: 0 - - FirstBone: 38 - SecondBone: 55 - Hide: 0 - - FirstBone: 39 - SecondBone: 40 - Hide: 0 - - FirstBone: 40 - SecondBone: 41 - Hide: 0 - - FirstBone: 41 - SecondBone: 55 - Hide: 0 - - FirstBone: 42 - SecondBone: 43 - Hide: 0 - - FirstBone: 43 - SecondBone: 44 - Hide: 0 - - FirstBone: 44 - SecondBone: 55 - Hide: 0 - - FirstBone: 45 - SecondBone: 46 - Hide: 0 - - FirstBone: 46 - SecondBone: 47 - Hide: 0 - - FirstBone: 47 - SecondBone: 55 - Hide: 0 - - FirstBone: 48 - SecondBone: 49 - Hide: 0 - - FirstBone: 49 - SecondBone: 50 - Hide: 0 - - FirstBone: 50 - SecondBone: 55 - Hide: 0 - - FirstBone: 51 - SecondBone: 52 - Hide: 0 - - FirstBone: 52 - SecondBone: 53 - Hide: 0 - - FirstBone: 53 - SecondBone: 55 - Hide: 0 - - FirstBone: 54 - SecondBone: 9 - Hide: 0 - _lineRendererPrefab: {fileID: 7812178534108119229, guid: 6d28b0d0a0ff2234cbf60710c8c912dc, type: 3} - _axisRendererPrefab: {fileID: 106719106145556050, guid: 6103ef5d90d602545af4eb910563af03, type: 3} - _visualType: 0 - _animatorComp: {fileID: 1313172172} ---- !u!4 &1313465880 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1313465878} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.81499124, y: 1.347516, z: 0.12875414} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1803550042} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1313465881 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1313465878} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 84fe64f23f2a68b4a86633382680187d, type: 3} + m_Script: {fileID: 11500000, guid: 31e3b6438933e1945a67ef8d4db811bf, type: 3} m_Name: m_EditorClassIdentifier: - _boneVisualizer: {fileID: 1313465879} - _lineColor: {r: 0, g: 0.6037736, b: 0.061561298, a: 1} --- !u!4 &1324704613 stripped Transform: m_CorrespondingSourceObject: {fileID: 417454297435961822, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} @@ -2606,6 +2916,37 @@ Transform: m_CorrespondingSourceObject: {fileID: 1223301293031907702, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} +--- !u!1 &1445610574 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1445610575} + m_Layer: 0 + m_Name: LeftHandOnControllerAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1445610575 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1445610574} + 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: 1248782089} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1449796210 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 8553364197529364881, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} @@ -2663,22 +3004,7 @@ Transform: m_CorrespondingSourceObject: {fileID: 6149187573652144265, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} ---- !u!4 &1613670143 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4288676402574179919, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} - m_PrefabInstance: {fileID: 1077107416} - m_PrefabAsset: {fileID: 0} ---- !u!4 &1625053692 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2759354151399661757, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} - m_PrefabInstance: {fileID: 1077107416} - m_PrefabAsset: {fileID: 0} ---- !u!4 &1638463124 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 2004115084450931551, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} - m_PrefabInstance: {fileID: 1077107416} - m_PrefabAsset: {fileID: 0} ---- !u!1 &1639108941 +--- !u!1 &1604474857 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2686,72 +3012,106 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1639108943} - - component: {fileID: 1639108944} - - component: {fileID: 1639108945} + - component: {fileID: 1604474858} m_Layer: 0 - m_Name: DrawOVRSkeletonBones Initial + m_Name: RightHandOnControllerAnchor m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1639108943 +--- !u!4 &1604474858 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1639108941} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.81499124, y: 1.347516, z: 0.12875414} + m_GameObject: {fileID: 1604474857} + 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: 1803550042} - m_RootOrder: 1 + m_Father: {fileID: 1150841219} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1639108944 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} +--- !u!4 &1613670143 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4288676402574179919, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1639108941} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ab1e3682a8676d84faba89a2aee068e8, type: 3} - m_Name: - m_EditorClassIdentifier: - _whenToRender: 0 - _visualizationGuideType: 0 - _maskToVisualize: {fileID: 52514089} - _customBoneVisualData: - BoneTuples: [] - _lineRendererPrefab: {fileID: 7812178534108119229, guid: 91a281e92421c464e837420766cafd02, type: 3} - _axisRendererPrefab: {fileID: 106719106145556050, guid: 6103ef5d90d602545af4eb910563af03, type: 3} - _visualType: 0 - _ovrSkeletonComp: {fileID: 1313172171} - _visualizeBindPose: 0 ---- !u!114 &1639108945 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} +--- !u!4 &1625053692 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2759354151399661757, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1638463124 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2004115084450931551, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1639108941} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 84fe64f23f2a68b4a86633382680187d, type: 3} - m_Name: - m_EditorClassIdentifier: - _boneVisualizer: {fileID: 1639108944} - _lineColor: {r: 0.6037736, g: 0.6037736, b: 0.6037736, a: 0.5019608} --- !u!4 &1666254363 stripped Transform: m_CorrespondingSourceObject: {fileID: 5709010148866722606, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} m_PrefabInstance: {fileID: 1077107416} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1715135811 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 8658488230205805792, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_Name + value: SceneSelectMenu + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalPosition.x + value: -0.875 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalPosition.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalPosition.z + value: 0.106 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalRotation.x + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalRotation.z + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} --- !u!1001 &1718088514 PrefabInstance: m_ObjectHideFlags: 0 @@ -2944,8 +3304,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1313465880} - - {fileID: 1639108943} + - {fileID: 947634416} + - {fileID: 800006209} m_Father: {fileID: 0} m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -3302,6 +3662,11 @@ Transform: m_CorrespondingSourceObject: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} m_PrefabInstance: {fileID: 2075359721} m_PrefabAsset: {fileID: 0} +--- !u!4 &2075359726 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 459718, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + m_PrefabInstance: {fileID: 2075359721} + m_PrefabAsset: {fileID: 0} --- !u!1 &2076536254 GameObject: m_ObjectHideFlags: 0 @@ -3891,7 +4256,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7716747580197146831, guid: 94313e563929cb3499e3989be338a213, type: 3} propertyPath: m_Name - value: RightHandISDK + value: RightHandSynthetic objectReference: {fileID: 0} - target: {fileID: 7716747580197146831, guid: 94313e563929cb3499e3989be338a213, type: 3} propertyPath: m_IsActive @@ -4919,8 +5284,88 @@ MonoBehaviour: _positionPinning: Enabled: 0 MaxPinDistance: 0 + PinningEaseCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ResyncCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.2 _recoilAssist: Enabled: 0 + UseDynamicDecay: 0 + DynamicDecayCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 50 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9 + value: 0.5 + inSlope: -47 + outSlope: -47 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + UseVelocityExpansion: 0 + VelocityExpansionMinSpeed: 0.4 + VelocityExpansionMaxSpeed: 1.4 + VelocityExpansionDistance: 0.055 + VelocityExpansionDecayRate: 0.125 ExitDistance: 0.02 ReEnterDistance: 0.02 _closeDistanceThreshold: 0.001 @@ -5286,9 +5731,9 @@ MonoBehaviour: OnActivate: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1639108944} - m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[Oculus.Movement.AnimationRigging.CustomMappings+BodyTrackingBoneId, - Meta.Movement + - m_Target: {fileID: 800006211} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[OVRUnityHumanoidSkeletonRetargeter+OVRHumanBodyBonesMappings+BodyTrackingBoneId, + Oculus.VR m_MethodName: set_IsShowingLines m_Mode: 6 m_Arguments: @@ -5302,9 +5747,9 @@ MonoBehaviour: OnDeactivate: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1639108944} - m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[Oculus.Movement.AnimationRigging.CustomMappings+BodyTrackingBoneId, - Meta.Movement + - m_Target: {fileID: 800006211} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[OVRUnityHumanoidSkeletonRetargeter+OVRHumanBodyBonesMappings+BodyTrackingBoneId, + Oculus.VR m_MethodName: set_IsShowingLines m_Mode: 6 m_Arguments: @@ -5321,9 +5766,9 @@ MonoBehaviour: OnActivate: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1639108944} - m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[Oculus.Movement.AnimationRigging.CustomMappings+BodyTrackingBoneId, - Meta.Movement + - m_Target: {fileID: 800006211} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[OVRUnityHumanoidSkeletonRetargeter+OVRHumanBodyBonesMappings+BodyTrackingBoneId, + Oculus.VR m_MethodName: set_IsShowingAxes m_Mode: 6 m_Arguments: @@ -5337,9 +5782,9 @@ MonoBehaviour: OnDeactivate: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1639108944} - m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[Oculus.Movement.AnimationRigging.CustomMappings+BodyTrackingBoneId, - Meta.Movement + - m_Target: {fileID: 800006211} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[OVRUnityHumanoidSkeletonRetargeter+OVRHumanBodyBonesMappings+BodyTrackingBoneId, + Oculus.VR m_MethodName: set_IsShowingAxes m_Mode: 6 m_Arguments: @@ -5356,9 +5801,9 @@ MonoBehaviour: OnActivate: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1639108944} - m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[Oculus.Movement.AnimationRigging.CustomMappings+BodyTrackingBoneId, - Meta.Movement + - m_Target: {fileID: 800006211} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[OVRUnityHumanoidSkeletonRetargeter+OVRHumanBodyBonesMappings+BodyTrackingBoneId, + Oculus.VR m_MethodName: set_IsShowingAxes m_Mode: 6 m_Arguments: @@ -5369,9 +5814,9 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 1 m_CallState: 2 - - m_Target: {fileID: 1639108944} - m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[Oculus.Movement.AnimationRigging.CustomMappings+BodyTrackingBoneId, - Meta.Movement + - m_Target: {fileID: 800006211} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[OVRUnityHumanoidSkeletonRetargeter+OVRHumanBodyBonesMappings+BodyTrackingBoneId, + Oculus.VR m_MethodName: set_IsShowingLines m_Mode: 6 m_Arguments: @@ -5385,9 +5830,9 @@ MonoBehaviour: OnDeactivate: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1639108944} - m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[Oculus.Movement.AnimationRigging.CustomMappings+BodyTrackingBoneId, - Meta.Movement + - m_Target: {fileID: 800006211} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[OVRUnityHumanoidSkeletonRetargeter+OVRHumanBodyBonesMappings+BodyTrackingBoneId, + Oculus.VR m_MethodName: set_IsShowingAxes m_Mode: 6 m_Arguments: @@ -5398,9 +5843,9 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - - m_Target: {fileID: 1639108944} - m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[Oculus.Movement.AnimationRigging.CustomMappings+BodyTrackingBoneId, - Meta.Movement + - m_Target: {fileID: 800006211} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[OVRUnityHumanoidSkeletonRetargeter+OVRHumanBodyBonesMappings+BodyTrackingBoneId, + Oculus.VR m_MethodName: set_IsShowingLines m_Mode: 6 m_Arguments: @@ -6151,7 +6596,7 @@ PrefabInstance: m_Modifications: - target: {fileID: 2552751781337300309, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} propertyPath: m_Name - value: RightControllerHand + value: RightControllerHandSynthetic objectReference: {fileID: 0} - target: {fileID: 3781269207718660015, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} propertyPath: _hmdData @@ -6239,7 +6684,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 8445982241883230424, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} propertyPath: m_Name - value: LeftControllerHand + value: LeftControllerHandSynthentic objectReference: {fileID: 0} - target: {fileID: 9205377790416818695, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} propertyPath: _hmdData @@ -6282,17 +6727,12 @@ MonoBehaviour: m_CorrespondingSourceObject: {fileID: 5679112963636671120, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} m_PrefabInstance: {fileID: 8031081105206769664} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8031081105206769668} + m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 1a379f34d4f4f2e408d34f14bfb753ce, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1 &8031081105206769668 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 5679112963636671122, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} - m_PrefabInstance: {fileID: 8031081105206769664} - m_PrefabAsset: {fileID: 0} --- !u!1 &8031081105206769669 stripped GameObject: m_CorrespondingSourceObject: {fileID: 2552751781337300309, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} @@ -6325,17 +6765,12 @@ MonoBehaviour: m_CorrespondingSourceObject: {fileID: 5679112963167615785, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} m_PrefabInstance: {fileID: 8031081105206769664} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8031081105206769673} + m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 1a379f34d4f4f2e408d34f14bfb753ce, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1 &8031081105206769673 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 5679112963167615787, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} - m_PrefabInstance: {fileID: 8031081105206769664} - m_PrefabAsset: {fileID: 0} --- !u!1 &8031081105206769674 stripped GameObject: m_CorrespondingSourceObject: {fileID: 8445982241883230424, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} @@ -6417,7 +6852,7 @@ PrefabInstance: m_Modifications: - target: {fileID: 336358375985414314, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} propertyPath: m_Name - value: LeftHandISDK + value: LeftHandSynthetic objectReference: {fileID: 0} - target: {fileID: 336358375985414315, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} propertyPath: m_RootOrder @@ -6477,36 +6912,6 @@ PrefabInstance: objectReference: {fileID: 1289915232} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} ---- !u!114 &8635390806020974082 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8031081105206769668} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 932aa90fceecb0c4f8f4f94f0497f6bf, type: 3} - m_Name: - m_EditorClassIdentifier: - _hand: {fileID: 8031081105206769667} - _cameraRig: {fileID: 0} - _handsAreOffset: 0 ---- !u!114 &8635390806020974095 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8031081105206769673} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 932aa90fceecb0c4f8f4f94f0497f6bf, type: 3} - m_Name: - m_EditorClassIdentifier: - _hand: {fileID: 8031081105206769672} - _cameraRig: {fileID: 0} - _handsAreOffset: 0 --- !u!1 &8669358150443712908 GameObject: m_ObjectHideFlags: 0 diff --git a/Samples/Scenes/MovementLocomotion.meta b/Samples/Scenes/MovementLocomotion.meta new file mode 100644 index 00000000..244e7938 --- /dev/null +++ b/Samples/Scenes/MovementLocomotion.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1e60570ce98b97e41819f51e1e3917a3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Scenes/MovementLocomotion.unity b/Samples/Scenes/MovementLocomotion.unity new file mode 100644 index 00000000..db9e6232 --- /dev/null +++ b/Samples/Scenes/MovementLocomotion.unity @@ -0,0 +1,10172 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 2100000, guid: 69c55b26f7a9bef4eb62a052fd5f09d8, type: 2} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 0 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 112000000, guid: 0e94c34020014384d8f75a20735cb676, type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: 06a7531d6c4401f4e839d5cccb057117, type: 2} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &23275527 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 23275530} + - component: {fileID: 23275529} + - component: {fileID: 23275528} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &23275528 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23275527} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &23275529 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23275527} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &23275530 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23275527} + 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: 2116101680} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &23981674 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6966857970010877544, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &39895792 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 39895793} + - component: {fileID: 39895798} + - component: {fileID: 39895797} + - component: {fileID: 39895796} + - component: {fileID: 39895800} + - component: {fileID: 39895802} + m_Layer: 0 + m_Name: PlayerController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &39895793 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39895792} + 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: + - {fileID: 623067467} + - {fileID: 904061304} + - {fileID: 2140129715} + - {fileID: 317372560} + - {fileID: 2060050693} + - {fileID: 553045916} + - {fileID: 562641233} + - {fileID: 657627063} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &39895796 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39895792} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d8b04f7c021d17418b69af396cacb05, type: 3} + m_Name: + m_EditorClassIdentifier: + _rigidbody: {fileID: 39895797} + _collider: {fileID: 39895800} + _enableMovement: 1 + _enableRotation: 1 + _scaleInputByActualVelocity: 1 + _rotationAngle: 45 + _rotationPerSecond: 180 + _speed: 3 + _cameraRig: {fileID: 2075359722} + _joystickEvents: + OnDirectionChange: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 562641234} + m_TargetAssemblyTypeName: ActivatableStateSet, Assembly-CSharp + m_MethodName: RefreshActiveDuration + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + OnUserInputChange: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1438153950} + m_TargetAssemblyTypeName: Oculus.Movement.Experimental.Effects.SkeletonPostprocess.AnimatorHooks, + Assembly-CSharp + m_MethodName: set_InputHorizontalVertical + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 562641234} + m_TargetAssemblyTypeName: EventSet, Assembly-CSharp + m_MethodName: RefreshActiveDuration + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + OnStartMove: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 657627065} + m_TargetAssemblyTypeName: Oculus.Movement.Locomotion.AnimationConstraintBlender, + Meta.Movement + m_MethodName: StartApplyingAnimFor + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Locomotion + m_BoolArgument: 1 + m_CallState: 2 + - m_Target: {fileID: 562641234} + m_TargetAssemblyTypeName: EventSet, Assembly-CSharp + m_MethodName: ActivatePersistent + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + OnStopMove: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 657627065} + m_TargetAssemblyTypeName: Oculus.Movement.Locomotion.AnimationConstraintBlender, + Meta.Movement + m_MethodName: FinishApplyingAnimFor + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Locomotion + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 562641234} + m_TargetAssemblyTypeName: EventSet, Assembly-CSharp + m_MethodName: DeactivateAfterDuration + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!54 &39895797 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39895792} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 112 + m_CollisionDetection: 0 +--- !u!136 &39895798 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39895792} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + m_Radius: 0.25 + m_Height: 1.75 + m_Direction: 1 + m_Center: {x: 0, y: 0.875, z: 0} +--- !u!135 &39895800 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39895792} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.125 + m_Center: {x: 0, y: 0.125, z: 0} +--- !u!114 &39895802 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39895792} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 09663e1973f351a4c96d0e674d862aa7, type: 3} + m_Name: + m_EditorClassIdentifier: + _collider: {fileID: 39895800} + _expectedBodyCapsule: {fileID: 39895798} + _characterRoot: {fileID: 1438153949} + _floorLayerMask: + serializedVersion: 2 + m_Bits: 1 + _trackingHips: {fileID: 314474975} + _trackingToes: + - {fileID: 2122434358} + _colliderFollowsToes: 0 +--- !u!1001 &51453787 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1402157681} + m_Modifications: + - target: {fileID: 3925386263601755969, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Name + value: East Wall + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalScale.x + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalScale.y + value: 2.142857 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalPosition.x + value: -7.5 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalPosition.y + value: 1.0716 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755975, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755975, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: e35a7dcffa71bc34ebdfbe151325efc0, type: 2} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.x + value: 1.1 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.y + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.z + value: 0.5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} +--- !u!4 &51453788 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + m_PrefabInstance: {fileID: 51453787} + m_PrefabAsset: {fileID: 0} +--- !u!4 &51472184 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7074563621144590399, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &61097732 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1402157681} + m_Modifications: + - target: {fileID: 3925386263601755969, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Name + value: South Wall + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalScale.y + value: 2.142857 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalPosition.y + value: 1.0716 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalPosition.z + value: -7.5 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755975, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755975, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: e35a7dcffa71bc34ebdfbe151325efc0, type: 2} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.x + value: 1.1 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.y + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.z + value: 0.5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} +--- !u!4 &61097733 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + m_PrefabInstance: {fileID: 61097732} + m_PrefabAsset: {fileID: 0} +--- !u!4 &93568388 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3599611966401181169, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &93649112 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2845051768877536155, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &101591864 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2075359723} + m_Modifications: + - target: {fileID: 1870938896605422, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_Name + value: OVRHandPrefab + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114252240061623322, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114428879332287356, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: HandType + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114567484643301796, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: _skeletonType + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114925265787909616, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 137619227449585070, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 835e735ca71bf78459fb2cababd74112, type: 3} +--- !u!4 &122643805 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3121999643486862700, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &154150111 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3866993049841975265, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &169975275 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4880818590952162880, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &179158707 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3013551191228670510, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &180603709 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8429040223833613391, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &189146826 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5668517920813934811, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &217809098 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 217809099} + m_Layer: 0 + m_Name: MirroredObjects + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &217809099 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 217809098} + m_LocalRotation: {x: 0, y: 1, z: -0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 4.94} + m_LocalScale: {x: -1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3138635617795618173} + m_Father: {fileID: 2019202368} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} +--- !u!4 &227670047 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3223056302397991057, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &251523188 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7534726215880525351, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &263969893 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7633426268668189108, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &265398208 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8773166734788149168, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &307227082 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 307227083} + - component: {fileID: 307227086} + - component: {fileID: 307227085} + - component: {fileID: 307227084} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &307227083 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307227082} + 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: 514289298} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!135 &307227084 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307227082} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &307227085 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307227082} + m_Enabled: 0 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 48480f36a4c1a1d4a942c29395b4b09f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &307227086 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307227082} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &310365599 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 310365600} + - component: {fileID: 310365602} + - component: {fileID: 310365601} + m_Layer: 0 + m_Name: BasicPokeButtonPressAudio + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &310365600 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 310365599} + 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: 974724787} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &310365601 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 310365599} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 925ef87c5bafc37469a2f7ec825dee4b, type: 3} + m_Name: + m_EditorClassIdentifier: + _audioSource: {fileID: 0} + _audioClips: + - {fileID: 8300000, guid: 56fe077fa3d84f24c951589f5d187be2, type: 3} + _volume: 0.5 + _volumeRandomization: + _useRandomRange: 0 + _min: 0 + _max: 0 + _pitch: 1 + _pitchRandomization: + _useRandomRange: 0 + _min: 0 + _max: 0 + _spatialize: 1 + _loop: 0 + _chanceToPlay: 100 + _playOnStart: 0 +--- !u!82 &310365602 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 310365599} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!4 &314474975 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5564684331733223827, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &317372559 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 317372560} + - component: {fileID: 317372562} + - component: {fileID: 317372561} + - component: {fileID: 317372564} + - component: {fileID: 317372563} + m_Layer: 0 + m_Name: Controls + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &317372560 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317372559} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1.595, z: 0.205} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 39895793} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &317372561 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317372559} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9466ee2425d200c488b8bbab62331e51, type: 3} + m_Name: + m_EditorClassIdentifier: + _buttonJump: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2060050696} + m_TargetAssemblyTypeName: Oculus.Movement.Experimental.Effects.SkeletonPostprocess.JumpingRigidbody, + Assembly-CSharp + m_MethodName: set_JumpInput + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + _axisHorizontalVertical: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 39895796} + m_TargetAssemblyTypeName: Oculus.Movement.Experimental.Effects.SkeletonPostprocess.JoystickLocomotion, + Assembly-CSharp + m_MethodName: set_UserInput + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + _keyBindings: + - name: Q - Turn Left + KeyCode: 113 + Notify: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 39895796} + m_TargetAssemblyTypeName: Oculuse.Movement.Locomotion.MovementSDKLocomotion, + Assembly-CSharp + m_MethodName: set_SmoothTurnLeft + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - name: E - Turn Right + KeyCode: 101 + Notify: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 39895796} + m_TargetAssemblyTypeName: Oculuse.Movement.Locomotion.MovementSDKLocomotion, + Assembly-CSharp + m_MethodName: set_SmoothTurnRight + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + _onUpdate: 0 + _onFixedUpdate: 1 +--- !u!114 &317372562 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317372559} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9d204f528119c6340a9d51a987212abf, type: 3} + m_Name: + m_EditorClassIdentifier: + _buttonBindings: + - name: Jump + Button: 2 + Controller: 2 + Notify: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2060050696} + m_TargetAssemblyTypeName: Oculus.Movement.Locomotion.JumpingRigidbody, + Assembly-CSharp + m_MethodName: set_JumpInput + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - name: Snap Turn Left + Button: 67108864 + Controller: 3 + Notify: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 39895796} + m_TargetAssemblyTypeName: Oculuse.Movement.Locomotion.MovementSDKLocomotion, + Assembly-CSharp + m_MethodName: set_SnapTurnLeft + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - name: Snap Turn Right + Button: 134217728 + Controller: 3 + Notify: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 39895796} + m_TargetAssemblyTypeName: Oculuse.Movement.Locomotion.MovementSDKLocomotion, + Assembly-CSharp + m_MethodName: set_SnapTurnRight + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + joystickBindings: + - name: Move + Axis: 2 + Notify: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 39895796} + m_TargetAssemblyTypeName: Oculus.Movement.Experimental.Effects.SkeletonPostprocess.MovementSDKLocomotion, + Assembly-CSharp + m_MethodName: set_UserInput + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + _onUpdate: 0 + _onFixedUpdate: 1 +--- !u!114 &317372563 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317372559} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2b341e2d1ac5f6c4ca2c5b2a1814802b, type: 3} + m_Name: + m_EditorClassIdentifier: + _index: 0 + _wrapIndex: 1 + _states: + - Name: calculating body tracking state + Ignored: 0 + ObjectsToActivate: [] + OnActivate: + m_PersistentCalls: + m_Calls: [] + OnDeactivate: + m_PersistentCalls: + m_Calls: [] + - Name: Headset Not Connected + Ignored: 0 + ObjectsToActivate: [] + OnActivate: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2140129714} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 623067468} + m_TargetAssemblyTypeName: Oculus.Movement.Experimental.Effects.SkeletonPostprocess.TransformsFollowMe, + Assembly-CSharp + m_MethodName: DoFollowMe + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 2075359729} + m_TargetAssemblyTypeName: Oculus.Movement.Experimental.Effects.SkeletonPostprocess.ReorderInHierarchy, + Assembly-CSharp + m_MethodName: BecomeChildOfLoseOldPosition + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 317372560} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Transform, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 2075359729} + m_TargetAssemblyTypeName: Oculus.Movement.Experimental.Effects.SkeletonPostprocess.ReorderInHierarchy, + Assembly-CSharp + m_MethodName: BecomeChildOf + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 1058411551} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Transform, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + OnDeactivate: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2140129714} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + - m_Target: {fileID: 2075359729} + m_TargetAssemblyTypeName: Oculus.Movement.Experimental.Effects.SkeletonPostprocess.ReorderInHierarchy, + Assembly-CSharp + m_MethodName: BecomeChildOfLoseOldPosition + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 1058411551} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Transform, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + - Name: Body Tracking Not Working + Ignored: 0 + ObjectsToActivate: [] + OnActivate: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2140129714} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + OnDeactivate: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2140129714} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + - Name: Body Tracking Working + Ignored: 0 + ObjectsToActivate: [] + OnActivate: + m_PersistentCalls: + m_Calls: [] + OnDeactivate: + m_PersistentCalls: + m_Calls: [] + _onSetNameChange: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &317372564 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317372559} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5482f7aeddd088c4996446ae2f4ef04c, type: 3} + m_Name: + m_EditorClassIdentifier: + _stateListeners: + HeadsetNotConnected: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 317372563} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.ActivateToggle, Meta.Movement + m_MethodName: set_Index + m_Mode: 3 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 1 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + BodyTrackingNotWorking: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 317372563} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.ActivateToggle, Meta.Movement + m_MethodName: set_Index + m_Mode: 3 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 2 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + BodyTrackingWorking: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 317372563} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.ActivateToggle, Meta.Movement + m_MethodName: set_Index + m_Mode: 3 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 3 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + _maxWaitTimeForBodyTracking: 3 +--- !u!114 &347759230 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 482801000701448007, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + m_PrefabInstance: {fileID: 2569425559013660177} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d952c175ec3c6554199fd744548ce50a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &391734554 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4869577802921675287, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + m_PrefabInstance: {fileID: 9046911637164694215} + m_PrefabAsset: {fileID: 0} +--- !u!1 &396246437 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 396246438} + - component: {fileID: 396246441} + - component: {fileID: 396246440} + - component: {fileID: 396246439} + - component: {fileID: 396246445} + m_Layer: 0 + m_Name: EmbodimentTimerIcon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &396246438 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 396246437} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 422135693} + m_Father: {fileID: 562641233} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 1.5} + m_SizeDelta: {x: 1, y: 1} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &396246439 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 396246437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &396246440 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 396246437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &396246441 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 396246437} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &396246445 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 396246437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a78b6686dabfbe46ae659e7d6f3824a, type: 3} + m_Name: + m_EditorClassIdentifier: + _transformToCopy: {fileID: 2075359726} + _myTransform: {fileID: 396246438} + _mirroredTransformPairs: [] + _mirrorScale: 0 +--- !u!1001 &398028469 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.x + value: -0.875 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.z + value: -0.407 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.x + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.z + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471434, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_Name + value: BodyTrackingFidelityToggle + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0737e3f63e17bac45b774695173860d1, type: 3} +--- !u!4 &417665234 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1091656508850216855, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &419586345 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 9048238750646488156, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + m_PrefabInstance: {fileID: 9046911637164694215} + m_PrefabAsset: {fileID: 0} +--- !u!1 &422135692 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 422135693} + - component: {fileID: 422135695} + - component: {fileID: 422135694} + - component: {fileID: 422135696} + m_Layer: 0 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &422135693 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 422135692} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 396246438} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &422135694 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 422135692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: e3265ab4bf004d28a9537516768c1c75, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 6024573630758458039, guid: 64f884351318b694f942625580e64a8b, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 0.6666667 + m_FillClockwise: 1 + m_FillOrigin: 3 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &422135695 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 422135692} + m_CullTransparentMesh: 1 +--- !u!1818360609 &422135696 +RotationConstraint: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 422135692} + m_Enabled: 1 + m_Weight: 1 + m_RotationAtRest: {x: 0, y: 0, z: 0} + m_RotationOffset: {x: 0, y: 0, z: 0} + m_AffectRotationX: 1 + m_AffectRotationY: 1 + m_AffectRotationZ: 1 + m_IsContraintActive: 1 + m_IsLocked: 0 + m_Sources: + - sourceTransform: {fileID: 2075359726} + weight: 1 +--- !u!1 &442971950 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 442971951} + m_Layer: 0 + m_Name: LocomotionMenu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &442971951 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 442971950} + m_LocalRotation: {x: 0.12059043, y: 0.37940952, z: -0.04995019, w: 0.9159757} + m_LocalPosition: {x: 0.25, y: 1.25, z: 0.125} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1309374989} + - {fileID: 1384519068} + - {fileID: 2145572035} + m_Father: {fileID: 2116101680} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 15, y: 45, z: 0} +--- !u!4 &465810342 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3194590330428951880, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!114 &467632616 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8662184561472330084, guid: 94313e563929cb3499e3989be338a213, type: 3} + m_PrefabInstance: {fileID: 420457022317728250} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9af9ea683544b184083cef283557012d, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &495366330 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8155571852894561868, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &502473284 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2938660255558938488, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &506310689 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 506310690} + m_Layer: 0 + m_Name: LeftHandAnchorDetached + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &506310690 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 506310689} + 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: 1058411551} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &514289297 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 514289298} + - component: {fileID: 514289299} + m_Layer: 0 + m_Name: lime sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &514289298 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 514289297} + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: -5.5, y: 5, z: 5.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 307227083} + m_Father: {fileID: 1913150167} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!108 &514289299 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 514289297} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 0 + m_Shape: 0 + m_Color: {r: 0.8571446, g: 1, b: 0, a: 1} + m_Intensity: 3 + m_Range: 10 + m_SpotAngle: 90 + m_InnerSpotAngle: 9 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 2 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &514886297 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8361321661816597808, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &553045915 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 553045916} + - component: {fileID: 553045917} + m_Layer: 0 + m_Name: ReappearAfterFall + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &553045916 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 553045915} + 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: 39895793} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &553045917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 553045915} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cabb7e5fdbde6df419ebfea296cc3616, type: 3} + m_Name: + m_EditorClassIdentifier: + _rigidbody: {fileID: 39895797} + _minimumY: -10 +--- !u!1 &562641232 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 562641233} + - component: {fileID: 562641234} + m_Layer: 0 + m_Name: Disembodiment + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &562641233 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 562641232} + 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: + - {fileID: 396246438} + m_Father: {fileID: 39895793} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &562641234 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 562641232} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1136cfcd2e9e3ed43ab0f850276a99cb, type: 3} + m_Name: + m_EditorClassIdentifier: + _set: + - Name: Embodied Character + Initialize: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 623067466} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + - m_Target: {fileID: 623067468} + m_TargetAssemblyTypeName: UnityEngine.Behaviour, UnityEngine + m_MethodName: set_enabled + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + Release: + m_PersistentCalls: + m_Calls: [] + Activate: + m_PersistentCalls: + m_Calls: [] + Deactivate: + m_PersistentCalls: + m_Calls: [] + - Name: Disembodied Character + Initialize: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 623067466} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 396246437} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + Release: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 623067466} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + - m_Target: {fileID: 396246437} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + Activate: + m_PersistentCalls: + m_Calls: [] + Deactivate: + m_PersistentCalls: + m_Calls: [] + - Name: Disembodied Movement + Initialize: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 623067466} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + Release: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 623067468} + m_TargetAssemblyTypeName: UnityEngine.Behaviour, UnityEngine + m_MethodName: set_enabled + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + Activate: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 623067468} + m_TargetAssemblyTypeName: UnityEngine.Behaviour, UnityEngine + m_MethodName: set_enabled + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + Deactivate: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 623067468} + m_TargetAssemblyTypeName: UnityEngine.Behaviour, UnityEngine + m_MethodName: set_enabled + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + _index: 0 + _minimumActivateDuration: 1.5 + _onTimerChange: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 422135694} + m_TargetAssemblyTypeName: UnityEngine.UI.Image, UnityEngine.UI + m_MethodName: set_fillAmount + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &564282178 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 564282179} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &564282179 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 564282178} + 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: + - {fileID: 905500156} + m_Father: {fileID: 1384519068} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &586600122 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 586600123} + - component: {fileID: 586600124} + m_Layer: 0 + m_Name: orange cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &586600123 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 586600122} + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: -5.5, y: 5, z: -5.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1836032977} + m_Father: {fileID: 1913150167} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!108 &586600124 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 586600122} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 0 + m_Shape: 0 + m_Color: {r: 1, g: 0.6513464, b: 0, a: 1} + m_Intensity: 3 + m_Range: 10 + m_SpotAngle: 90 + m_InnerSpotAngle: 9 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 2 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!114 &609117981 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 482801000701448007, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + m_PrefabInstance: {fileID: 6317425749520956407} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d952c175ec3c6554199fd744548ce50a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &619932220 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4112787851700759540, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &623067466 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 623067467} + - component: {fileID: 623067468} + m_Layer: 0 + m_Name: OVRCameraRigFollowsLocomotion + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &623067467 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 623067466} + 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: 39895793} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &623067468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 623067466} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 35bd901969c36e54fad20befcb2b9325, type: 3} + m_Name: + m_EditorClassIdentifier: + _transformsFollowingMe: + - {fileID: 2075359725} +--- !u!1 &623200346 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 623200347} + - component: {fileID: 623200349} + - component: {fileID: 623200348} + m_Layer: 0 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &623200347 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 623200346} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.001} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1072987300} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 30, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &623200348 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 623200346} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Embodied Character? + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_sharedMaterial: {fileID: -5839354330806206608, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 32 + m_fontSizeBase: 32 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 623200349} + m_maskType: 0 +--- !u!23 &623200349 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 623200346} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: -5839354330806206608, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &629019731 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1054376643923719174, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + m_PrefabInstance: {fileID: 9046911637164694215} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1a379f34d4f4f2e408d34f14bfb753ce, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &650660501 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1089558852277690128, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &657627062 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 657627063} + - component: {fileID: 657627065} + m_Layer: 0 + m_Name: LocomotionAnimationConstraintBlender + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &657627063 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 657627062} + 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: 39895793} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &657627065 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 657627062} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4ff1502fa0de15543a539011dffe8033, type: 3} + m_Name: + m_EditorClassIdentifier: + _activityExitTime: 1 + _animator: {fileID: 1313172172} + _constraintsToDeactivate: [] + _constraintsToBlend: + - {fileID: 1077107419} +--- !u!1 &674130230 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 674130231} + - component: {fileID: 674130233} + - component: {fileID: 674130232} + m_Layer: 0 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &674130231 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 674130230} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.001} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 833501427} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 30, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &674130232 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 674130230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Mirror? + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_sharedMaterial: {fileID: -5839354330806206608, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 32 + m_fontSizeBase: 32 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 674130233} + m_maskType: 0 +--- !u!23 &674130233 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 674130230} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: -5839354330806206608, guid: b8f5aeb9c6de7614db2631011b869bc3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &679901438 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 679901439} + m_Layer: 0 + m_Name: RightHandOnControllerAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &679901439 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 679901438} + 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: 1408720089} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &691258416 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2220940588602083582, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &704246424 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 9181652239978504020, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &764264099 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1766042857280783433, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &778316450 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3715466454324626421, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &793735659 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 793735660} + - component: {fileID: 793735664} + - component: {fileID: 793735663} + - component: {fileID: 793735662} + - component: {fileID: 793735661} + m_Layer: 0 + m_Name: ButtonPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &793735660 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 793735659} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 3, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 833501427} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &793735661 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 793735659} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3266c3d920715b84089935c4ab019210, type: 3} + m_Name: + m_EditorClassIdentifier: + _interactableView: {fileID: 2145572036} + _editor: {fileID: 793735662} + _colorShaderPropertyName: _Color + _normalColorState: + Color: {r: 1, g: 1, b: 1, a: 0.39215687} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.1 + _hoverColorState: + Color: {r: 1, g: 1, b: 1, a: 0.5882353} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.1 + _selectColorState: + Color: {r: 0.30196083, g: 0.64535433, b: 0.9529412, a: 0.78431374} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.05 + _disabledColorState: + Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.1 +--- !u!114 &793735662 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 793735659} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5e48d93b64a9ae4f9fd5a728c8f51af, type: 3} + m_Name: + m_EditorClassIdentifier: + _renderers: + - {fileID: 793735663} + _vectorProperties: [] + _colorProperties: [] + _floatProperties: [] + _updateEveryFrame: 1 +--- !u!23 &793735663 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 793735659} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 76a19c8ba767ac4489bc28e88c399433, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &793735664 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 793735659} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &801156447 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7706974062571457071, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &807175327 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 807175328} + m_Layer: 0 + m_Name: Visuals + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &807175328 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 807175327} + 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: + - {fileID: 1072987300} + m_Father: {fileID: 1384519068} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &812263257 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5054239113380799901, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &820490561 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 714746716299822230, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &821944243 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3910925601638855012, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &833501426 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 833501427} + - component: {fileID: 833501429} + - component: {fileID: 833501428} + m_Layer: 0 + m_Name: ButtonVisual + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &833501427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 833501426} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 793735660} + - {fileID: 674130231} + m_Father: {fileID: 1779597353} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &833501428 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 833501426} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &833501429 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 833501426} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b3b3f04ac18184468bedd999e5a6688, type: 3} + m_Name: + m_EditorClassIdentifier: + _pokeInteractable: {fileID: 2145572036} + _buttonBaseTransform: {fileID: 1127240364} +--- !u!1001 &833766389 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1402157681} + m_Modifications: + - target: {fileID: 3925386263601755969, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Name + value: West Wall + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalScale.y + value: 2.142857 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalPosition.x + value: 7.5 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalPosition.y + value: 1.0716 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.y + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755975, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755975, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: e35a7dcffa71bc34ebdfbe151325efc0, type: 2} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.x + value: 1.1 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.y + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.z + value: 0.5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} +--- !u!4 &833766390 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + m_PrefabInstance: {fileID: 833766389} + m_PrefabAsset: {fileID: 0} +--- !u!114 &894223781 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8553364197529364881, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + m_PrefabInstance: {fileID: 1651781230034671708} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9067480af55f5874d8f613b16812f968, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &901810642 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4665430008767834756, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &904061303 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 904061304} + - component: {fileID: 904061305} + m_Layer: 0 + m_Name: CharacterObjectFollowsLocomotion + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &904061304 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 904061303} + 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: 39895793} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &904061305 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 904061303} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 35bd901969c36e54fad20befcb2b9325, type: 3} + m_Name: + m_EditorClassIdentifier: + _transformsFollowingMe: + - {fileID: 1438153949} +--- !u!1 &905500152 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 905500156} + - component: {fileID: 905500155} + - component: {fileID: 905500153} + - component: {fileID: 905500154} + m_Layer: 0 + m_Name: Surface + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &905500153 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 905500152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: efd927768041afd4d90e5d822283f0f4, type: 3} + m_Name: + m_EditorClassIdentifier: + _planeSurface: {fileID: 905500155} + _clippers: + - {fileID: 905500154} +--- !u!114 &905500154 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 905500152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e08ab46e8fb05dc46b34e54466dc11e3, type: 3} + m_Name: + m_EditorClassIdentifier: + _position: {x: 0, y: 0, z: 0} + _size: {x: 1.4, y: 1, z: 1} +--- !u!114 &905500155 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 905500152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9cf2a74d69b1c1e41916d2a7afdff5be, type: 3} + m_Name: + m_EditorClassIdentifier: + _facing: 0 + _doubleSided: 1 +--- !u!4 &905500156 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 905500152} + 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: 564282179} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &937926587 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8066896640304644177, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &938630827 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8251760988216600566, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &972046466 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 972046467} + m_Layer: 0 + m_Name: RightHandAnchorDetached + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &972046467 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 972046466} + 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: 1058411551} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &974724786 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 974724787} + m_Layer: 0 + m_Name: Audio + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &974724787 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 974724786} + 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: + - {fileID: 310365600} + - {fileID: 2088727348} + m_Father: {fileID: 2145572035} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1026697025 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6969163518431648179, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1041089321 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3188916041691117544, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1048999080 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1048999081} + m_Layer: 0 + m_Name: Model + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1048999081 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1048999080} + 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: + - {fileID: 1127240364} + m_Father: {fileID: 2145572035} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1052757337 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7786878350463457221, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1058411551 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 459718, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + m_PrefabInstance: {fileID: 2075359721} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1070275172 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1070275173} + - component: {fileID: 1070275175} + - component: {fileID: 1070275174} + m_Layer: 0 + m_Name: BasicPokeButtonReleaseAudio + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1070275173 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1070275172} + 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: 1275646430} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1070275174 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1070275172} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 925ef87c5bafc37469a2f7ec825dee4b, type: 3} + m_Name: + m_EditorClassIdentifier: + _audioSource: {fileID: 0} + _audioClips: + - {fileID: 8300000, guid: aebed88a33938c74f80e53b1386c2034, type: 3} + _volume: 0.5 + _volumeRandomization: + _useRandomRange: 0 + _min: 0 + _max: 0 + _pitch: 1 + _pitchRandomization: + _useRandomRange: 0 + _min: 0 + _max: 0 + _spatialize: 1 + _loop: 0 + _chanceToPlay: 100 + _playOnStart: 0 +--- !u!82 &1070275175 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1070275172} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!1 &1072987299 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1072987300} + - component: {fileID: 1072987302} + - component: {fileID: 1072987301} + m_Layer: 0 + m_Name: ButtonVisual + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1072987300 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072987299} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1113226913} + - {fileID: 623200347} + m_Father: {fileID: 807175328} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1072987301 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072987299} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &1072987302 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072987299} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b3b3f04ac18184468bedd999e5a6688, type: 3} + m_Name: + m_EditorClassIdentifier: + _pokeInteractable: {fileID: 1384519069} + _buttonBaseTransform: {fileID: 905500156} +--- !u!1001 &1077107416 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1438153949} + m_Modifications: + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.size + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[0].label + value: LeftHandSynthetic + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[1].label + value: RightHandSynthetic + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[2].label + value: LeftControllerHandSynthetic + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[3].label + value: RightControllerHandSynthetic + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[4].label + value: BonesFollowLocomotionWithStaticCharacter + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[5].label + value: Retargeted Bone Targets + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[6].label + value: Retarget Hands + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[7].label + value: DebugBonesOVRSkeleton Processed + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[0].Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[1].Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[2].Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[3].Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[4].Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[5].Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[6].Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[7].Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[0].Processor + value: + objectReference: {fileID: 6982256495173131784} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[1].Processor + value: + objectReference: {fileID: 5106775090892706031} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[2].Processor + value: + objectReference: {fileID: 378448153326864063} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[3].Processor + value: + objectReference: {fileID: 378448153010514344} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[4].Processor + value: + objectReference: {fileID: 2140129716} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[5].Processor + value: + objectReference: {fileID: 1077107418} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[6].Processor + value: + objectReference: {fileID: 0} + - target: {fileID: 490024389854361152, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _skeletonProcessors.Array.data[7].Processor + value: + objectReference: {fileID: 0} + - target: {fileID: 572568216942794512, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.x + value: -0.012848596 + objectReference: {fileID: 0} + - target: {fileID: 572568216942794512, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.y + value: -0.08609787 + objectReference: {fileID: 0} + - target: {fileID: 572568216942794512, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.z + value: -0.0034359773 + objectReference: {fileID: 0} + - target: {fileID: 1240041284515855971, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.x + value: -0.009848183 + objectReference: {fileID: 0} + - target: {fileID: 1240041284515855971, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.y + value: -0.047670625 + objectReference: {fileID: 0} + - target: {fileID: 1240041284515855971, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.z + value: -0.041012757 + objectReference: {fileID: 0} + - target: {fileID: 1443914921768874357, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_Name + value: ArmatureSkinningUpdateRetargetSkeletonProcessor + objectReference: {fileID: 0} + - target: {fileID: 1443914921768874357, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1896002546147319835, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.x + value: 0.0098464815 + objectReference: {fileID: 0} + - target: {fileID: 1896002546147319835, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.y + value: 0.047671527 + objectReference: {fileID: 0} + - target: {fileID: 1896002546147319835, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.z + value: 0.041012727 + objectReference: {fileID: 0} + - target: {fileID: 2207815940083028653, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _blendCurve.m_Curve.Array.data[0].value + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2207815940083028653, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _blendCurve.m_Curve.Array.data[0].inSlope + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2207815940083028653, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _blendCurve.m_Curve.Array.data[1].inSlope + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2207815940083028653, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _blendCurve.m_Curve.Array.data[0].outSlope + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2207815940083028653, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _blendCurve.m_Curve.Array.data[1].outSlope + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3013551191228670510, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.x + value: 0.004436876 + objectReference: {fileID: 0} + - target: {fileID: 3013551191228670510, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.y + value: 0.07288174 + objectReference: {fileID: 0} + - target: {fileID: 3013551191228670510, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.z + value: -0.029359046 + objectReference: {fileID: 0} + - target: {fileID: 3121999643486862700, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.x + value: -0.000000028870987 + objectReference: {fileID: 0} + - target: {fileID: 3121999643486862700, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.y + value: -0.24036385 + objectReference: {fileID: 0} + - target: {fileID: 3121999643486862700, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.z + value: 0.000000008381902 + objectReference: {fileID: 0} + - target: {fileID: 5260686319881575398, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.x + value: -0.007822365 + objectReference: {fileID: 0} + - target: {fileID: 5260686319881575398, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.z + value: -0.026574552 + objectReference: {fileID: 0} + - target: {fileID: 5743411688482944364, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.x + value: 0.012847832 + objectReference: {fileID: 0} + - target: {fileID: 5743411688482944364, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.y + value: 0.08609776 + objectReference: {fileID: 0} + - target: {fileID: 5743411688482944364, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.z + value: 0.0034353854 + objectReference: {fileID: 0} + - target: {fileID: 5906453063303414921, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.x + value: 0.007815528 + objectReference: {fileID: 0} + - target: {fileID: 5906453063303414921, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.y + value: 0.09184417 + objectReference: {fileID: 0} + - target: {fileID: 5906453063303414921, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.z + value: 0.026573163 + objectReference: {fileID: 0} + - target: {fileID: 6149187573652144265, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.x + value: -0.00000007450578 + objectReference: {fileID: 0} + - target: {fileID: 6149187573652144265, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.y + value: 0.24036232 + objectReference: {fileID: 0} + - target: {fileID: 6149187573652144265, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.z + value: 0.000000001862645 + objectReference: {fileID: 0} + - target: {fileID: 6445751446787231330, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _blendCurve.m_Curve.Array.data[0].value + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6445751446787231330, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _blendCurve.m_Curve.Array.data[0].inSlope + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6445751446787231330, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _blendCurve.m_Curve.Array.data[1].inSlope + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6445751446787231330, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _blendCurve.m_Curve.Array.data[0].outSlope + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6445751446787231330, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: _blendCurve.m_Curve.Array.data[1].outSlope + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7177607020932839298, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.x + value: 0.009525553 + objectReference: {fileID: 0} + - target: {fileID: 7177607020932839298, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.y + value: 0.08161542 + objectReference: {fileID: 0} + - target: {fileID: 7177607020932839298, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.z + value: -0.012242372 + objectReference: {fileID: 0} + - target: {fileID: 7978798422742990365, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.x + value: -0.004438231 + objectReference: {fileID: 0} + - target: {fileID: 7978798422742990365, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.y + value: -0.0728816 + objectReference: {fileID: 0} + - target: {fileID: 7978798422742990365, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.z + value: 0.029358594 + objectReference: {fileID: 0} + - target: {fileID: 8172159923276885446, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_Controller + value: + objectReference: {fileID: 9100000, guid: f138d28f925fa6442b115318a86915ef, type: 2} + - target: {fileID: 8590939900806535248, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.x + value: -0.0095274765 + objectReference: {fileID: 0} + - target: {fileID: 8590939900806535248, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.y + value: -0.08161442 + objectReference: {fileID: 0} + - target: {fileID: 8590939900806535248, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.z + value: 0.012242121 + objectReference: {fileID: 0} + - target: {fileID: 8760844189829344787, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8760844189829344787, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8760844189829344787, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8760844189829344787, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8760844189829344787, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8760844189829344787, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8760844189829344787, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8760844189829344787, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8760844189829344787, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8760844189829344787, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8760844189829344787, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} +--- !u!4 &1077107417 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8760844189829344787, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1077107418 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2519393238448185555, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e99c227ec21d72d45b36011069f2b263, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1077107419 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5858254439604359654, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3ac6230484089474898c6890ca09d24e, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1080009793 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2143258140644656283, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + m_PrefabInstance: {fileID: 8505535045765685074} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9af9ea683544b184083cef283557012d, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1092326766 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6102047980578884351, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1101450869 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1101450870} + - component: {fileID: 1101450872} + - component: {fileID: 1101450871} + m_Layer: 0 + m_Name: BasicPokeButtonPressAudio + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1101450870 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1101450869} + 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: 1275646430} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1101450871 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1101450869} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 925ef87c5bafc37469a2f7ec825dee4b, type: 3} + m_Name: + m_EditorClassIdentifier: + _audioSource: {fileID: 0} + _audioClips: + - {fileID: 8300000, guid: 56fe077fa3d84f24c951589f5d187be2, type: 3} + _volume: 0.5 + _volumeRandomization: + _useRandomRange: 0 + _min: 0 + _max: 0 + _pitch: 1 + _pitchRandomization: + _useRandomRange: 0 + _min: 0 + _max: 0 + _spatialize: 1 + _loop: 0 + _chanceToPlay: 100 + _playOnStart: 0 +--- !u!82 &1101450872 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1101450869} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!1 &1113226912 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1113226913} + - component: {fileID: 1113226917} + - component: {fileID: 1113226916} + - component: {fileID: 1113226915} + - component: {fileID: 1113226914} + m_Layer: 0 + m_Name: ButtonPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1113226913 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1113226912} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 3, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1072987300} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1113226914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1113226912} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3266c3d920715b84089935c4ab019210, type: 3} + m_Name: + m_EditorClassIdentifier: + _interactableView: {fileID: 1384519069} + _editor: {fileID: 1113226915} + _colorShaderPropertyName: _Color + _normalColorState: + Color: {r: 1, g: 1, b: 1, a: 0.39215687} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.1 + _hoverColorState: + Color: {r: 1, g: 1, b: 1, a: 0.5882353} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.1 + _selectColorState: + Color: {r: 0.30196083, g: 0.64535433, b: 0.9529412, a: 0.78431374} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.05 + _disabledColorState: + Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + ColorCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ColorTime: 0.1 +--- !u!114 &1113226915 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1113226912} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5e48d93b64a9ae4f9fd5a728c8f51af, type: 3} + m_Name: + m_EditorClassIdentifier: + _renderers: + - {fileID: 1113226916} + _vectorProperties: [] + _colorProperties: [] + _floatProperties: [] + _updateEveryFrame: 1 +--- !u!23 &1113226916 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1113226912} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 76a19c8ba767ac4489bc28e88c399433, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1113226917 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1113226912} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1120493994 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7716747580197146831, guid: 94313e563929cb3499e3989be338a213, type: 3} + m_PrefabInstance: {fileID: 420457022317728250} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1120493996 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 642930805460571361, guid: 94313e563929cb3499e3989be338a213, type: 3} + m_PrefabInstance: {fileID: 420457022317728250} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1120493994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5c67033f580359c4581dff1ccffcca91, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1127240360 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1127240364} + - component: {fileID: 1127240363} + - component: {fileID: 1127240361} + - component: {fileID: 1127240362} + m_Layer: 0 + m_Name: Surface + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1127240361 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1127240360} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: efd927768041afd4d90e5d822283f0f4, type: 3} + m_Name: + m_EditorClassIdentifier: + _planeSurface: {fileID: 1127240363} + _clippers: + - {fileID: 1127240362} +--- !u!114 &1127240362 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1127240360} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e08ab46e8fb05dc46b34e54466dc11e3, type: 3} + m_Name: + m_EditorClassIdentifier: + _position: {x: 0, y: 0, z: 0} + _size: {x: 1.4, y: 1, z: 1} +--- !u!114 &1127240363 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1127240360} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9cf2a74d69b1c1e41916d2a7afdff5be, type: 3} + m_Name: + m_EditorClassIdentifier: + _facing: 0 + _doubleSided: 1 +--- !u!4 &1127240364 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1127240360} + 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: 1048999081} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1166936339 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 97385810576080294, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1187076269 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1187076270} + m_Layer: 0 + m_Name: LeftControllerInHandAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1187076270 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187076269} + 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: + - {fileID: 1774562484} + m_Father: {fileID: 2075359724} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1189990871 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2019202368} + m_Modifications: + - target: {fileID: 2476541160599945761, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_Name + value: LightProbe + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.size + value: 29 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[0].x + value: 1.7200943 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[0].z + value: 1.7412738 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[1].x + value: 1.762453 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[1].z + value: -1.6989152 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[2].x + value: 1.6565565 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[2].z + value: 1.6565565 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[3].x + value: 1.7624527 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[3].z + value: -1.6989152 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[4].x + value: -1.9107077 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[4].z + value: 1.7200936 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[5].x + value: -1.8471699 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[5].z + value: -1.7624528 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[6].x + value: -1.9107076 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[6].z + value: 1.7200944 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[7].x + value: -1.8259906 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[7].z + value: -1.8048115 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[8].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[9].x + value: 3.3252184 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[9].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[9].z + value: -3.3012862 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[10].x + value: 3.2663703 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[10].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[10].z + value: 3.2267876 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[11].x + value: 2.579423 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[11].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[11].z + value: 6.850946 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[12].x + value: -3.203 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[12].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[12].z + value: -3.3187838 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[13].x + value: -3.2078772 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[13].y + value: -1.6361634 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[13].z + value: 3.2134118 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[14].x + value: -3.1939023 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[14].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[14].z + value: 6.5298653 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[15].x + value: -6.545554 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[15].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[15].z + value: 2.5361881 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[16].x + value: -6.961904 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[16].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[16].z + value: 6.6957293 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[17].x + value: -7.113693 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[17].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[17].z + value: -6.9291544 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[18].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[18].z + value: 4.6472216 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[19].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[19].z + value: -4.4704256 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[20].x + value: 5.1270986 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[20].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[21].x + value: -4.7987623 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[21].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[22].x + value: 6.6172404 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[22].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[22].z + value: -6.794037 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[23].x + value: 6.718267 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[23].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[23].z + value: 6.5162134 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[24].x + value: 6.1373644 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[24].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[24].z + value: 2.2478411 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[25].x + value: 6.1878777 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[25].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[25].z + value: -2.550921 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[26].x + value: 2.0963013 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[26].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[26].z + value: -6.112107 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[27].x + value: -2.0710447 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[27].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[27].z + value: -6.061594 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[28].x + value: -6.4657006 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[28].y + value: -1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945762, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_SourcePositions.Array.data[28].z + value: -1.9952747 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945763, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945763, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945763, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_LocalPosition.y + value: 1.743 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945763, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945763, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945763, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945763, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945763, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945763, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945763, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2476541160599945763, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9000778e46f7a85489200a07924d6fea, type: 3} +--- !u!4 &1189990872 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2476541160599945763, guid: 9000778e46f7a85489200a07924d6fea, type: 3} + m_PrefabInstance: {fileID: 1189990871} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1217965486 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 100002, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + m_PrefabInstance: {fileID: 2075359721} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1230433137 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7314448636968399854, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1244939516 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2924620594742007848, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1254955912 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5208342001094232904, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1275646429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1275646430} + m_Layer: 0 + m_Name: Audio + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1275646430 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1275646429} + 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: + - {fileID: 1101450870} + - {fileID: 1070275173} + m_Father: {fileID: 1384519068} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1289915232 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3744647067011934911, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + m_PrefabInstance: {fileID: 9046911637164694215} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1a379f34d4f4f2e408d34f14bfb753ce, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1291948503 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 572568216942794512, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1302280837 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7978798422742990365, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1309165138 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8590939900806535248, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1309374988 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1309374989} + - component: {fileID: 1309374991} + - component: {fileID: 1309374990} + m_Layer: 0 + m_Name: MenuPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1309374989 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1309374988} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0.015} + m_LocalScale: {x: 0.206, y: 0.2, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 442971951} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1309374990 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1309374988} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 6a8ed4e5af9074e44a277e70094bbbcf, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1309374991 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1309374988} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!95 &1313172172 stripped +Animator: + m_CorrespondingSourceObject: {fileID: 8172159923276885446, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1324704613 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 417454297435961822, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1335521943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1335521944} + - component: {fileID: 1335521947} + - component: {fileID: 1335521946} + - component: {fileID: 1335521945} + m_Layer: 0 + m_Name: Loop + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1335521944 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1335521943} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.75, y: 0.75, z: 0.75} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1785482772} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!135 &1335521945 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1335521943} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1335521946 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1335521943} + m_Enabled: 0 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: ec763ce4f2cfc3b46bdba7fa0f38fd57, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1335521947 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1335521943} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1348692262 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1348692263} + - component: {fileID: 1348692264} + m_Layer: 0 + m_Name: Directional Light Mirrored + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1348692263 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1348692262} + m_LocalRotation: {x: 0.3601201, y: 0.39766622, z: 0.07170671, w: 0.84085274} + m_LocalPosition: {x: 0, y: 3, z: 4.94} + m_LocalScale: {x: -1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2019202368} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 33.27, y: 120.5, z: -29.13} +--- !u!108 &1348692264 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1348692262} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 0.9622642, g: 0.9622642, b: 0.9622642, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 0.736 + m_Bias: 0.002 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 2049 + m_RenderingLayerMask: 1 + m_Lightmapping: 2 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1352099191 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4438287495260483542, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1362708842 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8122422267608081311, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1384519067 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1384519068} + - component: {fileID: 1384519069} + - component: {fileID: 1384519071} + - component: {fileID: 1384519070} + m_Layer: 0 + m_Name: Embodiment + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1384519068 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1384519067} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.14, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 564282179} + - {fileID: 807175328} + - {fileID: 1275646430} + m_Father: {fileID: 442971951} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1384519069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1384519067} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317e663e2bb60ea408fe22b908b59295, type: 3} + m_Name: + m_EditorClassIdentifier: + _interactorFilters: [] + _maxInteractors: -1 + _maxSelectingInteractors: -1 + _data: {fileID: 0} + _pointableElement: {fileID: 0} + _surfacePatch: {fileID: 905500153} + _enterHoverNormal: 0.01 + _enterHoverTangent: 0 + _exitHoverNormal: 0.05 + _exitHoverTangent: 0 + _cancelSelectNormal: 0.1 + _cancelSelectTangent: 0.03 + _minThresholds: + Enabled: 0 + MinNormal: 0.01 + _dragThresholds: + Enabled: 1 + DragNormal: 0.01 + DragTangent: 0.01 + DragEaseCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.05 + _positionPinning: + Enabled: 0 + MaxPinDistance: 0 + PinningEaseCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ResyncCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.2 + _recoilAssist: + Enabled: 0 + UseDynamicDecay: 0 + DynamicDecayCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 50 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9 + value: 0.5 + inSlope: -47 + outSlope: -47 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + UseVelocityExpansion: 0 + VelocityExpansionMinSpeed: 0.4 + VelocityExpansionMaxSpeed: 1.4 + VelocityExpansionDistance: 0.055 + VelocityExpansionDecayRate: 0.125 + ExitDistance: 0.02 + ReEnterDistance: 0.02 + _closeDistanceThreshold: 0.001 + _tiebreakerScore: 0 +--- !u!114 &1384519070 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1384519067} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2b341e2d1ac5f6c4ca2c5b2a1814802b, type: 3} + m_Name: + m_EditorClassIdentifier: + _index: 0 + _wrapIndex: 1 + _states: + - Name: Disembodied Movement + Ignored: 0 + ObjectsToActivate: [] + OnActivate: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 562641234} + m_TargetAssemblyTypeName: ActivatableStateSet, Assembly-CSharp + m_MethodName: set_Index + m_Mode: 3 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 2 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + OnDeactivate: + m_PersistentCalls: + m_Calls: [] + - Name: Embodied Character + Ignored: 0 + ObjectsToActivate: [] + OnActivate: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 562641234} + m_TargetAssemblyTypeName: ActivatableStateSet, Assembly-CSharp + m_MethodName: set_Index + m_Mode: 3 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + OnDeactivate: + m_PersistentCalls: + m_Calls: [] + - Name: Disembodied Character + Ignored: 0 + ObjectsToActivate: [] + OnActivate: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 562641234} + m_TargetAssemblyTypeName: ActivatableStateSet, Assembly-CSharp + m_MethodName: set_Index + m_Mode: 3 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 1 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + OnDeactivate: + m_PersistentCalls: + m_Calls: [] + _onSetNameChange: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 623200348} + m_TargetAssemblyTypeName: TMPro.TMP_Text, Unity.TextMeshPro + m_MethodName: set_text + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1384519071 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1384519067} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e2f8f6e9e6f3e114b9bf9a57c2160615, type: 3} + m_Name: + m_EditorClassIdentifier: + _pointable: {fileID: 1384519069} + _whenRelease: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1070275174} + m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples + m_MethodName: PlayAudio + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 1384519070} + m_TargetAssemblyTypeName: Oculus.Movement.Experimental.Effects.SkeletonPostprocess.ActivateToggle, + Assembly-CSharp + m_MethodName: Next + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + _whenHover: + m_PersistentCalls: + m_Calls: [] + _whenUnhover: + m_PersistentCalls: + m_Calls: [] + _whenSelect: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1101450871} + m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples + m_MethodName: PlayAudio + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + _whenUnselect: + m_PersistentCalls: + m_Calls: [] + _whenMove: + m_PersistentCalls: + m_Calls: [] + _whenCancel: + m_PersistentCalls: + m_Calls: [] +--- !u!4 &1401086266 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1268465322276406741, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1402157680 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1402157681} + m_Layer: 0 + m_Name: Arena + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1402157681 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1402157680} + 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: + - {fileID: 1483935203} + - {fileID: 2071807124} + - {fileID: 61097733} + - {fileID: 51453788} + - {fileID: 833766390} + m_Father: {fileID: 2019202368} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1406674731 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5260686319881575398, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1408720088 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1408720089} + m_Layer: 0 + m_Name: RightControllerInHandAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1408720089 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1408720088} + 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: + - {fileID: 679901439} + m_Father: {fileID: 2075359723} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1432127676 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6152665467652061100, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1438153948 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1438153949} + - component: {fileID: 1438153950} + m_Layer: 0 + m_Name: Character + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1438153949 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1438153948} + 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: + - {fileID: 1077107417} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1438153950 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1438153948} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9d53676bd40688a4798c4ac5ef1c487c, type: 3} + m_Name: + m_EditorClassIdentifier: + _autoAssignAnimatorsFromChildren: 1 + _animators: [] + _maxInputAcceleration: 0.1 +--- !u!4 &1440600786 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1223301293031907702, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1449796210 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8553364197529364881, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + m_PrefabInstance: {fileID: 4278510351509932741} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9067480af55f5874d8f613b16812f968, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1482365325 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 397827511657357133, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1483935202 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1402157681} + m_Modifications: + - target: {fileID: 3925386263601755969, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Name + value: Floor (1) + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755975, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755975, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 6b1da7fede8560949bc2e2816b5f9f7e, type: 2} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.z + value: 0.5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} +--- !u!4 &1483935203 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + m_PrefabInstance: {fileID: 1483935202} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1489073131 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 752836557468429989, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + m_PrefabInstance: {fileID: 8505535045765685074} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5e48d93b64a9ae4f9fd5a728c8f51af, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!137 &1489073132 stripped +SkinnedMeshRenderer: + m_CorrespondingSourceObject: {fileID: 2143258140177466423, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + m_PrefabInstance: {fileID: 8505535045765685074} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1501753500 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1896002546147319835, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1515168992 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 815989922816655304, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1536391634 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7177607020932839298, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1556745105 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3210817918478584408, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1597221491 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6149187573652144265, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1613670143 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4288676402574179919, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1625053692 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2759354151399661757, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1638463124 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2004115084450931551, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1666254363 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5709010148866722606, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1700471047 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1700471048} + - component: {fileID: 1700471050} + m_Layer: 0 + m_Name: UI Anchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1700471048 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1700471047} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.32, y: -0.32, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2075359725} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1700471050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1700471047} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb3dbd7ff7413e44792bf7659e9871ae, type: 3} + m_Name: + m_EditorClassIdentifier: + _howToReorder: 6 + _target: {fileID: 2116101680} +--- !u!1001 &1718088514 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2075359724} + m_Modifications: + - target: {fileID: 1870938896605422, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_Name + value: OVRHandPrefab + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4453513310108136, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114252240061623322, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114925265787909616, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 137619227449585070, guid: 835e735ca71bf78459fb2cababd74112, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 835e735ca71bf78459fb2cababd74112, type: 3} +--- !u!4 &1722797201 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5545149144574972019, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + m_PrefabInstance: {fileID: 9046911637164694215} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1728023311 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 8658488230205805792, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_Name + value: SceneSelectMenu + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalPosition.x + value: -0.875 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalPosition.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalPosition.z + value: 0.106 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalRotation.x + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalRotation.z + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 8658488230205805794, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d13bc4c12718d2a4f9222b0d93dd09f0, type: 3} +--- !u!4 &1729346913 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1631462953397583724, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1771430479 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2019202368} + m_Modifications: + - target: {fileID: 3140805194830035441, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 3140805194830035441, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3140805194830035441, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + propertyPath: m_LocalPosition.y + value: 1.554 + objectReference: {fileID: 0} + - target: {fileID: 3140805194830035441, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + propertyPath: m_LocalPosition.z + value: 2.5 + objectReference: {fileID: 0} + - target: {fileID: 3140805194830035441, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3140805194830035441, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3140805194830035441, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3140805194830035441, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3140805194830035441, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3140805194830035441, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3140805194830035441, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3140805194830035446, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3140805194830035446, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + propertyPath: _transformToMirror + value: + objectReference: {fileID: 217809099} + - target: {fileID: 3140805194830035453, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + propertyPath: m_Name + value: Mirror + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} +--- !u!4 &1771430480 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3140805194830035441, guid: b605c55374dd7cb41a35e0bfa7d02148, type: 3} + m_PrefabInstance: {fileID: 1771430479} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1773201040 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8711316786829538118, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1774562483 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1774562484} + m_Layer: 0 + m_Name: LeftHandOnControllerAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1774562484 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1774562483} + 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: 1187076270} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1779597352 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1779597353} + m_Layer: 0 + m_Name: Visuals + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1779597353 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1779597352} + 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: + - {fileID: 833501427} + m_Father: {fileID: 2145572035} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1785482771 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1785482772} + - component: {fileID: 1785482773} + m_Layer: 0 + m_Name: cyan loop + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1785482772 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1785482771} + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: 5.5, y: 5, z: -5.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1335521944} + m_Father: {fileID: 1913150167} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!108 &1785482773 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1785482771} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 0 + m_Shape: 0 + m_Color: {r: 0, g: 1, b: 0.9495225, a: 1} + m_Intensity: 3 + m_Range: 10 + m_SpotAngle: 90 + m_InnerSpotAngle: 9 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 2 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1797604638 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4646075536404720202, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1801975422 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5906453063303414921, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1815843967 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4098894818440745653, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1836032976 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1836032977} + - component: {fileID: 1836032980} + - component: {fileID: 1836032979} + - component: {fileID: 1836032978} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1836032977 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1836032976} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 0.5, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 586600123} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!65 &1836032978 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1836032976} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1836032979 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1836032976} + m_Enabled: 0 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 5e0414bee00550243b6646d3f42e833f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1836032980 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1836032976} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1855624024 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1855624025} + - component: {fileID: 1855624026} + m_Layer: 0 + m_Name: magenta diamond + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1855624025 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1855624024} + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: 5.5, y: 5, z: 5.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2056065454} + m_Father: {fileID: 1913150167} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!108 &1855624026 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1855624024} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 0 + m_Shape: 0 + m_Color: {r: 1, g: 0, b: 0.92144823, a: 1} + m_Intensity: 3 + m_Range: 10 + m_SpotAngle: 90 + m_InnerSpotAngle: 9 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 2 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1888393338 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8663704845630949912, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1906421920 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 336358375985414314, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + m_PrefabInstance: {fileID: 8505535045765685074} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1906421922 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8592730055715483824, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + m_PrefabInstance: {fileID: 8505535045765685074} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1906421920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5c67033f580359c4581dff1ccffcca91, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1913150166 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1913150167} + m_Layer: 0 + m_Name: Spotlights + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1913150167 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1913150166} + 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: + - {fileID: 1855624025} + - {fileID: 1785482772} + - {fileID: 586600123} + - {fileID: 514289298} + m_Father: {fileID: 2019202368} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1968179785 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6616859020153928898, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1979205990 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1240041284515855971, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2007799002 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5743411688482944364, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2019202367 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2019202368} + m_Layer: 0 + m_Name: Environment + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2019202368 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2019202367} + 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: + - {fileID: 1348692263} + - {fileID: 2076536256} + - {fileID: 217809099} + - {fileID: 1189990872} + - {fileID: 1771430480} + - {fileID: 1402157681} + - {fileID: 1913150167} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &2038041062 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4135080135370411396, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2038570059 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6649581014443277283, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2051823458 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4112897612164624679, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2056065453 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2056065454} + - component: {fileID: 2056065457} + - component: {fileID: 2056065456} + - component: {fileID: 2056065455} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2056065454 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2056065453} + m_LocalRotation: {x: 0.35355338, y: 0.35355338, z: -0.1464466, w: 0.8535535} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1855624025} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 45, y: 45, z: 0} +--- !u!65 &2056065455 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2056065453} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2056065456 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2056065453} + m_Enabled: 0 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 8eef9132ed58b2349afeef9d81b6f26b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2056065457 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2056065453} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &2059731426 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2657485504329312003, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2060050692 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2060050693} + - component: {fileID: 2060050696} + - component: {fileID: 2060050695} + - component: {fileID: 2060050694} + m_Layer: 10 + m_Name: Jump + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2060050693 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060050692} + 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: 39895793} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!82 &2060050694 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060050692} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 8300000, guid: 918464e17aa7bb14fa72a0144a3ebdca, type: 3} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!82 &2060050695 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060050692} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 8300000, guid: 81919ae02952da84f8f0cf6417cb63f5, type: 3} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &2060050696 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060050692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da4ab1658d3cee4479c2813f19f8cec9, type: 3} + m_Name: + m_EditorClassIdentifier: + _rigidbody: {fileID: 39895797} + _targetJumpHeight: 1 + _canOnlyJumpOnGround: 1 + _floorLayerMask: + serializedVersion: 2 + m_Bits: 1 + _jumpEvents: + OnJump: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2060050695} + m_TargetAssemblyTypeName: UnityEngine.AudioSource, UnityEngine + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: Oculus.Movement.Locomotion.AnimatorBodyTrackingActivityMask, + Assembly-CSharp + m_MethodName: StartApplyingMaskFor + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Jump + m_BoolArgument: 1 + m_CallState: 2 + - m_Target: {fileID: 1438153950} + m_TargetAssemblyTypeName: Oculus.Movement.Experimental.Effects.SkeletonPostprocess.AnimatorHooks, + Assembly-CSharp + m_MethodName: set_Grounded + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 562641234} + m_TargetAssemblyTypeName: EventSet, Assembly-CSharp + m_MethodName: ActivatePersistent + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + OnCantJump: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2060050694} + m_TargetAssemblyTypeName: UnityEngine.AudioSource, UnityEngine + m_MethodName: Play + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 562641234} + m_TargetAssemblyTypeName: EventSet, Assembly-CSharp + m_MethodName: RefreshActiveDuration + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + OnJumpApexReached: + m_PersistentCalls: + m_Calls: [] + OnJumpCollided: + m_PersistentCalls: + m_Calls: [] + OnJumpFinished: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: Oculus.Movement.Locomotion.AnimatorBodyTrackingActivityMask, + Assembly-CSharp + m_MethodName: FinishApplyingMaskFor + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Jump + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 1438153950} + m_TargetAssemblyTypeName: Oculus.Movement.Experimental.Effects.SkeletonPostprocess.AnimatorHooks, + Assembly-CSharp + m_MethodName: set_Grounded + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + - m_Target: {fileID: 562641234} + m_TargetAssemblyTypeName: EventSet, Assembly-CSharp + m_MethodName: DeactivateAfterDuration + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 +--- !u!1001 &2063279212 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2075359725} + m_Modifications: + - target: {fileID: 3730632290436700508, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: _ovrCameraRig + value: + objectReference: {fileID: 2075359722} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6678269571562373685, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + propertyPath: m_Name + value: OVRInteraction + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} +--- !u!114 &2063279213 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8937797799668855672, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + m_PrefabInstance: {fileID: 2063279212} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 998a5646185efb9488265f3a2f35a99a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2063279214 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3730632290436700508, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + m_PrefabInstance: {fileID: 2063279212} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a7b47e36715521d4e8a30d2c5b6e83e2, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &2063279215 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6357171400049970933, guid: 2f94427b8dd14ea498fd92aee3ec9f0f, type: 3} + m_PrefabInstance: {fileID: 2063279212} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2071807123 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1402157681} + m_Modifications: + - target: {fileID: 3925386263601755969, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Name + value: North Wall + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalScale.y + value: 2.142857 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalPosition.y + value: 1.0716 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalPosition.z + value: 7.5 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755975, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3925386263601755975, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: e35a7dcffa71bc34ebdfbe151325efc0, type: 2} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.x + value: 1.1 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.y + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Size.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3947358500012374270, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + propertyPath: m_Center.z + value: 0.5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} +--- !u!4 &2071807124 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3925386263601755973, guid: 3f4ed02e98233244eb8b67eff35f6b77, type: 3} + m_PrefabInstance: {fileID: 2071807123} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2075359721 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 100004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_Name + value: OVRCameraRig + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2037080, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_CullingMask.m_Bits + value: 4294966751 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: _trackingOriginType + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: requestEyeTrackingPermissionOnStartup + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: requestBodyTrackingPermissionOnStartup + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 11400000, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: requestFaceTrackingPermissionOnStartup + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 20000010189485334, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_CullingMask.m_Bits + value: 4294966751 + objectReference: {fileID: 0} + - target: {fileID: 20000012175207052, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + propertyPath: m_CullingMask.m_Bits + value: 4294966751 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} +--- !u!114 &2075359722 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 11400010, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + m_PrefabInstance: {fileID: 2075359721} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: df9f338034892c44ebb62d97894772f1, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &2075359723 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 487254, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + m_PrefabInstance: {fileID: 2075359721} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2075359724 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 482130, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + m_PrefabInstance: {fileID: 2075359721} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2075359725 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 400004, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + m_PrefabInstance: {fileID: 2075359721} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2075359726 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 400002, guid: 126d619cf4daa52469682f85c1378b4a, type: 3} + m_PrefabInstance: {fileID: 2075359721} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2075359729 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1217965486} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb3dbd7ff7413e44792bf7659e9871ae, type: 3} + m_Name: + m_EditorClassIdentifier: + _howToReorder: 0 + _target: {fileID: 0} +--- !u!1 &2076536254 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2076536256} + - component: {fileID: 2076536255} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &2076536255 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076536254} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 0.736 + m_Bias: 0.002 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 2147483647 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &2076536256 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076536254} + m_LocalRotation: {x: 0.38154632, y: -0.29525486, z: 0.13003896, w: 0.8662199} + m_LocalPosition: {x: 5.685999, y: 12.041695, z: -7.5622034} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2019202368} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 33.27, y: 120.5, z: -29.13} +--- !u!4 &2081230152 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1598439580004321164, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2087676678 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2041624057282642834, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2088727347 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2088727348} + - component: {fileID: 2088727350} + - component: {fileID: 2088727349} + m_Layer: 0 + m_Name: BasicPokeButtonReleaseAudio + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2088727348 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2088727347} + 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: 974724787} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2088727349 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2088727347} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 925ef87c5bafc37469a2f7ec825dee4b, type: 3} + m_Name: + m_EditorClassIdentifier: + _audioSource: {fileID: 0} + _audioClips: + - {fileID: 8300000, guid: aebed88a33938c74f80e53b1386c2034, type: 3} + _volume: 0.5 + _volumeRandomization: + _useRandomRange: 0 + _min: 0 + _max: 0 + _pitch: 1 + _pitchRandomization: + _useRandomRange: 0 + _min: 0 + _max: 0 + _spatialize: 1 + _loop: 0 + _chanceToPlay: 100 + _playOnStart: 0 +--- !u!82 &2088727350 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2088727347} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!4 &2100501355 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 603157622750891370, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2111381760 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4890798755676172709, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2116101679 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2116101680} + m_Layer: 0 + m_Name: UI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2116101680 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2116101679} + 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: + - {fileID: 23275530} + - {fileID: 442971951} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &2120113051 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8111873966366697724, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2120659229 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1209222308779463111, guid: 94313e563929cb3499e3989be338a213, type: 3} + m_PrefabInstance: {fileID: 420457022317728250} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5e48d93b64a9ae4f9fd5a728c8f51af, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!137 &2120659230 stripped +SkinnedMeshRenderer: + m_CorrespondingSourceObject: {fileID: 8662184560477892144, guid: 94313e563929cb3499e3989be338a213, type: 3} + m_PrefabInstance: {fileID: 420457022317728250} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2122434358 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 447936404410222383, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2140129714 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2140129715} + - component: {fileID: 2140129716} + m_Layer: 0 + m_Name: BonesFollowLocomotionWithStaticCharacter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2140129715 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2140129714} + 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: 39895793} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2140129716 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2140129714} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ba18dbd753781ca4b8d165a694902ead, type: 3} + m_Name: + m_EditorClassIdentifier: + _transformOffsetForSkeleton: {fileID: 39895793} + _notifyOnStateChange: + hands: + - {fileID: 6982256495173131784} + - {fileID: 5106775090892706031} + - {fileID: 378448153326864063} + - {fileID: 378448153010514344} + AlternativeCharacterMover: {fileID: 904061305} + OnEnable: + m_PersistentCalls: + m_Calls: [] + OnDisable: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &2145572034 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2145572035} + - component: {fileID: 2145572036} + - component: {fileID: 2145572038} + - component: {fileID: 2145572037} + m_Layer: 0 + m_Name: Mirror? + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2145572035 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2145572034} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.07, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1048999081} + - {fileID: 1779597353} + - {fileID: 974724787} + m_Father: {fileID: 442971951} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2145572036 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2145572034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 317e663e2bb60ea408fe22b908b59295, type: 3} + m_Name: + m_EditorClassIdentifier: + _interactorFilters: [] + _maxInteractors: -1 + _maxSelectingInteractors: -1 + _data: {fileID: 0} + _pointableElement: {fileID: 0} + _surfacePatch: {fileID: 1127240361} + _enterHoverNormal: 0.01 + _enterHoverTangent: 0 + _exitHoverNormal: 0.05 + _exitHoverTangent: 0 + _cancelSelectNormal: 0.1 + _cancelSelectTangent: 0.03 + _minThresholds: + Enabled: 0 + MinNormal: 0.01 + _dragThresholds: + Enabled: 1 + DragNormal: 0.01 + DragTangent: 0.01 + DragEaseCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.05 + _positionPinning: + Enabled: 0 + MaxPinDistance: 0 + PinningEaseCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ResyncCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.2 + _recoilAssist: + Enabled: 0 + UseDynamicDecay: 0 + DynamicDecayCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 50 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9 + value: 0.5 + inSlope: -47 + outSlope: -47 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + UseVelocityExpansion: 0 + VelocityExpansionMinSpeed: 0.4 + VelocityExpansionMaxSpeed: 1.4 + VelocityExpansionDistance: 0.055 + VelocityExpansionDecayRate: 0.125 + ExitDistance: 0.02 + ReEnterDistance: 0.02 + _closeDistanceThreshold: 0.001 + _tiebreakerScore: 0 +--- !u!114 &2145572037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2145572034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2b341e2d1ac5f6c4ca2c5b2a1814802b, type: 3} + m_Name: + m_EditorClassIdentifier: + _index: 0 + _wrapIndex: 1 + _states: + - Name: No Mirror + Ignored: 0 + ObjectsToActivate: [] + OnActivate: + m_PersistentCalls: + m_Calls: [] + OnDeactivate: + m_PersistentCalls: + m_Calls: [] + - Name: Mirror Visible + Ignored: 0 + ObjectsToActivate: + - {fileID: 217809098} + OnActivate: + m_PersistentCalls: + m_Calls: [] + OnDeactivate: + m_PersistentCalls: + m_Calls: [] + _onSetNameChange: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 674130232} + m_TargetAssemblyTypeName: TMPro.TMP_Text, Unity.TextMeshPro + m_MethodName: set_text + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &2145572038 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2145572034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e2f8f6e9e6f3e114b9bf9a57c2160615, type: 3} + m_Name: + m_EditorClassIdentifier: + _pointable: {fileID: 2145572036} + _whenRelease: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2088727349} + m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples + m_MethodName: PlayAudio + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 2145572037} + m_TargetAssemblyTypeName: Oculus.Movement.Experimental.Effects.SkeletonPostprocess.ActivateToggle, + Assembly-CSharp + m_MethodName: Next + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + _whenHover: + m_PersistentCalls: + m_Calls: [] + _whenUnhover: + m_PersistentCalls: + m_Calls: [] + _whenSelect: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 310365601} + m_TargetAssemblyTypeName: Oculus.Interaction.AudioTrigger, Oculus.Interaction.Samples + m_MethodName: PlayAudio + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + _whenUnselect: + m_PersistentCalls: + m_Calls: [] + _whenMove: + m_PersistentCalls: + m_Calls: [] + _whenCancel: + m_PersistentCalls: + m_Calls: [] +--- !u!4 &2147098294 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 9100611756919984331, guid: 1d0c5ce9ae27cab4b88cd35738a08552, type: 3} + m_PrefabInstance: {fileID: 1077107416} + m_PrefabAsset: {fileID: 0} +--- !u!114 &378448153010514344 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8031081105206769669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 932aa90fceecb0c4f8f4f94f0497f6bf, type: 3} + m_Name: + m_EditorClassIdentifier: + _hand: {fileID: 8031081105206769666} + _cameraRig: {fileID: 2075359725} + _handsAreOffset: 0 +--- !u!114 &378448153326864063 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8031081105206769674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 932aa90fceecb0c4f8f4f94f0497f6bf, type: 3} + m_Name: + m_EditorClassIdentifier: + _hand: {fileID: 8031081105206769671} + _cameraRig: {fileID: 2075359725} + _handsAreOffset: 0 +--- !u!1001 &420457022317728250 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 391734554} + m_Modifications: + - target: {fileID: 642930805460571361, guid: 94313e563929cb3499e3989be338a213, type: 3} + propertyPath: _iModifyDataFromSourceMono + value: + objectReference: {fileID: 629019731} + - target: {fileID: 7716747580197146830, guid: 94313e563929cb3499e3989be338a213, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7716747580197146830, guid: 94313e563929cb3499e3989be338a213, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7716747580197146830, guid: 94313e563929cb3499e3989be338a213, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7716747580197146830, guid: 94313e563929cb3499e3989be338a213, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7716747580197146830, guid: 94313e563929cb3499e3989be338a213, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7716747580197146830, guid: 94313e563929cb3499e3989be338a213, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7716747580197146830, guid: 94313e563929cb3499e3989be338a213, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7716747580197146830, guid: 94313e563929cb3499e3989be338a213, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7716747580197146830, guid: 94313e563929cb3499e3989be338a213, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7716747580197146830, guid: 94313e563929cb3499e3989be338a213, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7716747580197146830, guid: 94313e563929cb3499e3989be338a213, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7716747580197146831, guid: 94313e563929cb3499e3989be338a213, type: 3} + propertyPath: m_Name + value: RightHandSynthetic + objectReference: {fileID: 0} + - target: {fileID: 7716747580197146831, guid: 94313e563929cb3499e3989be338a213, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94313e563929cb3499e3989be338a213, type: 3} +--- !u!1001 &1651781230034671708 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 419586345} + m_Modifications: + - target: {fileID: 479229220, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _rotation.w + value: 0.7366965 + objectReference: {fileID: 0} + - target: {fileID: 479229220, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _rotation.x + value: 0.105225 + objectReference: {fileID: 0} + - target: {fileID: 479229220, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _rotation.y + value: -0.6678412 + objectReference: {fileID: 0} + - target: {fileID: 479229220, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _rotation.z + value: 0.013933297 + objectReference: {fileID: 0} + - target: {fileID: 2165145697951878349, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _hmd + value: + objectReference: {fileID: 0} + - target: {fileID: 2225697885797083731, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _rotation.x + value: 0.105225004 + objectReference: {fileID: 0} + - target: {fileID: 2225697885797083731, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _rotation.z + value: 0.013933301 + objectReference: {fileID: 0} + - target: {fileID: 2781004746544239580, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771837, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_Name + value: HandGrabInteractor + objectReference: {fileID: 0} + - target: {fileID: 4958898349752764376, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _handVisual + value: + objectReference: {fileID: 467632616} + - target: {fileID: 4958898349752764376, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _handRenderer + value: + objectReference: {fileID: 2120659230} + - target: {fileID: 4958898349752764376, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _materialEditor + value: + objectReference: {fileID: 2120659229} + - target: {fileID: 5649835352202918574, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6141351533274568304, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _syntheticHand + value: + objectReference: {fileID: 1120493996} + - target: {fileID: 8646129326984794350, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _hand + value: + objectReference: {fileID: 629019731} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} +--- !u!1001 &2569425559013660177 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1722797201} + m_Modifications: + - target: {fileID: 4977421493488092299, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5346183831593185114, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: _hand + value: + objectReference: {fileID: 1289915232} + - target: {fileID: 5419937293532398298, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_Name + value: HandPokeInteractor + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5903181773383361112, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: _syntheticHand + value: + objectReference: {fileID: 1906421922} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} +--- !u!1001 &3138635617795618172 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 217809099} + m_Modifications: + - target: {fileID: 380363415761594444, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.x + value: 0.009525408 + objectReference: {fileID: 0} + - target: {fileID: 380363415761594444, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.y + value: 0.08161548 + objectReference: {fileID: 0} + - target: {fileID: 380363415761594444, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.z + value: -0.01224259 + objectReference: {fileID: 0} + - target: {fileID: 605395397824864723, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.x + value: -0.0044383537 + objectReference: {fileID: 0} + - target: {fileID: 605395397824864723, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.y + value: -0.07288161 + objectReference: {fileID: 0} + - target: {fileID: 605395397824864723, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.z + value: 0.029358402 + objectReference: {fileID: 0} + - target: {fileID: 1289594505628387230, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.x + value: -0.009527554 + objectReference: {fileID: 0} + - target: {fileID: 1289594505628387230, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.y + value: -0.081614405 + objectReference: {fileID: 0} + - target: {fileID: 1289594505628387230, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.z + value: 0.012241999 + objectReference: {fileID: 0} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _transformToCopy + value: + objectReference: {fileID: 51472184} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[0].OriginalTransform + value: + objectReference: {fileID: 122643805} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[1].OriginalTransform + value: + objectReference: {fileID: 764264099} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[2].OriginalTransform + value: + objectReference: {fileID: 1440600786} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[3].OriginalTransform + value: + objectReference: {fileID: 2147098294} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[4].OriginalTransform + value: + objectReference: {fileID: 901810642} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[5].OriginalTransform + value: + objectReference: {fileID: 1979205990} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[6].OriginalTransform + value: + objectReference: {fileID: 1309165138} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[7].OriginalTransform + value: + objectReference: {fileID: 1638463124} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[8].OriginalTransform + value: + objectReference: {fileID: 1352099191} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[9].OriginalTransform + value: + objectReference: {fileID: 1729346913} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[10].OriginalTransform + value: + objectReference: {fileID: 1797604638} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[11].OriginalTransform + value: + objectReference: {fileID: 1302280837} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[12].OriginalTransform + value: + objectReference: {fileID: 650660501} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[13].OriginalTransform + value: + objectReference: {fileID: 1556745105} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[14].OriginalTransform + value: + objectReference: {fileID: 495366330} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[15].OriginalTransform + value: + objectReference: {fileID: 704246424} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[16].OriginalTransform + value: + objectReference: {fileID: 1291948503} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[17].OriginalTransform + value: + objectReference: {fileID: 1092326766} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[18].OriginalTransform + value: + objectReference: {fileID: 1773201040} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[19].OriginalTransform + value: + objectReference: {fileID: 263969893} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[20].OriginalTransform + value: + objectReference: {fileID: 1324704613} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[21].OriginalTransform + value: + objectReference: {fileID: 1406674731} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[22].OriginalTransform + value: + objectReference: {fileID: 1026697025} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[23].OriginalTransform + value: + objectReference: {fileID: 1815843967} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[24].OriginalTransform + value: + objectReference: {fileID: 154150111} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[25].OriginalTransform + value: + objectReference: {fileID: 465810342} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[26].OriginalTransform + value: + objectReference: {fileID: 937926587} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[27].OriginalTransform + value: + objectReference: {fileID: 265398208} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[28].OriginalTransform + value: + objectReference: {fileID: 2038570059} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[29].OriginalTransform + value: + objectReference: {fileID: 1401086266} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[30].OriginalTransform + value: + objectReference: {fileID: 1482365325} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[31].OriginalTransform + value: + objectReference: {fileID: 1041089321} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[32].OriginalTransform + value: + objectReference: {fileID: 619932220} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[33].OriginalTransform + value: + objectReference: {fileID: 821944243} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[34].OriginalTransform + value: + objectReference: {fileID: 812263257} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[35].OriginalTransform + value: + objectReference: {fileID: 1613670143} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[36].OriginalTransform + value: + objectReference: {fileID: 1597221491} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[37].OriginalTransform + value: + objectReference: {fileID: 23981674} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[38].OriginalTransform + value: + objectReference: {fileID: 1625053692} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[39].OriginalTransform + value: + objectReference: {fileID: 1968179785} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[40].OriginalTransform + value: + objectReference: {fileID: 938630827} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[41].OriginalTransform + value: + objectReference: {fileID: 1501753500} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[42].OriginalTransform + value: + objectReference: {fileID: 1536391634} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[43].OriginalTransform + value: + objectReference: {fileID: 778316450} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[44].OriginalTransform + value: + objectReference: {fileID: 189146826} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[45].OriginalTransform + value: + objectReference: {fileID: 1166936339} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[46].OriginalTransform + value: + objectReference: {fileID: 93568388} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[47].OriginalTransform + value: + objectReference: {fileID: 179158707} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[48].OriginalTransform + value: + objectReference: {fileID: 820490561} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[49].OriginalTransform + value: + objectReference: {fileID: 93649112} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[50].OriginalTransform + value: + objectReference: {fileID: 502473284} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[51].OriginalTransform + value: + objectReference: {fileID: 2051823458} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[52].OriginalTransform + value: + objectReference: {fileID: 2007799002} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[53].OriginalTransform + value: + objectReference: {fileID: 1432127676} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[54].OriginalTransform + value: + objectReference: {fileID: 1362708842} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[55].OriginalTransform + value: + objectReference: {fileID: 1230433137} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[56].OriginalTransform + value: + objectReference: {fileID: 1515168992} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[57].OriginalTransform + value: + objectReference: {fileID: 1801975422} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[58].OriginalTransform + value: + objectReference: {fileID: 1888393338} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[59].OriginalTransform + value: + objectReference: {fileID: 251523188} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[60].OriginalTransform + value: + objectReference: {fileID: 691258416} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[61].OriginalTransform + value: + objectReference: {fileID: 2100501355} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[62].OriginalTransform + value: + objectReference: {fileID: 2038041062} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[63].OriginalTransform + value: + objectReference: {fileID: 417665234} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[64].OriginalTransform + value: + objectReference: {fileID: 801156447} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[65].OriginalTransform + value: + objectReference: {fileID: 1254955912} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[66].OriginalTransform + value: + objectReference: {fileID: 1666254363} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[67].OriginalTransform + value: + objectReference: {fileID: 180603709} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[68].OriginalTransform + value: + objectReference: {fileID: 514886297} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[69].OriginalTransform + value: + objectReference: {fileID: 2122434358} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[70].OriginalTransform + value: + objectReference: {fileID: 2087676678} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[71].OriginalTransform + value: + objectReference: {fileID: 1052757337} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[72].OriginalTransform + value: + objectReference: {fileID: 2111381760} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[73].OriginalTransform + value: + objectReference: {fileID: 227670047} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[74].OriginalTransform + value: + objectReference: {fileID: 169975275} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[75].OriginalTransform + value: + objectReference: {fileID: 1244939516} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[76].OriginalTransform + value: + objectReference: {fileID: 2120113051} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[77].OriginalTransform + value: + objectReference: {fileID: 2081230152} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[78].OriginalTransform + value: + objectReference: {fileID: 2059731426} + - target: {fileID: 1490616602557785008, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: _mirroredTransformPairs.Array.data[79].OriginalTransform + value: + objectReference: {fileID: 314474975} + - target: {fileID: 2254170720816443869, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2254170720816443869, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2254170720816443869, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2254170720816443869, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2254170720816443869, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2254170720816443869, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2254170720816443869, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2254170720816443869, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2254170720816443869, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2254170720816443869, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2254170720816443869, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2983665042531101346, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.x + value: 0.012847859 + objectReference: {fileID: 0} + - target: {fileID: 2983665042531101346, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.y + value: 0.086097814 + objectReference: {fileID: 0} + - target: {fileID: 2983665042531101346, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.z + value: 0.0034354413 + objectReference: {fileID: 0} + - target: {fileID: 3448947359252694056, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.x + value: -0.007822331 + objectReference: {fileID: 0} + - target: {fileID: 3448947359252694056, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.y + value: -0.091839544 + objectReference: {fileID: 0} + - target: {fileID: 3448947359252694056, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.z + value: -0.026574504 + objectReference: {fileID: 0} + - target: {fileID: 3714032118821773127, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.x + value: -0.00000008195636 + objectReference: {fileID: 0} + - target: {fileID: 3714032118821773127, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.y + value: 0.24036226 + objectReference: {fileID: 0} + - target: {fileID: 3714032118821773127, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.z + value: -0.00000009685755 + objectReference: {fileID: 0} + - target: {fileID: 3975348921139256135, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.x + value: 0.007815507 + objectReference: {fileID: 0} + - target: {fileID: 3975348921139256135, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.y + value: 0.0918443 + objectReference: {fileID: 0} + - target: {fileID: 3975348921139256135, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.z + value: 0.026573135 + objectReference: {fileID: 0} + - target: {fileID: 5588750731426734754, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.x + value: -0.0000000167638 + objectReference: {fileID: 0} + - target: {fileID: 5588750731426734754, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.y + value: -0.24036379 + objectReference: {fileID: 0} + - target: {fileID: 5588750731426734754, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.z + value: 0.00000019371507 + objectReference: {fileID: 0} + - target: {fileID: 5696738913539390944, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.x + value: 0.0044369497 + objectReference: {fileID: 0} + - target: {fileID: 5696738913539390944, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.y + value: 0.072881795 + objectReference: {fileID: 0} + - target: {fileID: 5696738913539390944, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.z + value: -0.029358927 + objectReference: {fileID: 0} + - target: {fileID: 7002678291924961502, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.x + value: -0.0128485635 + objectReference: {fileID: 0} + - target: {fileID: 7002678291924961502, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.y + value: -0.086097874 + objectReference: {fileID: 0} + - target: {fileID: 7002678291924961502, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.z + value: -0.0034359293 + objectReference: {fileID: 0} + - target: {fileID: 7281055093396710065, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 771394b71b8c339449e8d4d75523df2b, type: 2} + - target: {fileID: 7281055093396710065, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: 8c1dd4e82650a304ebd02cf577acf759, type: 2} + - target: {fileID: 7281055093396710065, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_Materials.Array.data[2] + value: + objectReference: {fileID: 2100000, guid: 71d70bf9055e625418ebcf8044590e91, type: 2} + - target: {fileID: 8274653983065271995, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_Name + value: ArmatureSkinningUpdateRetargetMirrored + objectReference: {fileID: 0} + - target: {fileID: 8640485695924330925, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.x + value: -0.009848217 + objectReference: {fileID: 0} + - target: {fileID: 8640485695924330925, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.y + value: -0.04767062 + objectReference: {fileID: 0} + - target: {fileID: 8640485695924330925, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.z + value: -0.04101281 + objectReference: {fileID: 0} + - target: {fileID: 8976621051707654101, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.x + value: 0.009846563 + objectReference: {fileID: 0} + - target: {fileID: 8976621051707654101, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.y + value: 0.047671568 + objectReference: {fileID: 0} + - target: {fileID: 8976621051707654101, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + propertyPath: m_LocalPosition.z + value: 0.041012865 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} +--- !u!4 &3138635617795618173 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2254170720816443869, guid: c9f4081aea9726c4ba6ccef14ef62a15, type: 3} + m_PrefabInstance: {fileID: 3138635617795618172} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4079057276159561854 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995403985441543727} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 887c8dbd7b891004dbddaf2d9f439564, type: 3} + m_Name: + m_EditorClassIdentifier: + _handGrabInteractor: {fileID: 5995403985441543724} + _handMaterialPropertyBlockEditor: {fileID: 8031081105206769670} + _glowLerpSpeed: 2 + _glowColorLerpSpeed: 4 + _fingerGlowColorWithInteractable: {r: 1, g: 0.81960785, b: 0.4509804, a: 1} + _fingerGlowColorWithNoInteractable: {r: 0.43921572, g: 0.56078434, b: 0.5686275, a: 1} + _fingerGlowColorHover: {r: 0.4392157, g: 0.56078434, b: 0.5686275, a: 1} +--- !u!114 &4079057277140391663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995403984426111160} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 887c8dbd7b891004dbddaf2d9f439564, type: 3} + m_Name: + m_EditorClassIdentifier: + _handGrabInteractor: {fileID: 5995403984426111157} + _handMaterialPropertyBlockEditor: {fileID: 8031081105206769665} + _glowLerpSpeed: 2 + _glowColorLerpSpeed: 4 + _fingerGlowColorWithInteractable: {r: 1, g: 0.81960785, b: 0.4509804, a: 1} + _fingerGlowColorWithNoInteractable: {r: 0.43921572, g: 0.56078434, b: 0.5686275, a: 1} + _fingerGlowColorHover: {r: 0.4392157, g: 0.56078434, b: 0.5686275, a: 1} +--- !u!1001 &4278510351509932741 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1722797201} + m_Modifications: + - target: {fileID: 2165145697951878349, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _hmd + value: + objectReference: {fileID: 0} + - target: {fileID: 2225697885797083731, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _rotation.x + value: 0.105225004 + objectReference: {fileID: 0} + - target: {fileID: 2225697885797083731, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _rotation.z + value: 0.013933301 + objectReference: {fileID: 0} + - target: {fileID: 2781004746544239580, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771837, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_Name + value: HandGrabInteractor + objectReference: {fileID: 0} + - target: {fileID: 4958898349752764376, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _handVisual + value: + objectReference: {fileID: 1080009793} + - target: {fileID: 4958898349752764376, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _handRenderer + value: + objectReference: {fileID: 1489073132} + - target: {fileID: 4958898349752764376, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _materialEditor + value: + objectReference: {fileID: 1489073131} + - target: {fileID: 5649835352202918574, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6141351533274568304, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _syntheticHand + value: + objectReference: {fileID: 1906421922} + - target: {fileID: 8646129326984794350, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _hand + value: + objectReference: {fileID: 1289915232} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} +--- !u!114 &5106775090892706031 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1120493994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 932aa90fceecb0c4f8f4f94f0497f6bf, type: 3} + m_Name: + m_EditorClassIdentifier: + _hand: {fileID: 1120493996} + _cameraRig: {fileID: 2075359725} + _handsAreOffset: 0 +--- !u!1001 &5995403983838753882 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8031081105206769676} + m_Modifications: + - target: {fileID: 4977421493488092299, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5346183831593185114, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: _hand + value: + objectReference: {fileID: 8031081105206769672} + - target: {fileID: 5419937293532398298, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_Name + value: HandPokeInteractor + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5903181773383361112, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: _syntheticHand + value: + objectReference: {fileID: 8031081105206769671} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} +--- !u!114 &5995403983838753883 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 482801000701448007, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + m_PrefabInstance: {fileID: 5995403983838753882} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d952c175ec3c6554199fd744548ce50a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &5995403984063988192 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8031081105206769675} + m_Modifications: + - target: {fileID: 4977421493488092299, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5346183831593185114, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: _hand + value: + objectReference: {fileID: 8031081105206769667} + - target: {fileID: 5419937293532398298, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_Name + value: HandPokeInteractor + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937294994736469, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: _offset.x + value: 0.017 + objectReference: {fileID: 0} + - target: {fileID: 5903181773383361112, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5903181773383361112, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: _syntheticHand + value: + objectReference: {fileID: 8031081105206769666} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} +--- !u!114 &5995403984063988193 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 482801000701448007, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + m_PrefabInstance: {fileID: 5995403984063988192} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d952c175ec3c6554199fd744548ce50a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &5995403984426111156 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8031081105206769675} + m_Modifications: + - target: {fileID: 479229220, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _rotation.w + value: 0.7366965 + objectReference: {fileID: 0} + - target: {fileID: 479229220, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _rotation.x + value: 0.105225 + objectReference: {fileID: 0} + - target: {fileID: 479229220, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _rotation.y + value: -0.6678412 + objectReference: {fileID: 0} + - target: {fileID: 479229220, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _rotation.z + value: 0.013933297 + objectReference: {fileID: 0} + - target: {fileID: 2781004746544239580, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771837, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_Name + value: HandGrabInteractor + objectReference: {fileID: 0} + - target: {fileID: 6141351533274568304, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _syntheticHand + value: + objectReference: {fileID: 8031081105206769666} + - target: {fileID: 8646129326984794350, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _hand + value: + objectReference: {fileID: 8031081105206769667} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} +--- !u!114 &5995403984426111157 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8553364197529364881, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + m_PrefabInstance: {fileID: 5995403984426111156} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995403984426111160} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9067480af55f5874d8f613b16812f968, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &5995403984426111158 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2165145697951878349, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + m_PrefabInstance: {fileID: 5995403984426111156} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995403984426111159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ae43f25c06eb2d9408a201216b4c3ed7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &5995403984426111159 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5274135674856270696, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + m_PrefabInstance: {fileID: 5995403984426111156} + m_PrefabAsset: {fileID: 0} +--- !u!1 &5995403984426111160 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3282029263655771837, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + m_PrefabInstance: {fileID: 5995403984426111156} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5995403985441543723 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8031081105206769676} + m_Modifications: + - target: {fileID: 2781004746544239580, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771826, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3282029263655771837, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: m_Name + value: HandGrabInteractor + objectReference: {fileID: 0} + - target: {fileID: 6141351533274568304, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _syntheticHand + value: + objectReference: {fileID: 8031081105206769671} + - target: {fileID: 8646129326984794350, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + propertyPath: _hand + value: + objectReference: {fileID: 8031081105206769672} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} +--- !u!114 &5995403985441543724 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8553364197529364881, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + m_PrefabInstance: {fileID: 5995403985441543723} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995403985441543727} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9067480af55f5874d8f613b16812f968, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &5995403985441543725 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2165145697951878349, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + m_PrefabInstance: {fileID: 5995403985441543723} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995403985441543726} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ae43f25c06eb2d9408a201216b4c3ed7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &5995403985441543726 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5274135674856270696, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + m_PrefabInstance: {fileID: 5995403985441543723} + m_PrefabAsset: {fileID: 0} +--- !u!1 &5995403985441543727 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3282029263655771837, guid: 885ecae56b16f13428a67de5ae482a72, type: 3} + m_PrefabInstance: {fileID: 5995403985441543723} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6317425749520956407 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 419586345} + m_Modifications: + - target: {fileID: 4977421493488092299, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5346183831593185114, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: _hand + value: + objectReference: {fileID: 629019731} + - target: {fileID: 5419937293532398298, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_Name + value: HandPokeInteractor + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937293532398301, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5419937294994736469, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: _offset.x + value: 0.017 + objectReference: {fileID: 0} + - target: {fileID: 5903181773383361112, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} + propertyPath: _syntheticHand + value: + objectReference: {fileID: 1120493996} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 424c2298facd2bf419beffd69e8cc855, type: 3} +--- !u!114 &6798725408488648837 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995403984426111159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 77279ac005404794d8e29e385f50c9c2, type: 3} + m_Name: + m_EditorClassIdentifier: + _handGrabAPI: {fileID: 5995403984426111158} +--- !u!114 &6982256495173131784 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1906421920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 932aa90fceecb0c4f8f4f94f0497f6bf, type: 3} + m_Name: + m_EditorClassIdentifier: + _hand: {fileID: 1906421922} + _cameraRig: {fileID: 2075359725} + _handsAreOffset: 0 +--- !u!1001 &8031081105206769664 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2063279215} + m_Modifications: + - target: {fileID: 2552751781337300309, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: m_Name + value: RightControllerHandSynthetic + objectReference: {fileID: 0} + - target: {fileID: 3781269207718660015, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: _hmdData + value: + objectReference: {fileID: 0} + - target: {fileID: 3781269207718660015, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: _cameraRigRef + value: + objectReference: {fileID: 2063279214} + - target: {fileID: 3781269207718660015, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: _trackingToWorldTransformer + value: + objectReference: {fileID: 2063279213} + - target: {fileID: 5679112963091543778, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: _interactors.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5679112963091543778, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: _interactors.Array.data[0] + value: + objectReference: {fileID: 5995403984063988193} + - target: {fileID: 5679112963091543778, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: _interactors.Array.data[1] + value: + objectReference: {fileID: 5995403984426111157} + - target: {fileID: 5679112963574900116, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: _interactors.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5679112963574900116, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: _interactors.Array.data[0] + value: + objectReference: {fileID: 5995403983838753883} + - target: {fileID: 5679112963574900116, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: _interactors.Array.data[1] + value: + objectReference: {fileID: 5995403985441543724} + - target: {fileID: 5679112963628884800, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5679112963628884800, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5679112963628884800, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5679112963628884800, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5679112963628884800, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5679112963628884800, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5679112963628884800, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5679112963628884800, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5679112963628884800, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5679112963628884800, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5679112963628884800, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5679112963628884801, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: m_Name + value: OVRControllerHands + objectReference: {fileID: 0} + - target: {fileID: 8445982241883230424, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: m_Name + value: LeftControllerHandSynthetic + objectReference: {fileID: 0} + - target: {fileID: 9205377790416818695, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: _hmdData + value: + objectReference: {fileID: 0} + - target: {fileID: 9205377790416818695, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: _cameraRigRef + value: + objectReference: {fileID: 2063279214} + - target: {fileID: 9205377790416818695, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + propertyPath: _trackingToWorldTransformer + value: + objectReference: {fileID: 2063279213} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} +--- !u!114 &8031081105206769665 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6391261505871707229, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + m_PrefabInstance: {fileID: 8031081105206769664} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5e48d93b64a9ae4f9fd5a728c8f51af, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8031081105206769666 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4654031626114267515, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + m_PrefabInstance: {fileID: 8031081105206769664} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8031081105206769669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5c67033f580359c4581dff1ccffcca91, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8031081105206769667 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5679112963636671120, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + m_PrefabInstance: {fileID: 8031081105206769664} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1a379f34d4f4f2e408d34f14bfb753ce, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &8031081105206769669 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2552751781337300309, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + m_PrefabInstance: {fileID: 8031081105206769664} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8031081105206769670 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8930155292704308951, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + m_PrefabInstance: {fileID: 8031081105206769664} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5e48d93b64a9ae4f9fd5a728c8f51af, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8031081105206769671 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 478320840234885314, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + m_PrefabInstance: {fileID: 8031081105206769664} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8031081105206769674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5c67033f580359c4581dff1ccffcca91, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8031081105206769672 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5679112963167615785, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + m_PrefabInstance: {fileID: 8031081105206769664} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1a379f34d4f4f2e408d34f14bfb753ce, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &8031081105206769674 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8445982241883230424, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + m_PrefabInstance: {fileID: 8031081105206769664} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8031081105206769675 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5679112963091543779, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + m_PrefabInstance: {fileID: 8031081105206769664} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8031081105206769676 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5679112963574900117, guid: 4c0ee7a14e52ba544b89c2f777670cca, type: 3} + m_PrefabInstance: {fileID: 8031081105206769664} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &8505535045765685074 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 391734554} + m_Modifications: + - target: {fileID: 336358375985414314, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: m_Name + value: LeftHandSynthetic + objectReference: {fileID: 0} + - target: {fileID: 336358375985414315, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 336358375985414315, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 336358375985414315, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 336358375985414315, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 336358375985414315, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 336358375985414315, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 336358375985414315, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 336358375985414315, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 336358375985414315, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 336358375985414315, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 336358375985414315, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2143258138932893620, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2143258140177466423, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8592730055715483824, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} + propertyPath: _iModifyDataFromSourceMono + value: + objectReference: {fileID: 1289915232} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e7fbb376593cff24f9db4ecf8d465aaf, type: 3} +--- !u!114 &9043436930505388500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995403985441543726} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 77279ac005404794d8e29e385f50c9c2, type: 3} + m_Name: + m_EditorClassIdentifier: + _handGrabAPI: {fileID: 5995403985441543725} +--- !u!1001 &9046911637164694215 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2063279215} + m_Modifications: + - target: {fileID: 15374482166302223, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 65207973030035947, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_Name + value: OVRHands + objectReference: {fileID: 0} + - target: {fileID: 65207973030035947, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3363867107013514217, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4392756070075192809, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: _interactors.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4392756070075192809, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: _interactors.Array.data[0] + value: + objectReference: {fileID: 347759230} + - target: {fileID: 4392756070075192809, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: _interactors.Array.data[1] + value: + objectReference: {fileID: 1449796210} + - target: {fileID: 4869577802921675287, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4869577802921675287, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4869577802921675287, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4869577802921675287, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4869577802921675287, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4869577802921675287, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4869577802921675287, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4869577802921675287, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4869577802921675287, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4869577802921675287, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4869577802921675287, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6339505922184086532, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: _hmdData + value: + objectReference: {fileID: 0} + - target: {fileID: 6339505922184086532, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: _cameraRigRef + value: + objectReference: {fileID: 2063279214} + - target: {fileID: 6339505922184086532, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: _trackingToWorldTransformer + value: + objectReference: {fileID: 2063279213} + - target: {fileID: 7048434468649777690, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: _interactors.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7048434468649777690, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: _interactors.Array.data[0] + value: + objectReference: {fileID: 609117981} + - target: {fileID: 7048434468649777690, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: _interactors.Array.data[1] + value: + objectReference: {fileID: 894223781} + - target: {fileID: 7312179887322021490, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: _hmdData + value: + objectReference: {fileID: 0} + - target: {fileID: 7312179887322021490, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: _cameraRigRef + value: + objectReference: {fileID: 2063279214} + - target: {fileID: 7312179887322021490, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} + propertyPath: _trackingToWorldTransformer + value: + objectReference: {fileID: 2063279213} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ea16c3c8c1688234fa81a4f39339bf1b, type: 3} diff --git a/Samples/Scenes/MovementLocomotion.unity.meta b/Samples/Scenes/MovementLocomotion.unity.meta new file mode 100644 index 00000000..64772832 --- /dev/null +++ b/Samples/Scenes/MovementLocomotion.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dea6f4ca12e28344ebca139bbdb57ce2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Scenes/MovementLocomotion/LightingData.asset b/Samples/Scenes/MovementLocomotion/LightingData.asset new file mode 100644 index 00000000..f406d79c Binary files /dev/null and b/Samples/Scenes/MovementLocomotion/LightingData.asset differ diff --git a/Samples/Scenes/MovementLocomotion/LightingData.asset.meta b/Samples/Scenes/MovementLocomotion/LightingData.asset.meta new file mode 100644 index 00000000..e3ad474b --- /dev/null +++ b/Samples/Scenes/MovementLocomotion/LightingData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b3f9c8757ef88034787925287f3a97a3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 112000000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Scenes/MovementLocomotion/Lightmap-0_comp_dir.png b/Samples/Scenes/MovementLocomotion/Lightmap-0_comp_dir.png new file mode 100644 index 00000000..72937a4e Binary files /dev/null and b/Samples/Scenes/MovementLocomotion/Lightmap-0_comp_dir.png differ diff --git a/Samples/Scenes/MovementLocomotion/Lightmap-0_comp_dir.png.meta b/Samples/Scenes/MovementLocomotion/Lightmap-0_comp_dir.png.meta new file mode 100644 index 00000000..26d5d01a --- /dev/null +++ b/Samples/Scenes/MovementLocomotion/Lightmap-0_comp_dir.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 2fc310a798be14541ab85f4967f8ead5 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 12 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Scenes/MovementLocomotion/Lightmap-0_comp_light.exr b/Samples/Scenes/MovementLocomotion/Lightmap-0_comp_light.exr new file mode 100644 index 00000000..96634422 Binary files /dev/null and b/Samples/Scenes/MovementLocomotion/Lightmap-0_comp_light.exr differ diff --git a/Samples/Scenes/MovementLocomotion/Lightmap-0_comp_light.exr.meta b/Samples/Scenes/MovementLocomotion/Lightmap-0_comp_light.exr.meta new file mode 100644 index 00000000..b5e72022 --- /dev/null +++ b/Samples/Scenes/MovementLocomotion/Lightmap-0_comp_light.exr.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 3af99b02da4272443b6a59a7ed209e24 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 1 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 6 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Scenes/MovementLocomotion/ReflectionProbe-0.exr b/Samples/Scenes/MovementLocomotion/ReflectionProbe-0.exr new file mode 100644 index 00000000..0d310ee3 Binary files /dev/null and b/Samples/Scenes/MovementLocomotion/ReflectionProbe-0.exr differ diff --git a/Samples/Scenes/MovementLocomotion/ReflectionProbe-0.exr.meta b/Samples/Scenes/MovementLocomotion/ReflectionProbe-0.exr.meta new file mode 100644 index 00000000..65b6a7a1 --- /dev/null +++ b/Samples/Scenes/MovementLocomotion/ReflectionProbe-0.exr.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 6cc62d581f7c73b41917b335a8d01595 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 1 + seamlessCubemap: 1 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 0 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Scenes/MovementRetargeting.unity b/Samples/Scenes/MovementRetargeting.unity index ab00180c..c15f82b4 100644 --- a/Samples/Scenes/MovementRetargeting.unity +++ b/Samples/Scenes/MovementRetargeting.unity @@ -449,15 +449,6 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 23758205} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!319 &52514089 -AvatarMask: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 - m_Elements: [] --- !u!4 &87392205 stripped Transform: m_CorrespondingSourceObject: {fileID: 942435568972493560, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} @@ -893,6 +884,17 @@ Transform: m_CorrespondingSourceObject: {fileID: 2494227819838822627, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} m_PrefabInstance: {fileID: 2878048534481306165} m_PrefabAsset: {fileID: 0} +--- !u!114 &295473228 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3289871368579812835, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + m_PrefabInstance: {fileID: 2878048534481306165} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d65fffb91be5d7446a2921b8a1bda1ae, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!4 &299974520 stripped Transform: m_CorrespondingSourceObject: {fileID: 3303786657718698241, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} @@ -1684,6 +1686,63 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!1001 &352180557 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 8443568635789723409, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_Name + value: BTCalibrationButton + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_RootOrder + value: 18 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalPosition.x + value: -0.875 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalPosition.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalPosition.z + value: -0.267 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalRotation.x + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalRotation.z + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 8443568635789723411, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c723fc2e86185ec498c4ae6e14c45cd9, type: 3} --- !u!1 &356626756 GameObject: m_ObjectHideFlags: 0 @@ -1780,8 +1839,88 @@ MonoBehaviour: _positionPinning: Enabled: 0 MaxPinDistance: 0 + PinningEaseCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ResyncCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.2 _recoilAssist: Enabled: 0 + UseDynamicDecay: 0 + DynamicDecayCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 50 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9 + value: 0.5 + inSlope: -47 + outSlope: -47 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + UseVelocityExpansion: 0 + VelocityExpansionMinSpeed: 0.4 + VelocityExpansionMaxSpeed: 1.4 + VelocityExpansionDistance: 0.055 + VelocityExpansionDecayRate: 0.125 ExitDistance: 0.02 ReEnterDistance: 0.02 _closeDistanceThreshold: 0.001 @@ -2851,6 +2990,15 @@ Transform: m_CorrespondingSourceObject: {fileID: 1855708941750506061, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} m_PrefabInstance: {fileID: 2878048534481306165} m_PrefabAsset: {fileID: 0} +--- !u!319 &987056034 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: [] --- !u!4 &1007903587 stripped Transform: m_CorrespondingSourceObject: {fileID: 7367197533957481950, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} @@ -3441,8 +3589,88 @@ MonoBehaviour: _positionPinning: Enabled: 0 MaxPinDistance: 0 + PinningEaseCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ResyncCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.2 _recoilAssist: Enabled: 0 + UseDynamicDecay: 0 + DynamicDecayCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 50 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9 + value: 0.5 + inSlope: -47 + outSlope: -47 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + UseVelocityExpansion: 0 + VelocityExpansionMinSpeed: 0.4 + VelocityExpansionMaxSpeed: 1.4 + VelocityExpansionDistance: 0.055 + VelocityExpansionDecayRate: 0.125 ExitDistance: 0.02 ReEnterDistance: 0.02 _closeDistanceThreshold: 0.001 @@ -3475,9 +3703,9 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - - m_Target: {fileID: 1639108944} - m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[Oculus.Movement.AnimationRigging.CustomMappings+BodyTrackingBoneId, - Meta.Movement + - m_Target: {fileID: 6481326281037284172} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[OVRUnityHumanoidSkeletonRetargeter+OVRHumanBodyBonesMappings+BodyTrackingBoneId, + Oculus.VR m_MethodName: set_IsShowingAxes m_Mode: 6 m_Arguments: @@ -3656,230 +3884,17 @@ Transform: m_CorrespondingSourceObject: {fileID: 4150047613444537597, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} m_PrefabInstance: {fileID: 2878048534481306165} m_PrefabAsset: {fileID: 0} ---- !u!1 &1313465878 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1313465880} - - component: {fileID: 1313465879} - - component: {fileID: 1313465881} - m_Layer: 0 - m_Name: DebugBones - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1313465879 +--- !u!114 &1313465879 stripped MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 669339439527238448, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + m_PrefabInstance: {fileID: 669339440638328103} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1313465878} + m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: c79d7660e6ccc8a47882b41bfbda4978, type: 3} m_Name: m_EditorClassIdentifier: - _whenToRender: 2 - _visualizationGuideType: 0 - _maskToVisualize: {fileID: 31900000, guid: 8267e3d56146c7e43bd0296dc7f86558, type: 2} - _customBoneVisualData: - BoneTuples: - - FirstBone: 0 - SecondBone: 7 - Hide: 0 - - FirstBone: 1 - SecondBone: 3 - Hide: 0 - - FirstBone: 2 - SecondBone: 4 - Hide: 0 - - FirstBone: 3 - SecondBone: 5 - Hide: 0 - - FirstBone: 4 - SecondBone: 6 - Hide: 0 - - FirstBone: 5 - SecondBone: 19 - Hide: 0 - - FirstBone: 6 - SecondBone: 20 - Hide: 0 - - FirstBone: 7 - SecondBone: 8 - Hide: 0 - - FirstBone: 8 - SecondBone: 54 - Hide: 0 - - FirstBone: 9 - SecondBone: 10 - Hide: 0 - - FirstBone: 11 - SecondBone: 13 - Hide: 0 - - FirstBone: 12 - SecondBone: 14 - Hide: 0 - - FirstBone: 13 - SecondBone: 15 - Hide: 0 - - FirstBone: 14 - SecondBone: 16 - Hide: 0 - - FirstBone: 15 - SecondBone: 17 - Hide: 0 - - FirstBone: 16 - SecondBone: 18 - Hide: 0 - - FirstBone: 17 - SecondBone: 30 - Hide: 0 - - FirstBone: 18 - SecondBone: 45 - Hide: 0 - - FirstBone: 10 - SecondBone: 21 - Hide: 0 - - FirstBone: 10 - SecondBone: 22 - Hide: 0 - - FirstBone: 10 - SecondBone: 23 - Hide: 0 - - FirstBone: 24 - SecondBone: 25 - Hide: 0 - - FirstBone: 25 - SecondBone: 26 - Hide: 0 - - FirstBone: 26 - SecondBone: 55 - Hide: 0 - - FirstBone: 27 - SecondBone: 28 - Hide: 0 - - FirstBone: 28 - SecondBone: 29 - Hide: 0 - - FirstBone: 29 - SecondBone: 55 - Hide: 0 - - FirstBone: 30 - SecondBone: 31 - Hide: 0 - - FirstBone: 31 - SecondBone: 32 - Hide: 0 - - FirstBone: 32 - SecondBone: 55 - Hide: 0 - - FirstBone: 33 - SecondBone: 34 - Hide: 0 - - FirstBone: 34 - SecondBone: 35 - Hide: 0 - - FirstBone: 35 - SecondBone: 55 - Hide: 0 - - FirstBone: 36 - SecondBone: 37 - Hide: 0 - - FirstBone: 37 - SecondBone: 38 - Hide: 0 - - FirstBone: 38 - SecondBone: 55 - Hide: 0 - - FirstBone: 39 - SecondBone: 40 - Hide: 0 - - FirstBone: 40 - SecondBone: 41 - Hide: 0 - - FirstBone: 41 - SecondBone: 55 - Hide: 0 - - FirstBone: 42 - SecondBone: 43 - Hide: 0 - - FirstBone: 43 - SecondBone: 44 - Hide: 0 - - FirstBone: 44 - SecondBone: 55 - Hide: 0 - - FirstBone: 45 - SecondBone: 46 - Hide: 0 - - FirstBone: 46 - SecondBone: 47 - Hide: 0 - - FirstBone: 47 - SecondBone: 55 - Hide: 0 - - FirstBone: 48 - SecondBone: 49 - Hide: 0 - - FirstBone: 49 - SecondBone: 50 - Hide: 0 - - FirstBone: 50 - SecondBone: 55 - Hide: 0 - - FirstBone: 51 - SecondBone: 52 - Hide: 0 - - FirstBone: 52 - SecondBone: 53 - Hide: 0 - - FirstBone: 53 - SecondBone: 55 - Hide: 0 - - FirstBone: 54 - SecondBone: 9 - Hide: 0 - _lineRendererPrefab: {fileID: 7812178534108119229, guid: 6d28b0d0a0ff2234cbf60710c8c912dc, type: 3} - _axisRendererPrefab: {fileID: 106719106145556050, guid: 6103ef5d90d602545af4eb910563af03, type: 3} - _visualType: 0 - _animatorComp: {fileID: 2878048534481306166} ---- !u!4 &1313465880 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1313465878} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.81499124, y: 1.347516, z: 0.12875414} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 13 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1313465881 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1313465878} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 84fe64f23f2a68b4a86633382680187d, type: 3} - m_Name: - m_EditorClassIdentifier: - _boneVisualizer: {fileID: 1313465879} - _lineColor: {r: 0.9959899, g: 1, b: 0, a: 1} --- !u!4 &1329645809 stripped Transform: m_CorrespondingSourceObject: {fileID: 4455956934440647469, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} @@ -4261,70 +4276,73 @@ Transform: m_CorrespondingSourceObject: {fileID: 5254371722432579583, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} m_PrefabInstance: {fileID: 2878048534481306165} m_PrefabAsset: {fileID: 0} ---- !u!4 &1582590828 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8978626515341356355, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} - m_PrefabInstance: {fileID: 2878048534481306165} - m_PrefabAsset: {fileID: 0} ---- !u!4 &1584994451 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8702160152427063123, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} - m_PrefabInstance: {fileID: 2878048534481306165} - m_PrefabAsset: {fileID: 0} ---- !u!1 &1639108941 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1639108943} - - component: {fileID: 1639108944} - m_Layer: 0 - m_Name: DebugBonesOVRSkeleton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1639108943 -Transform: +--- !u!1001 &1578172461 +PrefabInstance: m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1639108941} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.81499124, y: 1.347516, z: 0.12875414} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 14 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1639108944 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_RootOrder + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.x + value: -0.875 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalPosition.z + value: -0.436 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.x + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7010574 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalRotation.z + value: 0.09229593 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471432, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7362976725013471434, guid: 0737e3f63e17bac45b774695173860d1, type: 3} + propertyPath: m_Name + value: BodyTrackingFidelityToggle + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0737e3f63e17bac45b774695173860d1, type: 3} +--- !u!4 &1582590828 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8978626515341356355, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + m_PrefabInstance: {fileID: 2878048534481306165} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1584994451 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8702160152427063123, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + m_PrefabInstance: {fileID: 2878048534481306165} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1639108941} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ab1e3682a8676d84faba89a2aee068e8, type: 3} - m_Name: - m_EditorClassIdentifier: - _whenToRender: 2 - _visualizationGuideType: 0 - _maskToVisualize: {fileID: 52514089} - _customBoneVisualData: - BoneTuples: [] - _lineRendererPrefab: {fileID: 7812178534108119229, guid: 91a281e92421c464e837420766cafd02, type: 3} - _axisRendererPrefab: {fileID: 106719106145556050, guid: 6103ef5d90d602545af4eb910563af03, type: 3} - _visualType: 0 - _ovrSkeletonComp: {fileID: 2878048534481306169} - _visualizeBindPose: 0 --- !u!4 &1648597920 stripped Transform: m_CorrespondingSourceObject: {fileID: 5429506017946967965, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} @@ -4899,8 +4917,88 @@ MonoBehaviour: _positionPinning: Enabled: 0 MaxPinDistance: 0 + PinningEaseCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ResyncCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.2 _recoilAssist: Enabled: 0 + UseDynamicDecay: 0 + DynamicDecayCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 50 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9 + value: 0.5 + inSlope: -47 + outSlope: -47 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + UseVelocityExpansion: 0 + VelocityExpansionMinSpeed: 0.4 + VelocityExpansionMaxSpeed: 1.4 + VelocityExpansionDistance: 0.055 + VelocityExpansionDecayRate: 0.125 ExitDistance: 0.02 ReEnterDistance: 0.02 _closeDistanceThreshold: 0.001 @@ -6261,6 +6359,71 @@ Transform: m_Father: {fileID: 6932637666278664614} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &669339440638328103 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 669339439527238448, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: _visualType + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238448, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: _animatorComp + value: + objectReference: {fileID: 2878048534481306166} + - target: {fileID: 669339439527238449, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_Name + value: DebugBones + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_RootOrder + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalPosition.x + value: 0.81499124 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalPosition.y + value: 1.347516 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalPosition.z + value: 0.12875414 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 669339439527238463, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 83912ab7fbdf5db41822aa92a1698430, type: 3} --- !u!1 &877835744124044847 GameObject: m_ObjectHideFlags: 0 @@ -6406,6 +6569,71 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1001 &1434491219403225674 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1412995357, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} + propertyPath: m_Data._avatarMask + value: + objectReference: {fileID: 987056034} + - target: {fileID: 63731746210207621, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} + propertyPath: m_RootOrder + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 63731746210207621, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} + propertyPath: m_LocalPosition.x + value: 1.85 + objectReference: {fileID: 0} + - target: {fileID: 63731746210207621, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 63731746210207621, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 63731746210207621, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 63731746210207621, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 63731746210207621, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 63731746210207621, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 63731746210207621, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 63731746210207621, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 63731746210207621, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7890163646267885795, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} + propertyPath: m_Name + value: ArmatureSkinningUpdateRetargetUserUpperBody + objectReference: {fileID: 0} + - target: {fileID: 7890163646267885795, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9085bb280872b4a488fbe0addf928ee7, type: 3} --- !u!4 &1563781490043725217 Transform: m_ObjectHideFlags: 0 @@ -6663,9 +6891,61 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 0} m_Modifications: + - target: {fileID: 1745238009211328571, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.x + value: -0.00000007450578 + objectReference: {fileID: 0} + - target: {fileID: 1745238009211328571, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.y + value: 0.24036232 + objectReference: {fileID: 0} + - target: {fileID: 1745238009211328571, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.z + value: 0.000000001862645 + objectReference: {fileID: 0} + - target: {fileID: 2060949857227676731, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.x + value: 0.007815528 + objectReference: {fileID: 0} + - target: {fileID: 2060949857227676731, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.y + value: 0.09184417 + objectReference: {fileID: 0} + - target: {fileID: 2060949857227676731, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.z + value: 0.026573163 + objectReference: {fileID: 0} + - target: {fileID: 2581824662108350127, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.x + value: -0.004438231 + objectReference: {fileID: 0} + - target: {fileID: 2581824662108350127, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.y + value: -0.0728816 + objectReference: {fileID: 0} + - target: {fileID: 2581824662108350127, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.z + value: 0.029358594 + objectReference: {fileID: 0} + - target: {fileID: 3383859954259095344, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.x + value: 0.009525553 + objectReference: {fileID: 0} + - target: {fileID: 3383859954259095344, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.y + value: 0.08161542 + objectReference: {fileID: 0} + - target: {fileID: 3383859954259095344, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.z + value: -0.012242372 + objectReference: {fileID: 0} - target: {fileID: 3817605947884828321, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} propertyPath: m_RootOrder - value: 12 + value: 13 + objectReference: {fileID: 0} + - target: {fileID: 3817605947884828321, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalScale.x + value: 1 objectReference: {fileID: 0} - target: {fileID: 3817605947884828321, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} propertyPath: m_LocalPosition.x @@ -6685,7 +6965,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 3817605947884828321, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 3817605947884828321, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} propertyPath: m_LocalRotation.y @@ -6693,7 +6973,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 3817605947884828321, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 3817605947884828321, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -6707,14 +6987,46 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4325497552437736820, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} - propertyPath: m_Controller - value: - objectReference: {fileID: 9100000, guid: 85eae303c9a1e5a4e84fbb0db6233a81, type: 2} + - target: {fileID: 4203898523299135714, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.x + value: -0.0095274765 + objectReference: {fileID: 0} + - target: {fileID: 4203898523299135714, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.z + value: 0.012242121 + objectReference: {fileID: 0} + - target: {fileID: 6278560457517021353, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.x + value: 0.0098464815 + objectReference: {fileID: 0} + - target: {fileID: 6278560457517021353, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.z + value: 0.041012727 + objectReference: {fileID: 0} - target: {fileID: 6442339640571472327, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} propertyPath: m_Name value: ArmatureSkinningUpdateRetargetUser objectReference: {fileID: 0} + - target: {fileID: 7258766765732575900, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.x + value: 0.004436876 + objectReference: {fileID: 0} + - target: {fileID: 7258766765732575900, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.y + value: 0.07288174 + objectReference: {fileID: 0} + - target: {fileID: 7258766765732575900, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.z + value: -0.029359046 + objectReference: {fileID: 0} + - target: {fileID: 7367197533957481950, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.x + value: -0.000000028870987 + objectReference: {fileID: 0} + - target: {fileID: 7367197533957481950, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + propertyPath: m_LocalPosition.z + value: 0.000000008381902 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} --- !u!95 &2878048534481306166 stripped @@ -6722,20 +7034,9 @@ Animator: m_CorrespondingSourceObject: {fileID: 4325497552437736820, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} m_PrefabInstance: {fileID: 2878048534481306165} m_PrefabAsset: {fileID: 0} ---- !u!114 &2878048534481306167 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 318886850, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} - m_PrefabInstance: {fileID: 2878048534481306165} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d65fffb91be5d7446a2921b8a1bda1ae, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &2878048534481306169 stripped +--- !u!114 &2878048534481306177 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 208026092, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} + m_CorrespondingSourceObject: {fileID: 7866900989153904485, guid: eb6bc10f92728a546a3d8c144d0ef787, type: 3} m_PrefabInstance: {fileID: 2878048534481306165} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -7231,9 +7532,9 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - - m_Target: {fileID: 1639108944} - m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[Oculus.Movement.AnimationRigging.CustomMappings+BodyTrackingBoneId, - Meta.Movement + - m_Target: {fileID: 6481326281037284172} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[OVRUnityHumanoidSkeletonRetargeter+OVRHumanBodyBonesMappings+BodyTrackingBoneId, + Oculus.VR m_MethodName: set_IsShowingLines m_Mode: 6 m_Arguments: @@ -7334,8 +7635,88 @@ MonoBehaviour: _positionPinning: Enabled: 0 MaxPinDistance: 0 + PinningEaseCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ResyncCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.2 _recoilAssist: Enabled: 0 + UseDynamicDecay: 0 + DynamicDecayCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 50 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9 + value: 0.5 + inSlope: -47 + outSlope: -47 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + UseVelocityExpansion: 0 + VelocityExpansionMinSpeed: 0.4 + VelocityExpansionMaxSpeed: 1.4 + VelocityExpansionDistance: 0.055 + VelocityExpansionDecayRate: 0.125 ExitDistance: 0.02 ReEnterDistance: 0.02 _closeDistanceThreshold: 0.001 @@ -7864,8 +8245,88 @@ MonoBehaviour: _positionPinning: Enabled: 0 MaxPinDistance: 0 + PinningEaseCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.2 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ResyncCurve: + _animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + _animationLength: 0.2 _recoilAssist: Enabled: 0 + UseDynamicDecay: 0 + DynamicDecayCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 50 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9 + value: 0.5 + inSlope: -47 + outSlope: -47 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + UseVelocityExpansion: 0 + VelocityExpansionMinSpeed: 0.4 + VelocityExpansionMaxSpeed: 1.4 + VelocityExpansionDistance: 0.055 + VelocityExpansionDecayRate: 0.125 ExitDistance: 0.02 ReEnterDistance: 0.02 _closeDistanceThreshold: 0.001 @@ -7940,9 +8401,9 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - - m_Target: {fileID: 1639108944} - m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[Oculus.Movement.AnimationRigging.CustomMappings+BodyTrackingBoneId, - Meta.Movement + - m_Target: {fileID: 6481326281037284172} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[OVRUnityHumanoidSkeletonRetargeter+OVRHumanBodyBonesMappings+BodyTrackingBoneId, + Oculus.VR m_MethodName: set_IsShowingAxes m_Mode: 6 m_Arguments: @@ -7966,9 +8427,9 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - - m_Target: {fileID: 1639108944} - m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[Oculus.Movement.AnimationRigging.CustomMappings+BodyTrackingBoneId, - Meta.Movement + - m_Target: {fileID: 6481326281037284172} + m_TargetAssemblyTypeName: Oculus.Movement.Utils.BoneVisualizer`1[[OVRUnityHumanoidSkeletonRetargeter+OVRHumanBodyBonesMappings+BodyTrackingBoneId, + Oculus.VR m_MethodName: set_IsShowingLines m_Mode: 6 m_Arguments: @@ -8204,7 +8665,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4755192900336154934, guid: 8927ceeb08d3b2543babf177db8ea1f2, type: 3} propertyPath: m_LocalPosition.x - value: -0.84 + value: -0.836 objectReference: {fileID: 0} - target: {fileID: 4755192900336154934, guid: 8927ceeb08d3b2543babf177db8ea1f2, type: 3} propertyPath: m_LocalPosition.y @@ -8259,6 +8720,86 @@ Transform: m_Father: {fileID: 2083264274152527379} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &6481326281037284171 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1236458827194487761, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: _visualType + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1236458827194487761, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: _maskToVisualize + value: + objectReference: {fileID: 31900000, guid: 8267e3d56146c7e43bd0296dc7f86558, type: 2} + - target: {fileID: 1236458827194487761, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: _ovrSkeletonComp + value: + objectReference: {fileID: 2878048534481306177} + - target: {fileID: 1692031724233491721, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_Name + value: DebugBonesOVRSkeletonFullBody + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_RootOrder + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalPosition.x + value: 0.81499124 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalPosition.y + value: 1.347516 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalPosition.z + value: 0.12875414 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1692031724233491723, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} +--- !u!114 &6481326281037284172 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1236458827194487761, guid: 8919fa825b25b4544b361623e5d62aba, type: 3} + m_PrefabInstance: {fileID: 6481326281037284171} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f7ef839cc9cacff4091af449079bbce3, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!4 &6643409581859610071 Transform: m_ObjectHideFlags: 0 @@ -8443,7 +8984,7 @@ PrefabInstance: m_Modifications: - target: {fileID: 4563516835585250313, guid: dd042bb7a7e67464c8a82b2c0a32c07c, type: 3} propertyPath: m_RootOrder - value: 15 + value: 16 objectReference: {fileID: 0} - target: {fileID: 4563516835585250313, guid: dd042bb7a7e67464c8a82b2c0a32c07c, type: 3} propertyPath: m_LocalPosition.x @@ -8496,7 +9037,7 @@ PrefabInstance: - target: {fileID: 7026069999455447086, guid: dd042bb7a7e67464c8a82b2c0a32c07c, type: 3} propertyPath: _retargetingConstraints.Array.data[0] value: - objectReference: {fileID: 2878048534481306167} + objectReference: {fileID: 295473228} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: dd042bb7a7e67464c8a82b2c0a32c07c, type: 3} --- !u!1 &7652572205201101483 diff --git a/Samples/Textures/Environment/15m_tiled_AO.png.meta b/Samples/Textures/Environment/15m_tiled_AO.png.meta index 8db0d85f..a68d4868 100644 --- a/Samples/Textures/Environment/15m_tiled_AO.png.meta +++ b/Samples/Textures/Environment/15m_tiled_AO.png.meta @@ -3,7 +3,7 @@ guid: 4ae3950d87b0f5447a9ec0af67190dcc TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 11 + serializedVersion: 12 mipmaps: mipMapMode: 0 enableMipMap: 1 @@ -24,6 +24,7 @@ TextureImporter: streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -32,8 +33,8 @@ TextureImporter: maxTextureSize: 2048 textureSettings: serializedVersion: 2 - filterMode: 1 - aniso: 1 + filterMode: 2 + aniso: 16 mipBias: 0 wrapU: 0 wrapV: 0 @@ -62,6 +63,7 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 + cookieLightType: 1 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform @@ -75,6 +77,42 @@ TextureImporter: overridden: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] @@ -88,6 +126,7 @@ TextureImporter: edges: [] weights: [] secondaryTextures: [] + nameFileIdTable: {} spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Samples/Textures/Environment/15m_tiled_BaseColor.png.meta b/Samples/Textures/Environment/15m_tiled_BaseColor.png.meta index 09f1052f..897cf605 100644 --- a/Samples/Textures/Environment/15m_tiled_BaseColor.png.meta +++ b/Samples/Textures/Environment/15m_tiled_BaseColor.png.meta @@ -3,7 +3,7 @@ guid: df032a495be038741b91f137b31d0b88 TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 11 + serializedVersion: 12 mipmaps: mipMapMode: 0 enableMipMap: 1 @@ -24,6 +24,7 @@ TextureImporter: streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -32,8 +33,8 @@ TextureImporter: maxTextureSize: 2048 textureSettings: serializedVersion: 2 - filterMode: 1 - aniso: 1 + filterMode: 2 + aniso: 16 mipBias: 0 wrapU: 0 wrapV: 0 @@ -62,6 +63,7 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 + cookieLightType: 1 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform @@ -75,6 +77,42 @@ TextureImporter: overridden: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] @@ -88,6 +126,7 @@ TextureImporter: edges: [] weights: [] secondaryTextures: [] + nameFileIdTable: {} spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Samples/Textures/Environment/15m_tiled_Normal.png.meta b/Samples/Textures/Environment/15m_tiled_Normal.png.meta index 4a5c522e..dbdf932c 100644 --- a/Samples/Textures/Environment/15m_tiled_Normal.png.meta +++ b/Samples/Textures/Environment/15m_tiled_Normal.png.meta @@ -3,7 +3,7 @@ guid: 2d100d96d9356b545b0575340226a857 TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 11 + serializedVersion: 12 mipmaps: mipMapMode: 0 enableMipMap: 1 @@ -24,6 +24,7 @@ TextureImporter: streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -32,8 +33,8 @@ TextureImporter: maxTextureSize: 2048 textureSettings: serializedVersion: 2 - filterMode: 1 - aniso: 1 + filterMode: 2 + aniso: 16 mipBias: 0 wrapU: 0 wrapV: 0 @@ -62,6 +63,7 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 + cookieLightType: 1 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform @@ -99,6 +101,18 @@ TextureImporter: overridden: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] @@ -112,6 +126,7 @@ TextureImporter: edges: [] weights: [] secondaryTextures: [] + nameFileIdTable: {} spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Samples/Textures/Environment/15m_tiled_Specular.png.meta b/Samples/Textures/Environment/15m_tiled_Specular.png.meta index 737f2aa9..15425a7b 100644 --- a/Samples/Textures/Environment/15m_tiled_Specular.png.meta +++ b/Samples/Textures/Environment/15m_tiled_Specular.png.meta @@ -3,7 +3,7 @@ guid: 51b20b409acb5ae4a80122fbc020db78 TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 11 + serializedVersion: 12 mipmaps: mipMapMode: 0 enableMipMap: 1 @@ -24,6 +24,7 @@ TextureImporter: streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -32,8 +33,8 @@ TextureImporter: maxTextureSize: 2048 textureSettings: serializedVersion: 2 - filterMode: 1 - aniso: 1 + filterMode: 2 + aniso: 16 mipBias: 0 wrapU: 0 wrapV: 0 @@ -62,6 +63,7 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 + cookieLightType: 1 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform @@ -75,6 +77,42 @@ TextureImporter: overridden: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] @@ -88,6 +126,7 @@ TextureImporter: edges: [] weights: [] secondaryTextures: [] + nameFileIdTable: {} spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Samples/Textures/Environment/grid_lg_Normal.png b/Samples/Textures/Environment/grid_lg_Normal.png new file mode 100644 index 00000000..0da5d24c Binary files /dev/null and b/Samples/Textures/Environment/grid_lg_Normal.png differ diff --git a/Samples/Textures/Environment/grid_lg_Normal.png.meta b/Samples/Textures/Environment/grid_lg_Normal.png.meta new file mode 100644 index 00000000..70601230 --- /dev/null +++ b/Samples/Textures/Environment/grid_lg_Normal.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 013e335da2b35b242805034b64211fc1 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Textures/Environment/grid_sm_Normal.png b/Samples/Textures/Environment/grid_sm_Normal.png new file mode 100644 index 00000000..b37ba6fe Binary files /dev/null and b/Samples/Textures/Environment/grid_sm_Normal.png differ diff --git a/Samples/Textures/Environment/grid_sm_Normal.png.meta b/Samples/Textures/Environment/grid_sm_Normal.png.meta new file mode 100644 index 00000000..21447072 --- /dev/null +++ b/Samples/Textures/Environment/grid_sm_Normal.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: afbac3780e85a8b41ab5da06d52008eb +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 16 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Textures/UI/icon_mug.png b/Samples/Textures/UI/icon_mug.png new file mode 100644 index 00000000..67094bb0 Binary files /dev/null and b/Samples/Textures/UI/icon_mug.png differ diff --git a/Samples/Textures/UI/icon_mug.png.meta b/Samples/Textures/UI/icon_mug.png.meta new file mode 100644 index 00000000..bb19afbc --- /dev/null +++ b/Samples/Textures/UI/icon_mug.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 7cf9dc35870a5a94993995fba2695241 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/Textures/UI/icon_run.png b/Samples/Textures/UI/icon_run.png new file mode 100644 index 00000000..30b4b423 Binary files /dev/null and b/Samples/Textures/UI/icon_run.png differ diff --git a/Samples/Textures/UI/icon_run.png.meta b/Samples/Textures/UI/icon_run.png.meta new file mode 100644 index 00000000..a799cb94 --- /dev/null +++ b/Samples/Textures/UI/icon_run.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 291846d97c00ed941b195b7a6fb25f10 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/ThirdParty/AnimationClips/Fall Idle.fbx b/Samples/ThirdParty/AnimationClips/Fall Idle.fbx new file mode 100644 index 00000000..6584e580 Binary files /dev/null and b/Samples/ThirdParty/AnimationClips/Fall Idle.fbx differ diff --git a/Samples/ThirdParty/AnimationClips/Fall Idle.fbx.meta b/Samples/ThirdParty/AnimationClips/Fall Idle.fbx.meta new file mode 100644 index 00000000..fc387a6d --- /dev/null +++ b/Samples/ThirdParty/AnimationClips/Fall Idle.fbx.meta @@ -0,0 +1,971 @@ +fileFormatVersion: 2 +guid: 572b8ea906288054f9916e9ad904dfc7 +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 3 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: Fall Idle mixamo.com + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 21 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: Hips + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperLeg + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperLeg + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerLeg + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerLeg + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Foot + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Foot + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Spine + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Chest + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Neck + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Head + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Shoulder + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Shoulder + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperArm + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperArm + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerArm + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerArm + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Hand + humanName: LeftHand + limit: + min: {x: 0, y: -180, z: -180} + max: {x: 0, y: 180, z: 180} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 1 + - boneName: Right_Hand + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Toes + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Toes + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbProximal + humanName: Left Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbIntermediate + humanName: Left Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbDistal + humanName: Left Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexProximal + humanName: Left Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexIntermediate + humanName: Left Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexDistal + humanName: Left Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleProximal + humanName: Left Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleIntermediate + humanName: Left Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleDistal + humanName: Left Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingProximal + humanName: Left Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingIntermediate + humanName: Left Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingDistal + humanName: Left Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyProximal + humanName: Left Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyIntermediate + humanName: Left Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyDistal + humanName: Left Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbProximal + humanName: Right Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbIntermediate + humanName: Right Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbDistal + humanName: Right Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexProximal + humanName: Right Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexIntermediate + humanName: Right Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexDistal + humanName: Right Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleProximal + humanName: Right Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleIntermediate + humanName: Right Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleDistal + humanName: Right Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingProximal + humanName: Right Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingIntermediate + humanName: Right Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingDistal + humanName: Right Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyProximal + humanName: Right Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyIntermediate + humanName: Right Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyDistal + humanName: Right Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: UpperChest + humanName: UpperChest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: ArmatureSkinningUpdate(Clone) + parentName: + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Skeleton + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Hips + parentName: Skeleton + position: {x: -0, y: 0.9810986, z: -0.01590455} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Spine + parentName: Hips + position: {x: -0, y: 0.058229383, z: 0.0012229546} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Chest + parentName: Spine + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: UpperChest + parentName: Chest + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Neck + parentName: UpperChest + position: {x: -0, y: 0.25104657, z: -0.015329581} + rotation: {x: 0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Head + parentName: Neck + position: {x: -0, y: 0.12747401, z: 0} + rotation: {x: -0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Right_Eye + parentName: Head + position: {x: 0.033303294, y: 0.03459628, z: 0.0867403} + rotation: {x: 0.7071068, y: 0.0000000037252903, z: 0.7071068, w: 0.0000000037252903} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_Eye + parentName: Head + position: {x: -0.03330326, y: 0.034598116, z: 0.0867403} + rotation: {x: -0.0000000037252903, y: 0.7071068, z: -0.0000000037252903, w: 0.7071068} + scale: {x: 1.0000002, y: 1, z: 1.0000002} + - name: Jaw + parentName: Head + position: {x: -0, y: -0.00763539, z: 0.012895278} + rotation: {x: 0.15949221, y: 0.6888848, z: 0.15949221, w: 0.68888485} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Neck_Twist_A + parentName: Neck + position: {x: -0, y: 0.063737005, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Left_Shoulder + parentName: UpperChest + position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} + rotation: {x: -0.004949423, y: -0.1135221, z: 0.043275435, w: 0.99258024} + scale: {x: 1, y: 1.0000001, z: 1} + - name: Left_UpperArm + parentName: Left_Shoulder + position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17} + rotation: {x: 0.12673515, y: 0.033320952, z: 0.6809722, w: 0.7204892} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Left_LowerArm + parentName: Left_UpperArm + position: {x: -2.8421706e-16, y: 0.28508067, z: 0} + rotation: {x: 0.020536324, y: 0.00832123, z: -0.02062474, w: 0.99954176} + scale: {x: 1.0000004, y: 1.0000004, z: 1} + - name: Left_Hand + parentName: Left_LowerArm + position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16} + rotation: {x: -0.047397543, y: -0.24003612, z: 0.013464515, w: 0.96951276} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000002} + - name: Left_PinkyProximal + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: -0.020071255, y: -0.55048937, z: -0.008245589, w: 0.83456016} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_PinkyIntermediate + parentName: Left_PinkyProximal + position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16} + rotation: {x: 0.028114945, y: 0.00000017881392, z: 0.0000004107132, w: 0.9996047} + scale: {x: 0.99999994, y: 1.0000005, z: 1.0000006} + - name: Left_PinkyDistal + parentName: Left_PinkyIntermediate + position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17} + rotation: {x: 0.036441054, y: 0.0000003874126, z: -0.00000053796356, w: 0.9993358} + scale: {x: 1.0000005, y: 1.0000011, z: 1.000001} + - name: Left_PinkyDistalEnd + parentName: Left_PinkyDistal + position: {x: -1.2434495e-16, y: 0.018519057, z: 0} + rotation: {x: -0.000000014901156, y: -0, z: -1.421085e-14, w: 1} + scale: {x: 1.0000002, y: 1.0000001, z: 0.99999994} + - name: Left_RingProximal + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: -0.017654492, y: -0.602699, z: -0.0040542856, w: 0.7977631} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_RingIntermediate + parentName: Left_RingProximal + position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16} + rotation: {x: 0.023558479, y: -0.000000059604616, z: 0.00000016763798, w: 0.9997225} + scale: {x: 1.0000001, y: 1.0000008, z: 1.0000007} + - name: Left_RingDistal + parentName: Left_RingIntermediate + position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16} + rotation: {x: 0.039085917, y: 0.000000047564775, z: -0.00000023156034, w: 0.99923587} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000005} + - name: Left_RingDistalEnd + parentName: Left_RingDistal + position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: 5.329069e-15, w: 1} + scale: {x: 0.99999994, y: 0.9999998, z: 1} + - name: Left_MiddleProximal + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: -0.004091014, y: -0.66108054, z: -0.004002313, w: 0.7502931} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_MiddleIntermediate + parentName: Left_MiddleProximal + position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17} + rotation: {x: 0.026229925, y: 0.000000089406946, z: 0.0000011208465, w: 0.99965596} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000006} + - name: Left_MiddleDistal + parentName: Left_MiddleIntermediate + position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17} + rotation: {x: 0.033475332, y: 0.00000015209851, z: -0.000000009192755, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 0.9999997} + - name: Left_MiddleDistalEnd + parentName: Left_MiddleDistal + position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: -4.4408905e-16, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000001} + - name: Left_IndexProximal + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: -0.00008071024, y: -0.7104802, z: -0.0063063996, w: 0.70368886} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_IndexIntermediate + parentName: Left_IndexProximal + position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16} + rotation: {x: 0.03019868, y: -0.000000029802326, z: -0.0000008903808, w: 0.99954396} + scale: {x: 1, y: 1.0000005, z: 1.0000005} + - name: Left_IndexDistal + parentName: Left_IndexIntermediate + position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16} + rotation: {x: 0.039457045, y: -0.000000010711526, z: 0.00000045662225, w: 0.99922127} + scale: {x: 1, y: 1.0000005, z: 1.0000002} + - name: Left_IndexDistalEnd + parentName: Left_IndexDistal + position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17} + rotation: {x: -0, y: -0, z: 2.2204452e-15, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000002} + - name: Left_ThumbProximal + parentName: Left_Hand + position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476} + rotation: {x: -0.17960364, y: -0.8841738, z: -0.42399, w: 0.078814216} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001} + - name: Left_ThumbIntermediate + parentName: Left_ThumbProximal + position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592} + rotation: {x: 0.12780568, y: -0.00000020116563, z: -0.000000014901158, w: 0.9917993} + scale: {x: 1.0000001, y: 0.99999994, z: 0.99999994} + - name: Left_ThumbDistal + parentName: Left_ThumbIntermediate + position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915} + rotation: {x: -0.045419924, y: 0.0000007949222, z: 0.00000046266297, w: 0.998968} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Left_ThumbDistalEnd + parentName: Left_ThumbDistal + position: {x: -4.2632555e-16, y: 0.029458016, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.9999998, z: 0.99999994} + - name: Left_PinkyProximalDef + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: 0.0066042603, y: -0.5050903, z: 0.37113702, w: 0.7791646} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_RingProximalDef + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: 0.035572164, y: -0.56915504, z: 0.30658576, w: 0.76210386} + scale: {x: 1.0000002, y: 1.0000007, z: 1.0000005} + - name: Left_MiddleProximalDef + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: 0.095934115, y: -0.6426919, z: 0.21124849, w: 0.7301492} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_IndexProximalDef + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: 0.13385344, y: -0.6899346, z: 0.20177333, w: 0.6821737} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_ThumbIntermediateDef + parentName: Left_Hand + position: {x: -0.0132574225, y: 0.0502166, z: 0.036247443} + rotation: {x: 0.22855456, y: -0.91963416, z: -0.31812134, w: -0.02889162} + scale: {x: 1.0000006, y: 1.0000004, z: 1.0000002} + - name: Left_LowerArmEnd + parentName: Left_LowerArm + position: {x: -2.4123806e-10, y: 0.24036221, z: -2.842171e-16} + rotation: {x: -0.000000029802315, y: -0, z: 2.6645346e-15, w: 1} + scale: {x: 1.0000004, y: 1.0000002, z: 1} + - name: Right_Shoulder + parentName: UpperChest + position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} + rotation: {x: 0.99258024, y: -0.043275435, z: -0.1135221, w: 0.004949424} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperArm + parentName: Right_Shoulder + position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746} + rotation: {x: -0.12673455, y: -0.033321112, z: -0.6809673, w: -0.7204941} + scale: {x: 0.9999999, y: 0.99999976, z: 1.0000002} + - name: Right_LowerArm + parentName: Right_UpperArm + position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226} + rotation: {x: 0.020537077, y: 0.008318591, z: -0.020618176, w: 0.9995418} + scale: {x: 1.0000005, y: 1.0000001, z: 1.0000001} + - name: Right_Hand + parentName: Right_LowerArm + position: {x: -0, y: -0.24036367, z: 0} + rotation: {x: -0.047397524, y: -0.24003613, z: 0.013464563, w: 0.9695127} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000006} + - name: Right_PinkyProximal + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: -0.020056283, y: -0.5504963, z: -0.008250083, w: 0.83455586} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_PinkyIntermediate + parentName: Right_PinkyProximal + position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623} + rotation: {x: 0.02811506, y: -0.0000030398364, z: 0.000002180226, w: 0.9996047} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000006} + - name: Right_PinkyDistal + parentName: Right_PinkyIntermediate + position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345} + rotation: {x: 0.036424562, y: -0.0000020630353, z: -0.000008972234, w: 0.9993364} + scale: {x: 1, y: 0.9999998, z: 1.0000001} + - name: Right_PinkyDistalEnd + parentName: Right_PinkyDistal + position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108} + rotation: {x: -0, y: -0, z: -3.5527133e-15, w: 1} + scale: {x: 1.0000002, y: 1, z: 1.0000001} + - name: Right_RingProximal + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: -0.017648041, y: -0.60270077, z: -0.004054018, w: 0.79776186} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_RingIntermediate + parentName: Right_RingProximal + position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335} + rotation: {x: 0.02354795, y: 0.0000019669526, z: 0.000006956046, w: 0.9997227} + scale: {x: 0.99999994, y: 0.99999994, z: 1} + - name: Right_RingDistal + parentName: Right_RingIntermediate + position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098} + rotation: {x: 0.039102394, y: 0.00000033448705, z: -0.0000046869313, w: 0.9992352} + scale: {x: 1.0000001, y: 0.99999994, z: 1.0000002} + - name: Right_RingDistalEnd + parentName: Right_RingDistal + position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459} + rotation: {x: -0, y: -0, z: -3.9968025e-15, w: 1} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Right_MiddleProximal + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: -0.0040832064, y: -0.6610816, z: -0.0039998735, w: 0.75029224} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_MiddleIntermediate + parentName: Right_MiddleProximal + position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695} + rotation: {x: 0.02622648, y: -0.0000009238719, z: -0.0000023830214, w: 0.9996561} + scale: {x: 0.99999994, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistal + parentName: Right_MiddleIntermediate + position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916} + rotation: {x: 0.03347536, y: 0.00000011190659, z: -0.000000035817987, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistalEnd + parentName: Right_MiddleDistal + position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584} + rotation: {x: -0, y: -0, z: -1.7763562e-15, w: 1} + scale: {x: 1.0000002, y: 0.99999994, z: 0.99999994} + - name: Right_IndexProximal + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: -0.00008950194, y: -0.71048063, z: -0.006329643, w: 0.70368826} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexIntermediate + parentName: Right_IndexProximal + position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077} + rotation: {x: 0.030205265, y: -0.00000023841855, z: 0.000011867056, w: 0.9995437} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001} + - name: Right_IndexDistal + parentName: Right_IndexIntermediate + position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629} + rotation: {x: 0.039483186, y: 0.00000044864683, z: -0.000006141602, w: 0.99922025} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexDistalEnd + parentName: Right_IndexDistal + position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131} + rotation: {x: -0, y: -0, z: -5.3290705e-15, w: 1} + scale: {x: 1.0000001, y: 1, z: 0.99999994} + - name: Right_ThumbProximal + parentName: Right_Hand + position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695} + rotation: {x: -0.17960693, y: -0.88417095, z: -0.4239946, w: 0.07881383} + scale: {x: 1, y: 0.9999997, z: 1.0000004} + - name: Right_ThumbIntermediate + parentName: Right_ThumbProximal + position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848} + rotation: {x: 0.1278056, y: -0.00000038743013, z: -0.000000014901159, w: 0.9917993} + scale: {x: 1.0000001, y: 1.0000002, z: 1.0000004} + - name: Right_ThumbDistal + parentName: Right_ThumbIntermediate + position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783} + rotation: {x: -0.045420226, y: -0.000002421734, z: 0.000001035943, w: 0.998968} + scale: {x: 1.0000001, y: 0.9999998, z: 0.99999994} + - name: Right_ThumbDistalEnd + parentName: Right_ThumbDistal + position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683} + rotation: {x: -0, y: 0.00000014403909, z: -0.0000000134323095, w: 1} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Right_PinkyProximalDef + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: 0.006604309, y: -0.50509036, z: 0.37113705, w: 0.7791645} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000001} + - name: Right_RingProximalDef + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: 0.035572305, y: -0.56915504, z: 0.3065858, w: 0.7621038} + scale: {x: 0.99999994, y: 1, z: 1.0000002} + - name: Right_MiddleProximalDef + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: 0.09593412, y: -0.642692, z: 0.21124847, w: 0.7301492} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_IndexProximalDef + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: 0.13385352, y: -0.6899346, z: 0.20177332, w: 0.6821737} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_ThumbIntermediateDef + parentName: Right_Hand + position: {x: 0.013255546, y: -0.050215878, z: -0.036247417} + rotation: {x: 0.22855446, y: -0.91963416, z: -0.31812134, w: -0.02889147} + scale: {x: 1.0000001, y: 0.9999998, z: 1.0000004} + - name: Right_LowerArmEnd + parentName: Right_LowerArm + position: {x: 1.4210854e-16, y: -0.24036367, z: 7.105427e-17} + rotation: {x: -0, y: -0, z: -1.7763568e-15, w: 1} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000004} + - name: Left_UpperLeg + parentName: Hips + position: {x: -0.08610317, y: -0.053458035, z: -0.011470641} + rotation: {x: 0.999839, y: -0.017753728, z: 0.000046300593, w: -0.0026075034} + scale: {x: 1, y: 1, z: 1} + - name: Left_LowerLeg + parentName: Left_UpperLeg + position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17} + rotation: {x: 0.034046084, y: 0.0000000024447215, z: -0.0000000074505797, w: 0.9994202} + scale: {x: 1, y: 1.0000006, z: 1.0000006} + - name: Left_Foot + parentName: Left_LowerLeg + position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 0.9999998, z: 0.9999998} + - name: Left_Toes + parentName: Left_Foot + position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506} + rotation: {x: -0.70710677, y: -0.0000000074505815, z: 0.000000003143214, w: 0.7071068} + scale: {x: 1.0000001, y: 1.0000001, z: 1} + - name: Left_ToesEnd + parentName: Left_Toes + position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978} + rotation: {x: 0.7070656, y: -0.0076322434, z: -0.0076322514, w: 0.70706564} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperLeg + parentName: Hips + position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475} + rotation: {x: 0.0026075034, y: 0.000046300593, z: 0.017753728, w: 0.999839} + scale: {x: 1, y: 1, z: 1} + - name: Right_LowerLeg + parentName: Right_UpperLeg + position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435} + rotation: {x: 0.034046084, y: 0.0000000024228937, z: -0.0000000073384845, w: 0.9994202} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Right_Foot + parentName: Right_LowerLeg + position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Right_Toes + parentName: Right_Foot + position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807} + rotation: {x: -0.7071068, y: -0.0000000037252903, z: -0.0000000013969839, w: 0.7071067} + scale: {x: 1.0000001, y: 1.0000005, z: 1.0000004} + - name: Right_ToesEnd + parentName: Right_Toes + position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898} + rotation: {x: 0.70706564, y: -0.0076322462, z: -0.007632248, w: 0.7070655} + scale: {x: 1, y: 1, z: 1} + - name: Geometry + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Armature_Mesh + parentName: Geometry + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 1 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 1 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: f7f7cd4abe3f02e4e8b99b5a070db992, type: 3} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 2 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/ThirdParty/AnimationClips/Idle.fbx b/Samples/ThirdParty/AnimationClips/Idle.fbx new file mode 100644 index 00000000..370b6166 Binary files /dev/null and b/Samples/ThirdParty/AnimationClips/Idle.fbx differ diff --git a/Samples/ThirdParty/AnimationClips/Idle.fbx.meta b/Samples/ThirdParty/AnimationClips/Idle.fbx.meta new file mode 100644 index 00000000..f21f92f3 --- /dev/null +++ b/Samples/ThirdParty/AnimationClips/Idle.fbx.meta @@ -0,0 +1,971 @@ +fileFormatVersion: 2 +guid: f52e17511f1b7bc45995993300fb20e7 +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 3 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: Idle mixamo.com + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 300 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: Hips + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperLeg + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperLeg + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerLeg + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerLeg + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Foot + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Foot + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Spine + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Chest + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Neck + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Head + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Shoulder + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Shoulder + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperArm + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperArm + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerArm + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerArm + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Hand + humanName: LeftHand + limit: + min: {x: 0, y: -180, z: -180} + max: {x: 0, y: 180, z: 180} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 1 + - boneName: Right_Hand + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Toes + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Toes + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbProximal + humanName: Left Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbIntermediate + humanName: Left Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbDistal + humanName: Left Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexProximal + humanName: Left Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexIntermediate + humanName: Left Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexDistal + humanName: Left Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleProximal + humanName: Left Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleIntermediate + humanName: Left Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleDistal + humanName: Left Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingProximal + humanName: Left Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingIntermediate + humanName: Left Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingDistal + humanName: Left Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyProximal + humanName: Left Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyIntermediate + humanName: Left Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyDistal + humanName: Left Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbProximal + humanName: Right Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbIntermediate + humanName: Right Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbDistal + humanName: Right Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexProximal + humanName: Right Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexIntermediate + humanName: Right Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexDistal + humanName: Right Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleProximal + humanName: Right Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleIntermediate + humanName: Right Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleDistal + humanName: Right Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingProximal + humanName: Right Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingIntermediate + humanName: Right Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingDistal + humanName: Right Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyProximal + humanName: Right Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyIntermediate + humanName: Right Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyDistal + humanName: Right Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: UpperChest + humanName: UpperChest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: ArmatureSkinningUpdate(Clone) + parentName: + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Skeleton + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Hips + parentName: Skeleton + position: {x: -0, y: 0.9810986, z: -0.01590455} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Spine + parentName: Hips + position: {x: -0, y: 0.058229383, z: 0.0012229546} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Chest + parentName: Spine + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: UpperChest + parentName: Chest + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Neck + parentName: UpperChest + position: {x: -0, y: 0.25104657, z: -0.015329581} + rotation: {x: 0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Head + parentName: Neck + position: {x: -0, y: 0.12747401, z: 0} + rotation: {x: -0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Right_Eye + parentName: Head + position: {x: 0.033303294, y: 0.03459628, z: 0.0867403} + rotation: {x: 0.7071068, y: 0.0000000037252903, z: 0.7071068, w: 0.0000000037252903} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_Eye + parentName: Head + position: {x: -0.03330326, y: 0.034598116, z: 0.0867403} + rotation: {x: -0.0000000037252903, y: 0.7071068, z: -0.0000000037252903, w: 0.7071068} + scale: {x: 1.0000002, y: 1, z: 1.0000002} + - name: Jaw + parentName: Head + position: {x: -0, y: -0.00763539, z: 0.012895278} + rotation: {x: 0.15949221, y: 0.6888848, z: 0.15949221, w: 0.68888485} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Neck_Twist_A + parentName: Neck + position: {x: -0, y: 0.063737005, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Left_Shoulder + parentName: UpperChest + position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} + rotation: {x: -0.004949423, y: -0.1135221, z: 0.043275435, w: 0.99258024} + scale: {x: 1, y: 1.0000001, z: 1} + - name: Left_UpperArm + parentName: Left_Shoulder + position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17} + rotation: {x: 0.12673515, y: 0.033320952, z: 0.6809722, w: 0.7204892} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Left_LowerArm + parentName: Left_UpperArm + position: {x: -2.8421706e-16, y: 0.28508067, z: 0} + rotation: {x: 0.020536324, y: 0.00832123, z: -0.02062474, w: 0.99954176} + scale: {x: 1.0000004, y: 1.0000004, z: 1} + - name: Left_Hand + parentName: Left_LowerArm + position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16} + rotation: {x: -0.047397543, y: -0.24003612, z: 0.013464515, w: 0.96951276} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000002} + - name: Left_PinkyProximal + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: -0.020071255, y: -0.55048937, z: -0.008245589, w: 0.83456016} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_PinkyIntermediate + parentName: Left_PinkyProximal + position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16} + rotation: {x: 0.028114945, y: 0.00000017881392, z: 0.0000004107132, w: 0.9996047} + scale: {x: 0.99999994, y: 1.0000005, z: 1.0000006} + - name: Left_PinkyDistal + parentName: Left_PinkyIntermediate + position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17} + rotation: {x: 0.036441054, y: 0.0000003874126, z: -0.00000053796356, w: 0.9993358} + scale: {x: 1.0000005, y: 1.0000011, z: 1.000001} + - name: Left_PinkyDistalEnd + parentName: Left_PinkyDistal + position: {x: -1.2434495e-16, y: 0.018519057, z: 0} + rotation: {x: -0.000000014901156, y: -0, z: -1.421085e-14, w: 1} + scale: {x: 1.0000002, y: 1.0000001, z: 0.99999994} + - name: Left_RingProximal + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: -0.017654492, y: -0.602699, z: -0.0040542856, w: 0.7977631} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_RingIntermediate + parentName: Left_RingProximal + position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16} + rotation: {x: 0.023558479, y: -0.000000059604616, z: 0.00000016763798, w: 0.9997225} + scale: {x: 1.0000001, y: 1.0000008, z: 1.0000007} + - name: Left_RingDistal + parentName: Left_RingIntermediate + position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16} + rotation: {x: 0.039085917, y: 0.000000047564775, z: -0.00000023156034, w: 0.99923587} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000005} + - name: Left_RingDistalEnd + parentName: Left_RingDistal + position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: 5.329069e-15, w: 1} + scale: {x: 0.99999994, y: 0.9999998, z: 1} + - name: Left_MiddleProximal + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: -0.004091014, y: -0.66108054, z: -0.004002313, w: 0.7502931} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_MiddleIntermediate + parentName: Left_MiddleProximal + position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17} + rotation: {x: 0.026229925, y: 0.000000089406946, z: 0.0000011208465, w: 0.99965596} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000006} + - name: Left_MiddleDistal + parentName: Left_MiddleIntermediate + position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17} + rotation: {x: 0.033475332, y: 0.00000015209851, z: -0.000000009192755, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 0.9999997} + - name: Left_MiddleDistalEnd + parentName: Left_MiddleDistal + position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: -4.4408905e-16, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000001} + - name: Left_IndexProximal + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: -0.00008071024, y: -0.7104802, z: -0.0063063996, w: 0.70368886} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_IndexIntermediate + parentName: Left_IndexProximal + position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16} + rotation: {x: 0.03019868, y: -0.000000029802326, z: -0.0000008903808, w: 0.99954396} + scale: {x: 1, y: 1.0000005, z: 1.0000005} + - name: Left_IndexDistal + parentName: Left_IndexIntermediate + position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16} + rotation: {x: 0.039457045, y: -0.000000010711526, z: 0.00000045662225, w: 0.99922127} + scale: {x: 1, y: 1.0000005, z: 1.0000002} + - name: Left_IndexDistalEnd + parentName: Left_IndexDistal + position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17} + rotation: {x: -0, y: -0, z: 2.2204452e-15, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000002} + - name: Left_ThumbProximal + parentName: Left_Hand + position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476} + rotation: {x: -0.17960364, y: -0.8841738, z: -0.42399, w: 0.078814216} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001} + - name: Left_ThumbIntermediate + parentName: Left_ThumbProximal + position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592} + rotation: {x: 0.12780568, y: -0.00000020116563, z: -0.000000014901158, w: 0.9917993} + scale: {x: 1.0000001, y: 0.99999994, z: 0.99999994} + - name: Left_ThumbDistal + parentName: Left_ThumbIntermediate + position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915} + rotation: {x: -0.045419924, y: 0.0000007949222, z: 0.00000046266297, w: 0.998968} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Left_ThumbDistalEnd + parentName: Left_ThumbDistal + position: {x: -4.2632555e-16, y: 0.029458016, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.9999998, z: 0.99999994} + - name: Left_PinkyProximalDef + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: 0.0066042603, y: -0.5050903, z: 0.37113702, w: 0.7791646} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_RingProximalDef + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: 0.035572164, y: -0.56915504, z: 0.30658576, w: 0.76210386} + scale: {x: 1.0000002, y: 1.0000007, z: 1.0000005} + - name: Left_MiddleProximalDef + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: 0.095934115, y: -0.6426919, z: 0.21124849, w: 0.7301492} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_IndexProximalDef + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: 0.13385344, y: -0.6899346, z: 0.20177333, w: 0.6821737} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_ThumbIntermediateDef + parentName: Left_Hand + position: {x: -0.0132574225, y: 0.0502166, z: 0.036247443} + rotation: {x: 0.22855456, y: -0.91963416, z: -0.31812134, w: -0.02889162} + scale: {x: 1.0000006, y: 1.0000004, z: 1.0000002} + - name: Left_LowerArmEnd + parentName: Left_LowerArm + position: {x: -2.4123806e-10, y: 0.24036221, z: -2.842171e-16} + rotation: {x: -0.000000029802315, y: -0, z: 2.6645346e-15, w: 1} + scale: {x: 1.0000004, y: 1.0000002, z: 1} + - name: Right_Shoulder + parentName: UpperChest + position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} + rotation: {x: 0.99258024, y: -0.043275435, z: -0.1135221, w: 0.004949424} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperArm + parentName: Right_Shoulder + position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746} + rotation: {x: -0.12673455, y: -0.033321112, z: -0.6809673, w: -0.7204941} + scale: {x: 0.9999999, y: 0.99999976, z: 1.0000002} + - name: Right_LowerArm + parentName: Right_UpperArm + position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226} + rotation: {x: 0.020537077, y: 0.008318591, z: -0.020618176, w: 0.9995418} + scale: {x: 1.0000005, y: 1.0000001, z: 1.0000001} + - name: Right_Hand + parentName: Right_LowerArm + position: {x: -0, y: -0.24036367, z: 0} + rotation: {x: -0.047397524, y: -0.24003613, z: 0.013464563, w: 0.9695127} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000006} + - name: Right_PinkyProximal + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: -0.020056283, y: -0.5504963, z: -0.008250083, w: 0.83455586} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_PinkyIntermediate + parentName: Right_PinkyProximal + position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623} + rotation: {x: 0.02811506, y: -0.0000030398364, z: 0.000002180226, w: 0.9996047} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000006} + - name: Right_PinkyDistal + parentName: Right_PinkyIntermediate + position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345} + rotation: {x: 0.036424562, y: -0.0000020630353, z: -0.000008972234, w: 0.9993364} + scale: {x: 1, y: 0.9999998, z: 1.0000001} + - name: Right_PinkyDistalEnd + parentName: Right_PinkyDistal + position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108} + rotation: {x: -0, y: -0, z: -3.5527133e-15, w: 1} + scale: {x: 1.0000002, y: 1, z: 1.0000001} + - name: Right_RingProximal + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: -0.017648041, y: -0.60270077, z: -0.004054018, w: 0.79776186} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_RingIntermediate + parentName: Right_RingProximal + position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335} + rotation: {x: 0.02354795, y: 0.0000019669526, z: 0.000006956046, w: 0.9997227} + scale: {x: 0.99999994, y: 0.99999994, z: 1} + - name: Right_RingDistal + parentName: Right_RingIntermediate + position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098} + rotation: {x: 0.039102394, y: 0.00000033448705, z: -0.0000046869313, w: 0.9992352} + scale: {x: 1.0000001, y: 0.99999994, z: 1.0000002} + - name: Right_RingDistalEnd + parentName: Right_RingDistal + position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459} + rotation: {x: -0, y: -0, z: -3.9968025e-15, w: 1} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Right_MiddleProximal + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: -0.0040832064, y: -0.6610816, z: -0.0039998735, w: 0.75029224} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_MiddleIntermediate + parentName: Right_MiddleProximal + position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695} + rotation: {x: 0.02622648, y: -0.0000009238719, z: -0.0000023830214, w: 0.9996561} + scale: {x: 0.99999994, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistal + parentName: Right_MiddleIntermediate + position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916} + rotation: {x: 0.03347536, y: 0.00000011190659, z: -0.000000035817987, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistalEnd + parentName: Right_MiddleDistal + position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584} + rotation: {x: -0, y: -0, z: -1.7763562e-15, w: 1} + scale: {x: 1.0000002, y: 0.99999994, z: 0.99999994} + - name: Right_IndexProximal + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: -0.00008950194, y: -0.71048063, z: -0.006329643, w: 0.70368826} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexIntermediate + parentName: Right_IndexProximal + position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077} + rotation: {x: 0.030205265, y: -0.00000023841855, z: 0.000011867056, w: 0.9995437} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001} + - name: Right_IndexDistal + parentName: Right_IndexIntermediate + position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629} + rotation: {x: 0.039483186, y: 0.00000044864683, z: -0.000006141602, w: 0.99922025} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexDistalEnd + parentName: Right_IndexDistal + position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131} + rotation: {x: -0, y: -0, z: -5.3290705e-15, w: 1} + scale: {x: 1.0000001, y: 1, z: 0.99999994} + - name: Right_ThumbProximal + parentName: Right_Hand + position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695} + rotation: {x: -0.17960693, y: -0.88417095, z: -0.4239946, w: 0.07881383} + scale: {x: 1, y: 0.9999997, z: 1.0000004} + - name: Right_ThumbIntermediate + parentName: Right_ThumbProximal + position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848} + rotation: {x: 0.1278056, y: -0.00000038743013, z: -0.000000014901159, w: 0.9917993} + scale: {x: 1.0000001, y: 1.0000002, z: 1.0000004} + - name: Right_ThumbDistal + parentName: Right_ThumbIntermediate + position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783} + rotation: {x: -0.045420226, y: -0.000002421734, z: 0.000001035943, w: 0.998968} + scale: {x: 1.0000001, y: 0.9999998, z: 0.99999994} + - name: Right_ThumbDistalEnd + parentName: Right_ThumbDistal + position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683} + rotation: {x: -0, y: 0.00000014403909, z: -0.0000000134323095, w: 1} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Right_PinkyProximalDef + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: 0.006604309, y: -0.50509036, z: 0.37113705, w: 0.7791645} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000001} + - name: Right_RingProximalDef + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: 0.035572305, y: -0.56915504, z: 0.3065858, w: 0.7621038} + scale: {x: 0.99999994, y: 1, z: 1.0000002} + - name: Right_MiddleProximalDef + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: 0.09593412, y: -0.642692, z: 0.21124847, w: 0.7301492} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_IndexProximalDef + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: 0.13385352, y: -0.6899346, z: 0.20177332, w: 0.6821737} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_ThumbIntermediateDef + parentName: Right_Hand + position: {x: 0.013255546, y: -0.050215878, z: -0.036247417} + rotation: {x: 0.22855446, y: -0.91963416, z: -0.31812134, w: -0.02889147} + scale: {x: 1.0000001, y: 0.9999998, z: 1.0000004} + - name: Right_LowerArmEnd + parentName: Right_LowerArm + position: {x: 1.4210854e-16, y: -0.24036367, z: 7.105427e-17} + rotation: {x: -0, y: -0, z: -1.7763568e-15, w: 1} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000004} + - name: Left_UpperLeg + parentName: Hips + position: {x: -0.08610317, y: -0.053458035, z: -0.011470641} + rotation: {x: 0.999839, y: -0.017753728, z: 0.000046300593, w: -0.0026075034} + scale: {x: 1, y: 1, z: 1} + - name: Left_LowerLeg + parentName: Left_UpperLeg + position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17} + rotation: {x: 0.034046084, y: 0.0000000024447215, z: -0.0000000074505797, w: 0.9994202} + scale: {x: 1, y: 1.0000006, z: 1.0000006} + - name: Left_Foot + parentName: Left_LowerLeg + position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 0.9999998, z: 0.9999998} + - name: Left_Toes + parentName: Left_Foot + position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506} + rotation: {x: -0.70710677, y: -0.0000000074505815, z: 0.000000003143214, w: 0.7071068} + scale: {x: 1.0000001, y: 1.0000001, z: 1} + - name: Left_ToesEnd + parentName: Left_Toes + position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978} + rotation: {x: 0.7070656, y: -0.0076322434, z: -0.0076322514, w: 0.70706564} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperLeg + parentName: Hips + position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475} + rotation: {x: 0.0026075034, y: 0.000046300593, z: 0.017753728, w: 0.999839} + scale: {x: 1, y: 1, z: 1} + - name: Right_LowerLeg + parentName: Right_UpperLeg + position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435} + rotation: {x: 0.034046084, y: 0.0000000024228937, z: -0.0000000073384845, w: 0.9994202} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Right_Foot + parentName: Right_LowerLeg + position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Right_Toes + parentName: Right_Foot + position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807} + rotation: {x: -0.7071068, y: -0.0000000037252903, z: -0.0000000013969839, w: 0.7071067} + scale: {x: 1.0000001, y: 1.0000005, z: 1.0000004} + - name: Right_ToesEnd + parentName: Right_Toes + position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898} + rotation: {x: 0.70706564, y: -0.0076322462, z: -0.007632248, w: 0.7070655} + scale: {x: 1, y: 1, z: 1} + - name: Geometry + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Armature_Mesh + parentName: Geometry + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 1 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 1 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: f7f7cd4abe3f02e4e8b99b5a070db992, type: 3} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 2 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/ThirdParty/AnimationClips/Run Backward.fbx b/Samples/ThirdParty/AnimationClips/Run Backward.fbx new file mode 100644 index 00000000..5a2956eb Binary files /dev/null and b/Samples/ThirdParty/AnimationClips/Run Backward.fbx differ diff --git a/Samples/ThirdParty/AnimationClips/Run Backward.fbx.meta b/Samples/ThirdParty/AnimationClips/Run Backward.fbx.meta new file mode 100644 index 00000000..a477106e --- /dev/null +++ b/Samples/ThirdParty/AnimationClips/Run Backward.fbx.meta @@ -0,0 +1,971 @@ +fileFormatVersion: 2 +guid: e7ade2128e866bb4285fb2213b43d1fb +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 3 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: Run Backward mixamo.com + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 19 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: Hips + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperLeg + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperLeg + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerLeg + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerLeg + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Foot + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Foot + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Spine + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Chest + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Neck + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Head + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Shoulder + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Shoulder + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperArm + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperArm + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerArm + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerArm + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Hand + humanName: LeftHand + limit: + min: {x: 0, y: -180, z: -180} + max: {x: 0, y: 180, z: 180} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 1 + - boneName: Right_Hand + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Toes + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Toes + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbProximal + humanName: Left Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbIntermediate + humanName: Left Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbDistal + humanName: Left Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexProximal + humanName: Left Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexIntermediate + humanName: Left Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexDistal + humanName: Left Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleProximal + humanName: Left Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleIntermediate + humanName: Left Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleDistal + humanName: Left Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingProximal + humanName: Left Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingIntermediate + humanName: Left Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingDistal + humanName: Left Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyProximal + humanName: Left Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyIntermediate + humanName: Left Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyDistal + humanName: Left Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbProximal + humanName: Right Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbIntermediate + humanName: Right Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbDistal + humanName: Right Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexProximal + humanName: Right Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexIntermediate + humanName: Right Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexDistal + humanName: Right Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleProximal + humanName: Right Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleIntermediate + humanName: Right Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleDistal + humanName: Right Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingProximal + humanName: Right Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingIntermediate + humanName: Right Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingDistal + humanName: Right Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyProximal + humanName: Right Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyIntermediate + humanName: Right Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyDistal + humanName: Right Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: UpperChest + humanName: UpperChest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: ArmatureSkinningUpdate(Clone) + parentName: + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Skeleton + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Hips + parentName: Skeleton + position: {x: -0, y: 0.9810986, z: -0.01590455} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Spine + parentName: Hips + position: {x: -0, y: 0.058229383, z: 0.0012229546} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Chest + parentName: Spine + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: UpperChest + parentName: Chest + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Neck + parentName: UpperChest + position: {x: -0, y: 0.25104657, z: -0.015329581} + rotation: {x: 0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Head + parentName: Neck + position: {x: -0, y: 0.12747401, z: 0} + rotation: {x: -0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Right_Eye + parentName: Head + position: {x: 0.033303294, y: 0.03459628, z: 0.0867403} + rotation: {x: 0.7071068, y: 0.0000000037252903, z: 0.7071068, w: 0.0000000037252903} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_Eye + parentName: Head + position: {x: -0.03330326, y: 0.034598116, z: 0.0867403} + rotation: {x: -0.0000000037252903, y: 0.7071068, z: -0.0000000037252903, w: 0.7071068} + scale: {x: 1.0000002, y: 1, z: 1.0000002} + - name: Jaw + parentName: Head + position: {x: -0, y: -0.00763539, z: 0.012895278} + rotation: {x: 0.15949221, y: 0.6888848, z: 0.15949221, w: 0.68888485} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Neck_Twist_A + parentName: Neck + position: {x: -0, y: 0.063737005, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Left_Shoulder + parentName: UpperChest + position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} + rotation: {x: -0.004949423, y: -0.1135221, z: 0.043275435, w: 0.99258024} + scale: {x: 1, y: 1.0000001, z: 1} + - name: Left_UpperArm + parentName: Left_Shoulder + position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17} + rotation: {x: 0.12673515, y: 0.033320952, z: 0.6809722, w: 0.7204892} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Left_LowerArm + parentName: Left_UpperArm + position: {x: -2.8421706e-16, y: 0.28508067, z: 0} + rotation: {x: 0.020536324, y: 0.00832123, z: -0.02062474, w: 0.99954176} + scale: {x: 1.0000004, y: 1.0000004, z: 1} + - name: Left_Hand + parentName: Left_LowerArm + position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16} + rotation: {x: -0.047397543, y: -0.24003612, z: 0.013464515, w: 0.96951276} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000002} + - name: Left_PinkyProximal + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: -0.020071255, y: -0.55048937, z: -0.008245589, w: 0.83456016} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_PinkyIntermediate + parentName: Left_PinkyProximal + position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16} + rotation: {x: 0.028114945, y: 0.00000017881392, z: 0.0000004107132, w: 0.9996047} + scale: {x: 0.99999994, y: 1.0000005, z: 1.0000006} + - name: Left_PinkyDistal + parentName: Left_PinkyIntermediate + position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17} + rotation: {x: 0.036441054, y: 0.0000003874126, z: -0.00000053796356, w: 0.9993358} + scale: {x: 1.0000005, y: 1.0000011, z: 1.000001} + - name: Left_PinkyDistalEnd + parentName: Left_PinkyDistal + position: {x: -1.2434495e-16, y: 0.018519057, z: 0} + rotation: {x: -0.000000014901156, y: -0, z: -1.421085e-14, w: 1} + scale: {x: 1.0000002, y: 1.0000001, z: 0.99999994} + - name: Left_RingProximal + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: -0.017654492, y: -0.602699, z: -0.0040542856, w: 0.7977631} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_RingIntermediate + parentName: Left_RingProximal + position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16} + rotation: {x: 0.023558479, y: -0.000000059604616, z: 0.00000016763798, w: 0.9997225} + scale: {x: 1.0000001, y: 1.0000008, z: 1.0000007} + - name: Left_RingDistal + parentName: Left_RingIntermediate + position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16} + rotation: {x: 0.039085917, y: 0.000000047564775, z: -0.00000023156034, w: 0.99923587} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000005} + - name: Left_RingDistalEnd + parentName: Left_RingDistal + position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: 5.329069e-15, w: 1} + scale: {x: 0.99999994, y: 0.9999998, z: 1} + - name: Left_MiddleProximal + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: -0.004091014, y: -0.66108054, z: -0.004002313, w: 0.7502931} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_MiddleIntermediate + parentName: Left_MiddleProximal + position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17} + rotation: {x: 0.026229925, y: 0.000000089406946, z: 0.0000011208465, w: 0.99965596} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000006} + - name: Left_MiddleDistal + parentName: Left_MiddleIntermediate + position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17} + rotation: {x: 0.033475332, y: 0.00000015209851, z: -0.000000009192755, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 0.9999997} + - name: Left_MiddleDistalEnd + parentName: Left_MiddleDistal + position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: -4.4408905e-16, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000001} + - name: Left_IndexProximal + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: -0.00008071024, y: -0.7104802, z: -0.0063063996, w: 0.70368886} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_IndexIntermediate + parentName: Left_IndexProximal + position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16} + rotation: {x: 0.03019868, y: -0.000000029802326, z: -0.0000008903808, w: 0.99954396} + scale: {x: 1, y: 1.0000005, z: 1.0000005} + - name: Left_IndexDistal + parentName: Left_IndexIntermediate + position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16} + rotation: {x: 0.039457045, y: -0.000000010711526, z: 0.00000045662225, w: 0.99922127} + scale: {x: 1, y: 1.0000005, z: 1.0000002} + - name: Left_IndexDistalEnd + parentName: Left_IndexDistal + position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17} + rotation: {x: -0, y: -0, z: 2.2204452e-15, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000002} + - name: Left_ThumbProximal + parentName: Left_Hand + position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476} + rotation: {x: -0.17960364, y: -0.8841738, z: -0.42399, w: 0.078814216} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001} + - name: Left_ThumbIntermediate + parentName: Left_ThumbProximal + position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592} + rotation: {x: 0.12780568, y: -0.00000020116563, z: -0.000000014901158, w: 0.9917993} + scale: {x: 1.0000001, y: 0.99999994, z: 0.99999994} + - name: Left_ThumbDistal + parentName: Left_ThumbIntermediate + position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915} + rotation: {x: -0.045419924, y: 0.0000007949222, z: 0.00000046266297, w: 0.998968} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Left_ThumbDistalEnd + parentName: Left_ThumbDistal + position: {x: -4.2632555e-16, y: 0.029458016, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.9999998, z: 0.99999994} + - name: Left_PinkyProximalDef + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: 0.0066042603, y: -0.5050903, z: 0.37113702, w: 0.7791646} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_RingProximalDef + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: 0.035572164, y: -0.56915504, z: 0.30658576, w: 0.76210386} + scale: {x: 1.0000002, y: 1.0000007, z: 1.0000005} + - name: Left_MiddleProximalDef + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: 0.095934115, y: -0.6426919, z: 0.21124849, w: 0.7301492} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_IndexProximalDef + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: 0.13385344, y: -0.6899346, z: 0.20177333, w: 0.6821737} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_ThumbIntermediateDef + parentName: Left_Hand + position: {x: -0.0132574225, y: 0.0502166, z: 0.036247443} + rotation: {x: 0.22855456, y: -0.91963416, z: -0.31812134, w: -0.02889162} + scale: {x: 1.0000006, y: 1.0000004, z: 1.0000002} + - name: Left_LowerArmEnd + parentName: Left_LowerArm + position: {x: -2.4123806e-10, y: 0.24036221, z: -2.842171e-16} + rotation: {x: -0.000000029802315, y: -0, z: 2.6645346e-15, w: 1} + scale: {x: 1.0000004, y: 1.0000002, z: 1} + - name: Right_Shoulder + parentName: UpperChest + position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} + rotation: {x: 0.99258024, y: -0.043275435, z: -0.1135221, w: 0.004949424} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperArm + parentName: Right_Shoulder + position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746} + rotation: {x: -0.12673455, y: -0.033321112, z: -0.6809673, w: -0.7204941} + scale: {x: 0.9999999, y: 0.99999976, z: 1.0000002} + - name: Right_LowerArm + parentName: Right_UpperArm + position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226} + rotation: {x: 0.020537077, y: 0.008318591, z: -0.020618176, w: 0.9995418} + scale: {x: 1.0000005, y: 1.0000001, z: 1.0000001} + - name: Right_Hand + parentName: Right_LowerArm + position: {x: -0, y: -0.24036367, z: 0} + rotation: {x: -0.047397524, y: -0.24003613, z: 0.013464563, w: 0.9695127} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000006} + - name: Right_PinkyProximal + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: -0.020056283, y: -0.5504963, z: -0.008250083, w: 0.83455586} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_PinkyIntermediate + parentName: Right_PinkyProximal + position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623} + rotation: {x: 0.02811506, y: -0.0000030398364, z: 0.000002180226, w: 0.9996047} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000006} + - name: Right_PinkyDistal + parentName: Right_PinkyIntermediate + position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345} + rotation: {x: 0.036424562, y: -0.0000020630353, z: -0.000008972234, w: 0.9993364} + scale: {x: 1, y: 0.9999998, z: 1.0000001} + - name: Right_PinkyDistalEnd + parentName: Right_PinkyDistal + position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108} + rotation: {x: -0, y: -0, z: -3.5527133e-15, w: 1} + scale: {x: 1.0000002, y: 1, z: 1.0000001} + - name: Right_RingProximal + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: -0.017648041, y: -0.60270077, z: -0.004054018, w: 0.79776186} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_RingIntermediate + parentName: Right_RingProximal + position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335} + rotation: {x: 0.02354795, y: 0.0000019669526, z: 0.000006956046, w: 0.9997227} + scale: {x: 0.99999994, y: 0.99999994, z: 1} + - name: Right_RingDistal + parentName: Right_RingIntermediate + position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098} + rotation: {x: 0.039102394, y: 0.00000033448705, z: -0.0000046869313, w: 0.9992352} + scale: {x: 1.0000001, y: 0.99999994, z: 1.0000002} + - name: Right_RingDistalEnd + parentName: Right_RingDistal + position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459} + rotation: {x: -0, y: -0, z: -3.9968025e-15, w: 1} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Right_MiddleProximal + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: -0.0040832064, y: -0.6610816, z: -0.0039998735, w: 0.75029224} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_MiddleIntermediate + parentName: Right_MiddleProximal + position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695} + rotation: {x: 0.02622648, y: -0.0000009238719, z: -0.0000023830214, w: 0.9996561} + scale: {x: 0.99999994, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistal + parentName: Right_MiddleIntermediate + position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916} + rotation: {x: 0.03347536, y: 0.00000011190659, z: -0.000000035817987, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistalEnd + parentName: Right_MiddleDistal + position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584} + rotation: {x: -0, y: -0, z: -1.7763562e-15, w: 1} + scale: {x: 1.0000002, y: 0.99999994, z: 0.99999994} + - name: Right_IndexProximal + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: -0.00008950194, y: -0.71048063, z: -0.006329643, w: 0.70368826} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexIntermediate + parentName: Right_IndexProximal + position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077} + rotation: {x: 0.030205265, y: -0.00000023841855, z: 0.000011867056, w: 0.9995437} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001} + - name: Right_IndexDistal + parentName: Right_IndexIntermediate + position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629} + rotation: {x: 0.039483186, y: 0.00000044864683, z: -0.000006141602, w: 0.99922025} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexDistalEnd + parentName: Right_IndexDistal + position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131} + rotation: {x: -0, y: -0, z: -5.3290705e-15, w: 1} + scale: {x: 1.0000001, y: 1, z: 0.99999994} + - name: Right_ThumbProximal + parentName: Right_Hand + position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695} + rotation: {x: -0.17960693, y: -0.88417095, z: -0.4239946, w: 0.07881383} + scale: {x: 1, y: 0.9999997, z: 1.0000004} + - name: Right_ThumbIntermediate + parentName: Right_ThumbProximal + position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848} + rotation: {x: 0.1278056, y: -0.00000038743013, z: -0.000000014901159, w: 0.9917993} + scale: {x: 1.0000001, y: 1.0000002, z: 1.0000004} + - name: Right_ThumbDistal + parentName: Right_ThumbIntermediate + position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783} + rotation: {x: -0.045420226, y: -0.000002421734, z: 0.000001035943, w: 0.998968} + scale: {x: 1.0000001, y: 0.9999998, z: 0.99999994} + - name: Right_ThumbDistalEnd + parentName: Right_ThumbDistal + position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683} + rotation: {x: -0, y: 0.00000014403909, z: -0.0000000134323095, w: 1} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Right_PinkyProximalDef + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: 0.006604309, y: -0.50509036, z: 0.37113705, w: 0.7791645} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000001} + - name: Right_RingProximalDef + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: 0.035572305, y: -0.56915504, z: 0.3065858, w: 0.7621038} + scale: {x: 0.99999994, y: 1, z: 1.0000002} + - name: Right_MiddleProximalDef + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: 0.09593412, y: -0.642692, z: 0.21124847, w: 0.7301492} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_IndexProximalDef + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: 0.13385352, y: -0.6899346, z: 0.20177332, w: 0.6821737} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_ThumbIntermediateDef + parentName: Right_Hand + position: {x: 0.013255546, y: -0.050215878, z: -0.036247417} + rotation: {x: 0.22855446, y: -0.91963416, z: -0.31812134, w: -0.02889147} + scale: {x: 1.0000001, y: 0.9999998, z: 1.0000004} + - name: Right_LowerArmEnd + parentName: Right_LowerArm + position: {x: 1.4210854e-16, y: -0.24036367, z: 7.105427e-17} + rotation: {x: -0, y: -0, z: -1.7763568e-15, w: 1} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000004} + - name: Left_UpperLeg + parentName: Hips + position: {x: -0.08610317, y: -0.053458035, z: -0.011470641} + rotation: {x: 0.999839, y: -0.017753728, z: 0.000046300593, w: -0.0026075034} + scale: {x: 1, y: 1, z: 1} + - name: Left_LowerLeg + parentName: Left_UpperLeg + position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17} + rotation: {x: 0.034046084, y: 0.0000000024447215, z: -0.0000000074505797, w: 0.9994202} + scale: {x: 1, y: 1.0000006, z: 1.0000006} + - name: Left_Foot + parentName: Left_LowerLeg + position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 0.9999998, z: 0.9999998} + - name: Left_Toes + parentName: Left_Foot + position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506} + rotation: {x: -0.70710677, y: -0.0000000074505815, z: 0.000000003143214, w: 0.7071068} + scale: {x: 1.0000001, y: 1.0000001, z: 1} + - name: Left_ToesEnd + parentName: Left_Toes + position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978} + rotation: {x: 0.7070656, y: -0.0076322434, z: -0.0076322514, w: 0.70706564} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperLeg + parentName: Hips + position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475} + rotation: {x: 0.0026075034, y: 0.000046300593, z: 0.017753728, w: 0.999839} + scale: {x: 1, y: 1, z: 1} + - name: Right_LowerLeg + parentName: Right_UpperLeg + position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435} + rotation: {x: 0.034046084, y: 0.0000000024228937, z: -0.0000000073384845, w: 0.9994202} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Right_Foot + parentName: Right_LowerLeg + position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Right_Toes + parentName: Right_Foot + position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807} + rotation: {x: -0.7071068, y: -0.0000000037252903, z: -0.0000000013969839, w: 0.7071067} + scale: {x: 1.0000001, y: 1.0000005, z: 1.0000004} + - name: Right_ToesEnd + parentName: Right_Toes + position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898} + rotation: {x: 0.70706564, y: -0.0076322462, z: -0.007632248, w: 0.7070655} + scale: {x: 1, y: 1, z: 1} + - name: Geometry + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Armature_Mesh + parentName: Geometry + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 1 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 1 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: f7f7cd4abe3f02e4e8b99b5a070db992, type: 3} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 2 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/ThirdParty/AnimationClips/Run Left Strafe.fbx b/Samples/ThirdParty/AnimationClips/Run Left Strafe.fbx new file mode 100644 index 00000000..1a9322b6 Binary files /dev/null and b/Samples/ThirdParty/AnimationClips/Run Left Strafe.fbx differ diff --git a/Samples/ThirdParty/AnimationClips/Run Left Strafe.fbx.meta b/Samples/ThirdParty/AnimationClips/Run Left Strafe.fbx.meta new file mode 100644 index 00000000..27ae7d07 --- /dev/null +++ b/Samples/ThirdParty/AnimationClips/Run Left Strafe.fbx.meta @@ -0,0 +1,971 @@ +fileFormatVersion: 2 +guid: a3ee2fe68e3a00649bbe1bfdb40174df +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 3 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: Run Left Strafe mixamo.com + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 20 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: Hips + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperLeg + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperLeg + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerLeg + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerLeg + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Foot + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Foot + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Spine + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Chest + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Neck + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Head + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Shoulder + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Shoulder + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperArm + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperArm + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerArm + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerArm + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Hand + humanName: LeftHand + limit: + min: {x: 0, y: -180, z: -180} + max: {x: 0, y: 180, z: 180} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 1 + - boneName: Right_Hand + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Toes + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Toes + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbProximal + humanName: Left Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbIntermediate + humanName: Left Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbDistal + humanName: Left Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexProximal + humanName: Left Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexIntermediate + humanName: Left Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexDistal + humanName: Left Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleProximal + humanName: Left Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleIntermediate + humanName: Left Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleDistal + humanName: Left Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingProximal + humanName: Left Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingIntermediate + humanName: Left Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingDistal + humanName: Left Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyProximal + humanName: Left Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyIntermediate + humanName: Left Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyDistal + humanName: Left Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbProximal + humanName: Right Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbIntermediate + humanName: Right Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbDistal + humanName: Right Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexProximal + humanName: Right Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexIntermediate + humanName: Right Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexDistal + humanName: Right Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleProximal + humanName: Right Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleIntermediate + humanName: Right Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleDistal + humanName: Right Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingProximal + humanName: Right Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingIntermediate + humanName: Right Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingDistal + humanName: Right Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyProximal + humanName: Right Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyIntermediate + humanName: Right Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyDistal + humanName: Right Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: UpperChest + humanName: UpperChest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: ArmatureSkinningUpdate(Clone) + parentName: + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Skeleton + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Hips + parentName: Skeleton + position: {x: -0, y: 0.9810986, z: -0.01590455} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Spine + parentName: Hips + position: {x: -0, y: 0.058229383, z: 0.0012229546} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Chest + parentName: Spine + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: UpperChest + parentName: Chest + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Neck + parentName: UpperChest + position: {x: -0, y: 0.25104657, z: -0.015329581} + rotation: {x: 0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Head + parentName: Neck + position: {x: -0, y: 0.12747401, z: 0} + rotation: {x: -0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Right_Eye + parentName: Head + position: {x: 0.033303294, y: 0.03459628, z: 0.0867403} + rotation: {x: 0.7071068, y: 0.0000000037252903, z: 0.7071068, w: 0.0000000037252903} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_Eye + parentName: Head + position: {x: -0.03330326, y: 0.034598116, z: 0.0867403} + rotation: {x: -0.0000000037252903, y: 0.7071068, z: -0.0000000037252903, w: 0.7071068} + scale: {x: 1.0000002, y: 1, z: 1.0000002} + - name: Jaw + parentName: Head + position: {x: -0, y: -0.00763539, z: 0.012895278} + rotation: {x: 0.15949221, y: 0.6888848, z: 0.15949221, w: 0.68888485} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Neck_Twist_A + parentName: Neck + position: {x: -0, y: 0.063737005, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Left_Shoulder + parentName: UpperChest + position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} + rotation: {x: -0.004949423, y: -0.1135221, z: 0.043275435, w: 0.99258024} + scale: {x: 1, y: 1.0000001, z: 1} + - name: Left_UpperArm + parentName: Left_Shoulder + position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17} + rotation: {x: 0.12673515, y: 0.033320952, z: 0.6809722, w: 0.7204892} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Left_LowerArm + parentName: Left_UpperArm + position: {x: -2.8421706e-16, y: 0.28508067, z: 0} + rotation: {x: 0.020536324, y: 0.00832123, z: -0.02062474, w: 0.99954176} + scale: {x: 1.0000004, y: 1.0000004, z: 1} + - name: Left_Hand + parentName: Left_LowerArm + position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16} + rotation: {x: -0.047397543, y: -0.24003612, z: 0.013464515, w: 0.96951276} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000002} + - name: Left_PinkyProximal + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: -0.020071255, y: -0.55048937, z: -0.008245589, w: 0.83456016} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_PinkyIntermediate + parentName: Left_PinkyProximal + position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16} + rotation: {x: 0.028114945, y: 0.00000017881392, z: 0.0000004107132, w: 0.9996047} + scale: {x: 0.99999994, y: 1.0000005, z: 1.0000006} + - name: Left_PinkyDistal + parentName: Left_PinkyIntermediate + position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17} + rotation: {x: 0.036441054, y: 0.0000003874126, z: -0.00000053796356, w: 0.9993358} + scale: {x: 1.0000005, y: 1.0000011, z: 1.000001} + - name: Left_PinkyDistalEnd + parentName: Left_PinkyDistal + position: {x: -1.2434495e-16, y: 0.018519057, z: 0} + rotation: {x: -0.000000014901156, y: -0, z: -1.421085e-14, w: 1} + scale: {x: 1.0000002, y: 1.0000001, z: 0.99999994} + - name: Left_RingProximal + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: -0.017654492, y: -0.602699, z: -0.0040542856, w: 0.7977631} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_RingIntermediate + parentName: Left_RingProximal + position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16} + rotation: {x: 0.023558479, y: -0.000000059604616, z: 0.00000016763798, w: 0.9997225} + scale: {x: 1.0000001, y: 1.0000008, z: 1.0000007} + - name: Left_RingDistal + parentName: Left_RingIntermediate + position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16} + rotation: {x: 0.039085917, y: 0.000000047564775, z: -0.00000023156034, w: 0.99923587} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000005} + - name: Left_RingDistalEnd + parentName: Left_RingDistal + position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: 5.329069e-15, w: 1} + scale: {x: 0.99999994, y: 0.9999998, z: 1} + - name: Left_MiddleProximal + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: -0.004091014, y: -0.66108054, z: -0.004002313, w: 0.7502931} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_MiddleIntermediate + parentName: Left_MiddleProximal + position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17} + rotation: {x: 0.026229925, y: 0.000000089406946, z: 0.0000011208465, w: 0.99965596} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000006} + - name: Left_MiddleDistal + parentName: Left_MiddleIntermediate + position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17} + rotation: {x: 0.033475332, y: 0.00000015209851, z: -0.000000009192755, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 0.9999997} + - name: Left_MiddleDistalEnd + parentName: Left_MiddleDistal + position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: -4.4408905e-16, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000001} + - name: Left_IndexProximal + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: -0.00008071024, y: -0.7104802, z: -0.0063063996, w: 0.70368886} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_IndexIntermediate + parentName: Left_IndexProximal + position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16} + rotation: {x: 0.03019868, y: -0.000000029802326, z: -0.0000008903808, w: 0.99954396} + scale: {x: 1, y: 1.0000005, z: 1.0000005} + - name: Left_IndexDistal + parentName: Left_IndexIntermediate + position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16} + rotation: {x: 0.039457045, y: -0.000000010711526, z: 0.00000045662225, w: 0.99922127} + scale: {x: 1, y: 1.0000005, z: 1.0000002} + - name: Left_IndexDistalEnd + parentName: Left_IndexDistal + position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17} + rotation: {x: -0, y: -0, z: 2.2204452e-15, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000002} + - name: Left_ThumbProximal + parentName: Left_Hand + position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476} + rotation: {x: -0.17960364, y: -0.8841738, z: -0.42399, w: 0.078814216} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001} + - name: Left_ThumbIntermediate + parentName: Left_ThumbProximal + position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592} + rotation: {x: 0.12780568, y: -0.00000020116563, z: -0.000000014901158, w: 0.9917993} + scale: {x: 1.0000001, y: 0.99999994, z: 0.99999994} + - name: Left_ThumbDistal + parentName: Left_ThumbIntermediate + position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915} + rotation: {x: -0.045419924, y: 0.0000007949222, z: 0.00000046266297, w: 0.998968} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Left_ThumbDistalEnd + parentName: Left_ThumbDistal + position: {x: -4.2632555e-16, y: 0.029458016, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.9999998, z: 0.99999994} + - name: Left_PinkyProximalDef + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: 0.0066042603, y: -0.5050903, z: 0.37113702, w: 0.7791646} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_RingProximalDef + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: 0.035572164, y: -0.56915504, z: 0.30658576, w: 0.76210386} + scale: {x: 1.0000002, y: 1.0000007, z: 1.0000005} + - name: Left_MiddleProximalDef + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: 0.095934115, y: -0.6426919, z: 0.21124849, w: 0.7301492} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_IndexProximalDef + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: 0.13385344, y: -0.6899346, z: 0.20177333, w: 0.6821737} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_ThumbIntermediateDef + parentName: Left_Hand + position: {x: -0.0132574225, y: 0.0502166, z: 0.036247443} + rotation: {x: 0.22855456, y: -0.91963416, z: -0.31812134, w: -0.02889162} + scale: {x: 1.0000006, y: 1.0000004, z: 1.0000002} + - name: Left_LowerArmEnd + parentName: Left_LowerArm + position: {x: -2.4123806e-10, y: 0.24036221, z: -2.842171e-16} + rotation: {x: -0.000000029802315, y: -0, z: 2.6645346e-15, w: 1} + scale: {x: 1.0000004, y: 1.0000002, z: 1} + - name: Right_Shoulder + parentName: UpperChest + position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} + rotation: {x: 0.99258024, y: -0.043275435, z: -0.1135221, w: 0.004949424} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperArm + parentName: Right_Shoulder + position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746} + rotation: {x: -0.12673455, y: -0.033321112, z: -0.6809673, w: -0.7204941} + scale: {x: 0.9999999, y: 0.99999976, z: 1.0000002} + - name: Right_LowerArm + parentName: Right_UpperArm + position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226} + rotation: {x: 0.020537077, y: 0.008318591, z: -0.020618176, w: 0.9995418} + scale: {x: 1.0000005, y: 1.0000001, z: 1.0000001} + - name: Right_Hand + parentName: Right_LowerArm + position: {x: -0, y: -0.24036367, z: 0} + rotation: {x: -0.047397524, y: -0.24003613, z: 0.013464563, w: 0.9695127} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000006} + - name: Right_PinkyProximal + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: -0.020056283, y: -0.5504963, z: -0.008250083, w: 0.83455586} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_PinkyIntermediate + parentName: Right_PinkyProximal + position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623} + rotation: {x: 0.02811506, y: -0.0000030398364, z: 0.000002180226, w: 0.9996047} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000006} + - name: Right_PinkyDistal + parentName: Right_PinkyIntermediate + position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345} + rotation: {x: 0.036424562, y: -0.0000020630353, z: -0.000008972234, w: 0.9993364} + scale: {x: 1, y: 0.9999998, z: 1.0000001} + - name: Right_PinkyDistalEnd + parentName: Right_PinkyDistal + position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108} + rotation: {x: -0, y: -0, z: -3.5527133e-15, w: 1} + scale: {x: 1.0000002, y: 1, z: 1.0000001} + - name: Right_RingProximal + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: -0.017648041, y: -0.60270077, z: -0.004054018, w: 0.79776186} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_RingIntermediate + parentName: Right_RingProximal + position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335} + rotation: {x: 0.02354795, y: 0.0000019669526, z: 0.000006956046, w: 0.9997227} + scale: {x: 0.99999994, y: 0.99999994, z: 1} + - name: Right_RingDistal + parentName: Right_RingIntermediate + position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098} + rotation: {x: 0.039102394, y: 0.00000033448705, z: -0.0000046869313, w: 0.9992352} + scale: {x: 1.0000001, y: 0.99999994, z: 1.0000002} + - name: Right_RingDistalEnd + parentName: Right_RingDistal + position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459} + rotation: {x: -0, y: -0, z: -3.9968025e-15, w: 1} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Right_MiddleProximal + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: -0.0040832064, y: -0.6610816, z: -0.0039998735, w: 0.75029224} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_MiddleIntermediate + parentName: Right_MiddleProximal + position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695} + rotation: {x: 0.02622648, y: -0.0000009238719, z: -0.0000023830214, w: 0.9996561} + scale: {x: 0.99999994, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistal + parentName: Right_MiddleIntermediate + position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916} + rotation: {x: 0.03347536, y: 0.00000011190659, z: -0.000000035817987, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistalEnd + parentName: Right_MiddleDistal + position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584} + rotation: {x: -0, y: -0, z: -1.7763562e-15, w: 1} + scale: {x: 1.0000002, y: 0.99999994, z: 0.99999994} + - name: Right_IndexProximal + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: -0.00008950194, y: -0.71048063, z: -0.006329643, w: 0.70368826} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexIntermediate + parentName: Right_IndexProximal + position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077} + rotation: {x: 0.030205265, y: -0.00000023841855, z: 0.000011867056, w: 0.9995437} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001} + - name: Right_IndexDistal + parentName: Right_IndexIntermediate + position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629} + rotation: {x: 0.039483186, y: 0.00000044864683, z: -0.000006141602, w: 0.99922025} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexDistalEnd + parentName: Right_IndexDistal + position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131} + rotation: {x: -0, y: -0, z: -5.3290705e-15, w: 1} + scale: {x: 1.0000001, y: 1, z: 0.99999994} + - name: Right_ThumbProximal + parentName: Right_Hand + position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695} + rotation: {x: -0.17960693, y: -0.88417095, z: -0.4239946, w: 0.07881383} + scale: {x: 1, y: 0.9999997, z: 1.0000004} + - name: Right_ThumbIntermediate + parentName: Right_ThumbProximal + position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848} + rotation: {x: 0.1278056, y: -0.00000038743013, z: -0.000000014901159, w: 0.9917993} + scale: {x: 1.0000001, y: 1.0000002, z: 1.0000004} + - name: Right_ThumbDistal + parentName: Right_ThumbIntermediate + position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783} + rotation: {x: -0.045420226, y: -0.000002421734, z: 0.000001035943, w: 0.998968} + scale: {x: 1.0000001, y: 0.9999998, z: 0.99999994} + - name: Right_ThumbDistalEnd + parentName: Right_ThumbDistal + position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683} + rotation: {x: -0, y: 0.00000014403909, z: -0.0000000134323095, w: 1} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Right_PinkyProximalDef + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: 0.006604309, y: -0.50509036, z: 0.37113705, w: 0.7791645} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000001} + - name: Right_RingProximalDef + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: 0.035572305, y: -0.56915504, z: 0.3065858, w: 0.7621038} + scale: {x: 0.99999994, y: 1, z: 1.0000002} + - name: Right_MiddleProximalDef + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: 0.09593412, y: -0.642692, z: 0.21124847, w: 0.7301492} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_IndexProximalDef + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: 0.13385352, y: -0.6899346, z: 0.20177332, w: 0.6821737} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_ThumbIntermediateDef + parentName: Right_Hand + position: {x: 0.013255546, y: -0.050215878, z: -0.036247417} + rotation: {x: 0.22855446, y: -0.91963416, z: -0.31812134, w: -0.02889147} + scale: {x: 1.0000001, y: 0.9999998, z: 1.0000004} + - name: Right_LowerArmEnd + parentName: Right_LowerArm + position: {x: 1.4210854e-16, y: -0.24036367, z: 7.105427e-17} + rotation: {x: -0, y: -0, z: -1.7763568e-15, w: 1} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000004} + - name: Left_UpperLeg + parentName: Hips + position: {x: -0.08610317, y: -0.053458035, z: -0.011470641} + rotation: {x: 0.999839, y: -0.017753728, z: 0.000046300593, w: -0.0026075034} + scale: {x: 1, y: 1, z: 1} + - name: Left_LowerLeg + parentName: Left_UpperLeg + position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17} + rotation: {x: 0.034046084, y: 0.0000000024447215, z: -0.0000000074505797, w: 0.9994202} + scale: {x: 1, y: 1.0000006, z: 1.0000006} + - name: Left_Foot + parentName: Left_LowerLeg + position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 0.9999998, z: 0.9999998} + - name: Left_Toes + parentName: Left_Foot + position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506} + rotation: {x: -0.70710677, y: -0.0000000074505815, z: 0.000000003143214, w: 0.7071068} + scale: {x: 1.0000001, y: 1.0000001, z: 1} + - name: Left_ToesEnd + parentName: Left_Toes + position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978} + rotation: {x: 0.7070656, y: -0.0076322434, z: -0.0076322514, w: 0.70706564} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperLeg + parentName: Hips + position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475} + rotation: {x: 0.0026075034, y: 0.000046300593, z: 0.017753728, w: 0.999839} + scale: {x: 1, y: 1, z: 1} + - name: Right_LowerLeg + parentName: Right_UpperLeg + position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435} + rotation: {x: 0.034046084, y: 0.0000000024228937, z: -0.0000000073384845, w: 0.9994202} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Right_Foot + parentName: Right_LowerLeg + position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Right_Toes + parentName: Right_Foot + position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807} + rotation: {x: -0.7071068, y: -0.0000000037252903, z: -0.0000000013969839, w: 0.7071067} + scale: {x: 1.0000001, y: 1.0000005, z: 1.0000004} + - name: Right_ToesEnd + parentName: Right_Toes + position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898} + rotation: {x: 0.70706564, y: -0.0076322462, z: -0.007632248, w: 0.7070655} + scale: {x: 1, y: 1, z: 1} + - name: Geometry + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Armature_Mesh + parentName: Geometry + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 1 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 1 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: f7f7cd4abe3f02e4e8b99b5a070db992, type: 3} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 2 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/ThirdParty/AnimationClips/Run Right Strafe.fbx b/Samples/ThirdParty/AnimationClips/Run Right Strafe.fbx new file mode 100644 index 00000000..cb83d219 Binary files /dev/null and b/Samples/ThirdParty/AnimationClips/Run Right Strafe.fbx differ diff --git a/Samples/ThirdParty/AnimationClips/Run Right Strafe.fbx.meta b/Samples/ThirdParty/AnimationClips/Run Right Strafe.fbx.meta new file mode 100644 index 00000000..026be604 --- /dev/null +++ b/Samples/ThirdParty/AnimationClips/Run Right Strafe.fbx.meta @@ -0,0 +1,971 @@ +fileFormatVersion: 2 +guid: 8a9eaf8b249c3474eb0aef423d724c99 +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 3 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: Run Right Strafe mixamo.com + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 20 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: Hips + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperLeg + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperLeg + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerLeg + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerLeg + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Foot + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Foot + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Spine + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Chest + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Neck + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Head + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Shoulder + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Shoulder + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperArm + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperArm + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerArm + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerArm + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Hand + humanName: LeftHand + limit: + min: {x: 0, y: -180, z: -180} + max: {x: 0, y: 180, z: 180} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 1 + - boneName: Right_Hand + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Toes + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Toes + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbProximal + humanName: Left Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbIntermediate + humanName: Left Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbDistal + humanName: Left Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexProximal + humanName: Left Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexIntermediate + humanName: Left Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexDistal + humanName: Left Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleProximal + humanName: Left Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleIntermediate + humanName: Left Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleDistal + humanName: Left Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingProximal + humanName: Left Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingIntermediate + humanName: Left Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingDistal + humanName: Left Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyProximal + humanName: Left Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyIntermediate + humanName: Left Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyDistal + humanName: Left Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbProximal + humanName: Right Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbIntermediate + humanName: Right Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbDistal + humanName: Right Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexProximal + humanName: Right Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexIntermediate + humanName: Right Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexDistal + humanName: Right Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleProximal + humanName: Right Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleIntermediate + humanName: Right Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleDistal + humanName: Right Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingProximal + humanName: Right Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingIntermediate + humanName: Right Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingDistal + humanName: Right Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyProximal + humanName: Right Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyIntermediate + humanName: Right Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyDistal + humanName: Right Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: UpperChest + humanName: UpperChest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: ArmatureSkinningUpdate(Clone) + parentName: + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Skeleton + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Hips + parentName: Skeleton + position: {x: -0, y: 0.9810986, z: -0.01590455} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Spine + parentName: Hips + position: {x: -0, y: 0.058229383, z: 0.0012229546} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Chest + parentName: Spine + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: UpperChest + parentName: Chest + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Neck + parentName: UpperChest + position: {x: -0, y: 0.25104657, z: -0.015329581} + rotation: {x: 0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Head + parentName: Neck + position: {x: -0, y: 0.12747401, z: 0} + rotation: {x: -0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Right_Eye + parentName: Head + position: {x: 0.033303294, y: 0.03459628, z: 0.0867403} + rotation: {x: 0.7071068, y: 0.0000000037252903, z: 0.7071068, w: 0.0000000037252903} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_Eye + parentName: Head + position: {x: -0.03330326, y: 0.034598116, z: 0.0867403} + rotation: {x: -0.0000000037252903, y: 0.7071068, z: -0.0000000037252903, w: 0.7071068} + scale: {x: 1.0000002, y: 1, z: 1.0000002} + - name: Jaw + parentName: Head + position: {x: -0, y: -0.00763539, z: 0.012895278} + rotation: {x: 0.15949221, y: 0.6888848, z: 0.15949221, w: 0.68888485} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Neck_Twist_A + parentName: Neck + position: {x: -0, y: 0.063737005, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Left_Shoulder + parentName: UpperChest + position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} + rotation: {x: -0.004949423, y: -0.1135221, z: 0.043275435, w: 0.99258024} + scale: {x: 1, y: 1.0000001, z: 1} + - name: Left_UpperArm + parentName: Left_Shoulder + position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17} + rotation: {x: 0.12673515, y: 0.033320952, z: 0.6809722, w: 0.7204892} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Left_LowerArm + parentName: Left_UpperArm + position: {x: -2.8421706e-16, y: 0.28508067, z: 0} + rotation: {x: 0.020536324, y: 0.00832123, z: -0.02062474, w: 0.99954176} + scale: {x: 1.0000004, y: 1.0000004, z: 1} + - name: Left_Hand + parentName: Left_LowerArm + position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16} + rotation: {x: -0.047397543, y: -0.24003612, z: 0.013464515, w: 0.96951276} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000002} + - name: Left_PinkyProximal + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: -0.020071255, y: -0.55048937, z: -0.008245589, w: 0.83456016} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_PinkyIntermediate + parentName: Left_PinkyProximal + position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16} + rotation: {x: 0.028114945, y: 0.00000017881392, z: 0.0000004107132, w: 0.9996047} + scale: {x: 0.99999994, y: 1.0000005, z: 1.0000006} + - name: Left_PinkyDistal + parentName: Left_PinkyIntermediate + position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17} + rotation: {x: 0.036441054, y: 0.0000003874126, z: -0.00000053796356, w: 0.9993358} + scale: {x: 1.0000005, y: 1.0000011, z: 1.000001} + - name: Left_PinkyDistalEnd + parentName: Left_PinkyDistal + position: {x: -1.2434495e-16, y: 0.018519057, z: 0} + rotation: {x: -0.000000014901156, y: -0, z: -1.421085e-14, w: 1} + scale: {x: 1.0000002, y: 1.0000001, z: 0.99999994} + - name: Left_RingProximal + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: -0.017654492, y: -0.602699, z: -0.0040542856, w: 0.7977631} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_RingIntermediate + parentName: Left_RingProximal + position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16} + rotation: {x: 0.023558479, y: -0.000000059604616, z: 0.00000016763798, w: 0.9997225} + scale: {x: 1.0000001, y: 1.0000008, z: 1.0000007} + - name: Left_RingDistal + parentName: Left_RingIntermediate + position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16} + rotation: {x: 0.039085917, y: 0.000000047564775, z: -0.00000023156034, w: 0.99923587} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000005} + - name: Left_RingDistalEnd + parentName: Left_RingDistal + position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: 5.329069e-15, w: 1} + scale: {x: 0.99999994, y: 0.9999998, z: 1} + - name: Left_MiddleProximal + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: -0.004091014, y: -0.66108054, z: -0.004002313, w: 0.7502931} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_MiddleIntermediate + parentName: Left_MiddleProximal + position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17} + rotation: {x: 0.026229925, y: 0.000000089406946, z: 0.0000011208465, w: 0.99965596} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000006} + - name: Left_MiddleDistal + parentName: Left_MiddleIntermediate + position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17} + rotation: {x: 0.033475332, y: 0.00000015209851, z: -0.000000009192755, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 0.9999997} + - name: Left_MiddleDistalEnd + parentName: Left_MiddleDistal + position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: -4.4408905e-16, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000001} + - name: Left_IndexProximal + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: -0.00008071024, y: -0.7104802, z: -0.0063063996, w: 0.70368886} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_IndexIntermediate + parentName: Left_IndexProximal + position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16} + rotation: {x: 0.03019868, y: -0.000000029802326, z: -0.0000008903808, w: 0.99954396} + scale: {x: 1, y: 1.0000005, z: 1.0000005} + - name: Left_IndexDistal + parentName: Left_IndexIntermediate + position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16} + rotation: {x: 0.039457045, y: -0.000000010711526, z: 0.00000045662225, w: 0.99922127} + scale: {x: 1, y: 1.0000005, z: 1.0000002} + - name: Left_IndexDistalEnd + parentName: Left_IndexDistal + position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17} + rotation: {x: -0, y: -0, z: 2.2204452e-15, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000002} + - name: Left_ThumbProximal + parentName: Left_Hand + position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476} + rotation: {x: -0.17960364, y: -0.8841738, z: -0.42399, w: 0.078814216} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001} + - name: Left_ThumbIntermediate + parentName: Left_ThumbProximal + position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592} + rotation: {x: 0.12780568, y: -0.00000020116563, z: -0.000000014901158, w: 0.9917993} + scale: {x: 1.0000001, y: 0.99999994, z: 0.99999994} + - name: Left_ThumbDistal + parentName: Left_ThumbIntermediate + position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915} + rotation: {x: -0.045419924, y: 0.0000007949222, z: 0.00000046266297, w: 0.998968} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Left_ThumbDistalEnd + parentName: Left_ThumbDistal + position: {x: -4.2632555e-16, y: 0.029458016, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.9999998, z: 0.99999994} + - name: Left_PinkyProximalDef + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: 0.0066042603, y: -0.5050903, z: 0.37113702, w: 0.7791646} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_RingProximalDef + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: 0.035572164, y: -0.56915504, z: 0.30658576, w: 0.76210386} + scale: {x: 1.0000002, y: 1.0000007, z: 1.0000005} + - name: Left_MiddleProximalDef + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: 0.095934115, y: -0.6426919, z: 0.21124849, w: 0.7301492} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_IndexProximalDef + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: 0.13385344, y: -0.6899346, z: 0.20177333, w: 0.6821737} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_ThumbIntermediateDef + parentName: Left_Hand + position: {x: -0.0132574225, y: 0.0502166, z: 0.036247443} + rotation: {x: 0.22855456, y: -0.91963416, z: -0.31812134, w: -0.02889162} + scale: {x: 1.0000006, y: 1.0000004, z: 1.0000002} + - name: Left_LowerArmEnd + parentName: Left_LowerArm + position: {x: -2.4123806e-10, y: 0.24036221, z: -2.842171e-16} + rotation: {x: -0.000000029802315, y: -0, z: 2.6645346e-15, w: 1} + scale: {x: 1.0000004, y: 1.0000002, z: 1} + - name: Right_Shoulder + parentName: UpperChest + position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} + rotation: {x: 0.99258024, y: -0.043275435, z: -0.1135221, w: 0.004949424} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperArm + parentName: Right_Shoulder + position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746} + rotation: {x: -0.12673455, y: -0.033321112, z: -0.6809673, w: -0.7204941} + scale: {x: 0.9999999, y: 0.99999976, z: 1.0000002} + - name: Right_LowerArm + parentName: Right_UpperArm + position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226} + rotation: {x: 0.020537077, y: 0.008318591, z: -0.020618176, w: 0.9995418} + scale: {x: 1.0000005, y: 1.0000001, z: 1.0000001} + - name: Right_Hand + parentName: Right_LowerArm + position: {x: -0, y: -0.24036367, z: 0} + rotation: {x: -0.047397524, y: -0.24003613, z: 0.013464563, w: 0.9695127} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000006} + - name: Right_PinkyProximal + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: -0.020056283, y: -0.5504963, z: -0.008250083, w: 0.83455586} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_PinkyIntermediate + parentName: Right_PinkyProximal + position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623} + rotation: {x: 0.02811506, y: -0.0000030398364, z: 0.000002180226, w: 0.9996047} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000006} + - name: Right_PinkyDistal + parentName: Right_PinkyIntermediate + position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345} + rotation: {x: 0.036424562, y: -0.0000020630353, z: -0.000008972234, w: 0.9993364} + scale: {x: 1, y: 0.9999998, z: 1.0000001} + - name: Right_PinkyDistalEnd + parentName: Right_PinkyDistal + position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108} + rotation: {x: -0, y: -0, z: -3.5527133e-15, w: 1} + scale: {x: 1.0000002, y: 1, z: 1.0000001} + - name: Right_RingProximal + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: -0.017648041, y: -0.60270077, z: -0.004054018, w: 0.79776186} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_RingIntermediate + parentName: Right_RingProximal + position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335} + rotation: {x: 0.02354795, y: 0.0000019669526, z: 0.000006956046, w: 0.9997227} + scale: {x: 0.99999994, y: 0.99999994, z: 1} + - name: Right_RingDistal + parentName: Right_RingIntermediate + position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098} + rotation: {x: 0.039102394, y: 0.00000033448705, z: -0.0000046869313, w: 0.9992352} + scale: {x: 1.0000001, y: 0.99999994, z: 1.0000002} + - name: Right_RingDistalEnd + parentName: Right_RingDistal + position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459} + rotation: {x: -0, y: -0, z: -3.9968025e-15, w: 1} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Right_MiddleProximal + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: -0.0040832064, y: -0.6610816, z: -0.0039998735, w: 0.75029224} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_MiddleIntermediate + parentName: Right_MiddleProximal + position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695} + rotation: {x: 0.02622648, y: -0.0000009238719, z: -0.0000023830214, w: 0.9996561} + scale: {x: 0.99999994, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistal + parentName: Right_MiddleIntermediate + position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916} + rotation: {x: 0.03347536, y: 0.00000011190659, z: -0.000000035817987, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistalEnd + parentName: Right_MiddleDistal + position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584} + rotation: {x: -0, y: -0, z: -1.7763562e-15, w: 1} + scale: {x: 1.0000002, y: 0.99999994, z: 0.99999994} + - name: Right_IndexProximal + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: -0.00008950194, y: -0.71048063, z: -0.006329643, w: 0.70368826} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexIntermediate + parentName: Right_IndexProximal + position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077} + rotation: {x: 0.030205265, y: -0.00000023841855, z: 0.000011867056, w: 0.9995437} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001} + - name: Right_IndexDistal + parentName: Right_IndexIntermediate + position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629} + rotation: {x: 0.039483186, y: 0.00000044864683, z: -0.000006141602, w: 0.99922025} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexDistalEnd + parentName: Right_IndexDistal + position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131} + rotation: {x: -0, y: -0, z: -5.3290705e-15, w: 1} + scale: {x: 1.0000001, y: 1, z: 0.99999994} + - name: Right_ThumbProximal + parentName: Right_Hand + position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695} + rotation: {x: -0.17960693, y: -0.88417095, z: -0.4239946, w: 0.07881383} + scale: {x: 1, y: 0.9999997, z: 1.0000004} + - name: Right_ThumbIntermediate + parentName: Right_ThumbProximal + position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848} + rotation: {x: 0.1278056, y: -0.00000038743013, z: -0.000000014901159, w: 0.9917993} + scale: {x: 1.0000001, y: 1.0000002, z: 1.0000004} + - name: Right_ThumbDistal + parentName: Right_ThumbIntermediate + position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783} + rotation: {x: -0.045420226, y: -0.000002421734, z: 0.000001035943, w: 0.998968} + scale: {x: 1.0000001, y: 0.9999998, z: 0.99999994} + - name: Right_ThumbDistalEnd + parentName: Right_ThumbDistal + position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683} + rotation: {x: -0, y: 0.00000014403909, z: -0.0000000134323095, w: 1} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Right_PinkyProximalDef + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: 0.006604309, y: -0.50509036, z: 0.37113705, w: 0.7791645} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000001} + - name: Right_RingProximalDef + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: 0.035572305, y: -0.56915504, z: 0.3065858, w: 0.7621038} + scale: {x: 0.99999994, y: 1, z: 1.0000002} + - name: Right_MiddleProximalDef + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: 0.09593412, y: -0.642692, z: 0.21124847, w: 0.7301492} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_IndexProximalDef + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: 0.13385352, y: -0.6899346, z: 0.20177332, w: 0.6821737} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_ThumbIntermediateDef + parentName: Right_Hand + position: {x: 0.013255546, y: -0.050215878, z: -0.036247417} + rotation: {x: 0.22855446, y: -0.91963416, z: -0.31812134, w: -0.02889147} + scale: {x: 1.0000001, y: 0.9999998, z: 1.0000004} + - name: Right_LowerArmEnd + parentName: Right_LowerArm + position: {x: 1.4210854e-16, y: -0.24036367, z: 7.105427e-17} + rotation: {x: -0, y: -0, z: -1.7763568e-15, w: 1} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000004} + - name: Left_UpperLeg + parentName: Hips + position: {x: -0.08610317, y: -0.053458035, z: -0.011470641} + rotation: {x: 0.999839, y: -0.017753728, z: 0.000046300593, w: -0.0026075034} + scale: {x: 1, y: 1, z: 1} + - name: Left_LowerLeg + parentName: Left_UpperLeg + position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17} + rotation: {x: 0.034046084, y: 0.0000000024447215, z: -0.0000000074505797, w: 0.9994202} + scale: {x: 1, y: 1.0000006, z: 1.0000006} + - name: Left_Foot + parentName: Left_LowerLeg + position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 0.9999998, z: 0.9999998} + - name: Left_Toes + parentName: Left_Foot + position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506} + rotation: {x: -0.70710677, y: -0.0000000074505815, z: 0.000000003143214, w: 0.7071068} + scale: {x: 1.0000001, y: 1.0000001, z: 1} + - name: Left_ToesEnd + parentName: Left_Toes + position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978} + rotation: {x: 0.7070656, y: -0.0076322434, z: -0.0076322514, w: 0.70706564} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperLeg + parentName: Hips + position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475} + rotation: {x: 0.0026075034, y: 0.000046300593, z: 0.017753728, w: 0.999839} + scale: {x: 1, y: 1, z: 1} + - name: Right_LowerLeg + parentName: Right_UpperLeg + position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435} + rotation: {x: 0.034046084, y: 0.0000000024228937, z: -0.0000000073384845, w: 0.9994202} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Right_Foot + parentName: Right_LowerLeg + position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Right_Toes + parentName: Right_Foot + position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807} + rotation: {x: -0.7071068, y: -0.0000000037252903, z: -0.0000000013969839, w: 0.7071067} + scale: {x: 1.0000001, y: 1.0000005, z: 1.0000004} + - name: Right_ToesEnd + parentName: Right_Toes + position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898} + rotation: {x: 0.70706564, y: -0.0076322462, z: -0.007632248, w: 0.7070655} + scale: {x: 1, y: 1, z: 1} + - name: Geometry + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Armature_Mesh + parentName: Geometry + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 1 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 1 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: f7f7cd4abe3f02e4e8b99b5a070db992, type: 3} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 2 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/ThirdParty/AnimationClips/Run.fbx b/Samples/ThirdParty/AnimationClips/Run.fbx new file mode 100644 index 00000000..1df0e673 Binary files /dev/null and b/Samples/ThirdParty/AnimationClips/Run.fbx differ diff --git a/Samples/ThirdParty/AnimationClips/Run.fbx.meta b/Samples/ThirdParty/AnimationClips/Run.fbx.meta new file mode 100644 index 00000000..c3a2171f --- /dev/null +++ b/Samples/ThirdParty/AnimationClips/Run.fbx.meta @@ -0,0 +1,971 @@ +fileFormatVersion: 2 +guid: b389312b068b8174f8e603dfa61f1586 +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 3 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: Run mixamo.com + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 21 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: Hips + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperLeg + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperLeg + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerLeg + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerLeg + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Foot + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Foot + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Spine + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Chest + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Neck + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Head + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Shoulder + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Shoulder + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperArm + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperArm + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerArm + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerArm + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Hand + humanName: LeftHand + limit: + min: {x: 0, y: -180, z: -180} + max: {x: 0, y: 180, z: 180} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 1 + - boneName: Right_Hand + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Toes + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Toes + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbProximal + humanName: Left Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbIntermediate + humanName: Left Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbDistal + humanName: Left Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexProximal + humanName: Left Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexIntermediate + humanName: Left Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexDistal + humanName: Left Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleProximal + humanName: Left Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleIntermediate + humanName: Left Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleDistal + humanName: Left Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingProximal + humanName: Left Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingIntermediate + humanName: Left Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingDistal + humanName: Left Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyProximal + humanName: Left Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyIntermediate + humanName: Left Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyDistal + humanName: Left Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbProximal + humanName: Right Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbIntermediate + humanName: Right Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbDistal + humanName: Right Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexProximal + humanName: Right Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexIntermediate + humanName: Right Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexDistal + humanName: Right Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleProximal + humanName: Right Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleIntermediate + humanName: Right Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleDistal + humanName: Right Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingProximal + humanName: Right Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingIntermediate + humanName: Right Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingDistal + humanName: Right Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyProximal + humanName: Right Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyIntermediate + humanName: Right Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyDistal + humanName: Right Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: UpperChest + humanName: UpperChest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: ArmatureSkinningUpdate(Clone) + parentName: + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Skeleton + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Hips + parentName: Skeleton + position: {x: -0, y: 0.9810986, z: -0.01590455} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Spine + parentName: Hips + position: {x: -0, y: 0.058229383, z: 0.0012229546} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Chest + parentName: Spine + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: UpperChest + parentName: Chest + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Neck + parentName: UpperChest + position: {x: -0, y: 0.25104657, z: -0.015329581} + rotation: {x: 0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Head + parentName: Neck + position: {x: -0, y: 0.12747401, z: 0} + rotation: {x: -0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Right_Eye + parentName: Head + position: {x: 0.033303294, y: 0.03459628, z: 0.0867403} + rotation: {x: 0.7071068, y: 0.0000000037252903, z: 0.7071068, w: 0.0000000037252903} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_Eye + parentName: Head + position: {x: -0.03330326, y: 0.034598116, z: 0.0867403} + rotation: {x: -0.0000000037252903, y: 0.7071068, z: -0.0000000037252903, w: 0.7071068} + scale: {x: 1.0000002, y: 1, z: 1.0000002} + - name: Jaw + parentName: Head + position: {x: -0, y: -0.00763539, z: 0.012895278} + rotation: {x: 0.15949221, y: 0.6888848, z: 0.15949221, w: 0.68888485} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Neck_Twist_A + parentName: Neck + position: {x: -0, y: 0.063737005, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Left_Shoulder + parentName: UpperChest + position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} + rotation: {x: -0.004949423, y: -0.1135221, z: 0.043275435, w: 0.99258024} + scale: {x: 1, y: 1.0000001, z: 1} + - name: Left_UpperArm + parentName: Left_Shoulder + position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17} + rotation: {x: 0.12673515, y: 0.033320952, z: 0.6809722, w: 0.7204892} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Left_LowerArm + parentName: Left_UpperArm + position: {x: -2.8421706e-16, y: 0.28508067, z: 0} + rotation: {x: 0.020536324, y: 0.00832123, z: -0.02062474, w: 0.99954176} + scale: {x: 1.0000004, y: 1.0000004, z: 1} + - name: Left_Hand + parentName: Left_LowerArm + position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16} + rotation: {x: -0.047397543, y: -0.24003612, z: 0.013464515, w: 0.96951276} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000002} + - name: Left_PinkyProximal + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: -0.020071255, y: -0.55048937, z: -0.008245589, w: 0.83456016} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_PinkyIntermediate + parentName: Left_PinkyProximal + position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16} + rotation: {x: 0.028114945, y: 0.00000017881392, z: 0.0000004107132, w: 0.9996047} + scale: {x: 0.99999994, y: 1.0000005, z: 1.0000006} + - name: Left_PinkyDistal + parentName: Left_PinkyIntermediate + position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17} + rotation: {x: 0.036441054, y: 0.0000003874126, z: -0.00000053796356, w: 0.9993358} + scale: {x: 1.0000005, y: 1.0000011, z: 1.000001} + - name: Left_PinkyDistalEnd + parentName: Left_PinkyDistal + position: {x: -1.2434495e-16, y: 0.018519057, z: 0} + rotation: {x: -0.000000014901156, y: -0, z: -1.421085e-14, w: 1} + scale: {x: 1.0000002, y: 1.0000001, z: 0.99999994} + - name: Left_RingProximal + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: -0.017654492, y: -0.602699, z: -0.0040542856, w: 0.7977631} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_RingIntermediate + parentName: Left_RingProximal + position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16} + rotation: {x: 0.023558479, y: -0.000000059604616, z: 0.00000016763798, w: 0.9997225} + scale: {x: 1.0000001, y: 1.0000008, z: 1.0000007} + - name: Left_RingDistal + parentName: Left_RingIntermediate + position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16} + rotation: {x: 0.039085917, y: 0.000000047564775, z: -0.00000023156034, w: 0.99923587} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000005} + - name: Left_RingDistalEnd + parentName: Left_RingDistal + position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: 5.329069e-15, w: 1} + scale: {x: 0.99999994, y: 0.9999998, z: 1} + - name: Left_MiddleProximal + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: -0.004091014, y: -0.66108054, z: -0.004002313, w: 0.7502931} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_MiddleIntermediate + parentName: Left_MiddleProximal + position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17} + rotation: {x: 0.026229925, y: 0.000000089406946, z: 0.0000011208465, w: 0.99965596} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000006} + - name: Left_MiddleDistal + parentName: Left_MiddleIntermediate + position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17} + rotation: {x: 0.033475332, y: 0.00000015209851, z: -0.000000009192755, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 0.9999997} + - name: Left_MiddleDistalEnd + parentName: Left_MiddleDistal + position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: -4.4408905e-16, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000001} + - name: Left_IndexProximal + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: -0.00008071024, y: -0.7104802, z: -0.0063063996, w: 0.70368886} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_IndexIntermediate + parentName: Left_IndexProximal + position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16} + rotation: {x: 0.03019868, y: -0.000000029802326, z: -0.0000008903808, w: 0.99954396} + scale: {x: 1, y: 1.0000005, z: 1.0000005} + - name: Left_IndexDistal + parentName: Left_IndexIntermediate + position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16} + rotation: {x: 0.039457045, y: -0.000000010711526, z: 0.00000045662225, w: 0.99922127} + scale: {x: 1, y: 1.0000005, z: 1.0000002} + - name: Left_IndexDistalEnd + parentName: Left_IndexDistal + position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17} + rotation: {x: -0, y: -0, z: 2.2204452e-15, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000002} + - name: Left_ThumbProximal + parentName: Left_Hand + position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476} + rotation: {x: -0.17960364, y: -0.8841738, z: -0.42399, w: 0.078814216} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001} + - name: Left_ThumbIntermediate + parentName: Left_ThumbProximal + position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592} + rotation: {x: 0.12780568, y: -0.00000020116563, z: -0.000000014901158, w: 0.9917993} + scale: {x: 1.0000001, y: 0.99999994, z: 0.99999994} + - name: Left_ThumbDistal + parentName: Left_ThumbIntermediate + position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915} + rotation: {x: -0.045419924, y: 0.0000007949222, z: 0.00000046266297, w: 0.998968} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Left_ThumbDistalEnd + parentName: Left_ThumbDistal + position: {x: -4.2632555e-16, y: 0.029458016, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.9999998, z: 0.99999994} + - name: Left_PinkyProximalDef + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: 0.0066042603, y: -0.5050903, z: 0.37113702, w: 0.7791646} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_RingProximalDef + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: 0.035572164, y: -0.56915504, z: 0.30658576, w: 0.76210386} + scale: {x: 1.0000002, y: 1.0000007, z: 1.0000005} + - name: Left_MiddleProximalDef + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: 0.095934115, y: -0.6426919, z: 0.21124849, w: 0.7301492} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_IndexProximalDef + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: 0.13385344, y: -0.6899346, z: 0.20177333, w: 0.6821737} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_ThumbIntermediateDef + parentName: Left_Hand + position: {x: -0.0132574225, y: 0.0502166, z: 0.036247443} + rotation: {x: 0.22855456, y: -0.91963416, z: -0.31812134, w: -0.02889162} + scale: {x: 1.0000006, y: 1.0000004, z: 1.0000002} + - name: Left_LowerArmEnd + parentName: Left_LowerArm + position: {x: -2.4123806e-10, y: 0.24036221, z: -2.842171e-16} + rotation: {x: -0.000000029802315, y: -0, z: 2.6645346e-15, w: 1} + scale: {x: 1.0000004, y: 1.0000002, z: 1} + - name: Right_Shoulder + parentName: UpperChest + position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} + rotation: {x: 0.99258024, y: -0.043275435, z: -0.1135221, w: 0.004949424} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperArm + parentName: Right_Shoulder + position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746} + rotation: {x: -0.12673455, y: -0.033321112, z: -0.6809673, w: -0.7204941} + scale: {x: 0.9999999, y: 0.99999976, z: 1.0000002} + - name: Right_LowerArm + parentName: Right_UpperArm + position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226} + rotation: {x: 0.020537077, y: 0.008318591, z: -0.020618176, w: 0.9995418} + scale: {x: 1.0000005, y: 1.0000001, z: 1.0000001} + - name: Right_Hand + parentName: Right_LowerArm + position: {x: -0, y: -0.24036367, z: 0} + rotation: {x: -0.047397524, y: -0.24003613, z: 0.013464563, w: 0.9695127} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000006} + - name: Right_PinkyProximal + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: -0.020056283, y: -0.5504963, z: -0.008250083, w: 0.83455586} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_PinkyIntermediate + parentName: Right_PinkyProximal + position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623} + rotation: {x: 0.02811506, y: -0.0000030398364, z: 0.000002180226, w: 0.9996047} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000006} + - name: Right_PinkyDistal + parentName: Right_PinkyIntermediate + position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345} + rotation: {x: 0.036424562, y: -0.0000020630353, z: -0.000008972234, w: 0.9993364} + scale: {x: 1, y: 0.9999998, z: 1.0000001} + - name: Right_PinkyDistalEnd + parentName: Right_PinkyDistal + position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108} + rotation: {x: -0, y: -0, z: -3.5527133e-15, w: 1} + scale: {x: 1.0000002, y: 1, z: 1.0000001} + - name: Right_RingProximal + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: -0.017648041, y: -0.60270077, z: -0.004054018, w: 0.79776186} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_RingIntermediate + parentName: Right_RingProximal + position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335} + rotation: {x: 0.02354795, y: 0.0000019669526, z: 0.000006956046, w: 0.9997227} + scale: {x: 0.99999994, y: 0.99999994, z: 1} + - name: Right_RingDistal + parentName: Right_RingIntermediate + position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098} + rotation: {x: 0.039102394, y: 0.00000033448705, z: -0.0000046869313, w: 0.9992352} + scale: {x: 1.0000001, y: 0.99999994, z: 1.0000002} + - name: Right_RingDistalEnd + parentName: Right_RingDistal + position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459} + rotation: {x: -0, y: -0, z: -3.9968025e-15, w: 1} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Right_MiddleProximal + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: -0.0040832064, y: -0.6610816, z: -0.0039998735, w: 0.75029224} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_MiddleIntermediate + parentName: Right_MiddleProximal + position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695} + rotation: {x: 0.02622648, y: -0.0000009238719, z: -0.0000023830214, w: 0.9996561} + scale: {x: 0.99999994, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistal + parentName: Right_MiddleIntermediate + position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916} + rotation: {x: 0.03347536, y: 0.00000011190659, z: -0.000000035817987, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistalEnd + parentName: Right_MiddleDistal + position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584} + rotation: {x: -0, y: -0, z: -1.7763562e-15, w: 1} + scale: {x: 1.0000002, y: 0.99999994, z: 0.99999994} + - name: Right_IndexProximal + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: -0.00008950194, y: -0.71048063, z: -0.006329643, w: 0.70368826} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexIntermediate + parentName: Right_IndexProximal + position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077} + rotation: {x: 0.030205265, y: -0.00000023841855, z: 0.000011867056, w: 0.9995437} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001} + - name: Right_IndexDistal + parentName: Right_IndexIntermediate + position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629} + rotation: {x: 0.039483186, y: 0.00000044864683, z: -0.000006141602, w: 0.99922025} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexDistalEnd + parentName: Right_IndexDistal + position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131} + rotation: {x: -0, y: -0, z: -5.3290705e-15, w: 1} + scale: {x: 1.0000001, y: 1, z: 0.99999994} + - name: Right_ThumbProximal + parentName: Right_Hand + position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695} + rotation: {x: -0.17960693, y: -0.88417095, z: -0.4239946, w: 0.07881383} + scale: {x: 1, y: 0.9999997, z: 1.0000004} + - name: Right_ThumbIntermediate + parentName: Right_ThumbProximal + position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848} + rotation: {x: 0.1278056, y: -0.00000038743013, z: -0.000000014901159, w: 0.9917993} + scale: {x: 1.0000001, y: 1.0000002, z: 1.0000004} + - name: Right_ThumbDistal + parentName: Right_ThumbIntermediate + position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783} + rotation: {x: -0.045420226, y: -0.000002421734, z: 0.000001035943, w: 0.998968} + scale: {x: 1.0000001, y: 0.9999998, z: 0.99999994} + - name: Right_ThumbDistalEnd + parentName: Right_ThumbDistal + position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683} + rotation: {x: -0, y: 0.00000014403909, z: -0.0000000134323095, w: 1} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Right_PinkyProximalDef + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: 0.006604309, y: -0.50509036, z: 0.37113705, w: 0.7791645} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000001} + - name: Right_RingProximalDef + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: 0.035572305, y: -0.56915504, z: 0.3065858, w: 0.7621038} + scale: {x: 0.99999994, y: 1, z: 1.0000002} + - name: Right_MiddleProximalDef + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: 0.09593412, y: -0.642692, z: 0.21124847, w: 0.7301492} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_IndexProximalDef + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: 0.13385352, y: -0.6899346, z: 0.20177332, w: 0.6821737} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_ThumbIntermediateDef + parentName: Right_Hand + position: {x: 0.013255546, y: -0.050215878, z: -0.036247417} + rotation: {x: 0.22855446, y: -0.91963416, z: -0.31812134, w: -0.02889147} + scale: {x: 1.0000001, y: 0.9999998, z: 1.0000004} + - name: Right_LowerArmEnd + parentName: Right_LowerArm + position: {x: 1.4210854e-16, y: -0.24036367, z: 7.105427e-17} + rotation: {x: -0, y: -0, z: -1.7763568e-15, w: 1} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000004} + - name: Left_UpperLeg + parentName: Hips + position: {x: -0.08610317, y: -0.053458035, z: -0.011470641} + rotation: {x: 0.999839, y: -0.017753728, z: 0.000046300593, w: -0.0026075034} + scale: {x: 1, y: 1, z: 1} + - name: Left_LowerLeg + parentName: Left_UpperLeg + position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17} + rotation: {x: 0.034046084, y: 0.0000000024447215, z: -0.0000000074505797, w: 0.9994202} + scale: {x: 1, y: 1.0000006, z: 1.0000006} + - name: Left_Foot + parentName: Left_LowerLeg + position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 0.9999998, z: 0.9999998} + - name: Left_Toes + parentName: Left_Foot + position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506} + rotation: {x: -0.70710677, y: -0.0000000074505815, z: 0.000000003143214, w: 0.7071068} + scale: {x: 1.0000001, y: 1.0000001, z: 1} + - name: Left_ToesEnd + parentName: Left_Toes + position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978} + rotation: {x: 0.7070656, y: -0.0076322434, z: -0.0076322514, w: 0.70706564} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperLeg + parentName: Hips + position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475} + rotation: {x: 0.0026075034, y: 0.000046300593, z: 0.017753728, w: 0.999839} + scale: {x: 1, y: 1, z: 1} + - name: Right_LowerLeg + parentName: Right_UpperLeg + position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435} + rotation: {x: 0.034046084, y: 0.0000000024228937, z: -0.0000000073384845, w: 0.9994202} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Right_Foot + parentName: Right_LowerLeg + position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Right_Toes + parentName: Right_Foot + position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807} + rotation: {x: -0.7071068, y: -0.0000000037252903, z: -0.0000000013969839, w: 0.7071067} + scale: {x: 1.0000001, y: 1.0000005, z: 1.0000004} + - name: Right_ToesEnd + parentName: Right_Toes + position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898} + rotation: {x: 0.70706564, y: -0.0076322462, z: -0.007632248, w: 0.7070655} + scale: {x: 1, y: 1, z: 1} + - name: Geometry + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Armature_Mesh + parentName: Geometry + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 1 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 1 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: f7f7cd4abe3f02e4e8b99b5a070db992, type: 3} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 2 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/ThirdParty/AnimationClips/Walk Backwards.fbx b/Samples/ThirdParty/AnimationClips/Walk Backwards.fbx new file mode 100644 index 00000000..fd6a6bcf Binary files /dev/null and b/Samples/ThirdParty/AnimationClips/Walk Backwards.fbx differ diff --git a/Samples/ThirdParty/AnimationClips/Walk Backwards.fbx.meta b/Samples/ThirdParty/AnimationClips/Walk Backwards.fbx.meta new file mode 100644 index 00000000..3bb187b1 --- /dev/null +++ b/Samples/ThirdParty/AnimationClips/Walk Backwards.fbx.meta @@ -0,0 +1,971 @@ +fileFormatVersion: 2 +guid: 1924f4d4a71c45e4287c0e9d7a1522ef +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 3 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: Walk Backward mixamo.com + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 29 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: Hips + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperLeg + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperLeg + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerLeg + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerLeg + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Foot + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Foot + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Spine + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Chest + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Neck + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Head + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Shoulder + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Shoulder + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperArm + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperArm + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerArm + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerArm + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Hand + humanName: LeftHand + limit: + min: {x: 0, y: -180, z: -180} + max: {x: 0, y: 180, z: 180} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 1 + - boneName: Right_Hand + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Toes + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Toes + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbProximal + humanName: Left Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbIntermediate + humanName: Left Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbDistal + humanName: Left Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexProximal + humanName: Left Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexIntermediate + humanName: Left Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexDistal + humanName: Left Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleProximal + humanName: Left Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleIntermediate + humanName: Left Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleDistal + humanName: Left Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingProximal + humanName: Left Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingIntermediate + humanName: Left Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingDistal + humanName: Left Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyProximal + humanName: Left Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyIntermediate + humanName: Left Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyDistal + humanName: Left Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbProximal + humanName: Right Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbIntermediate + humanName: Right Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbDistal + humanName: Right Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexProximal + humanName: Right Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexIntermediate + humanName: Right Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexDistal + humanName: Right Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleProximal + humanName: Right Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleIntermediate + humanName: Right Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleDistal + humanName: Right Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingProximal + humanName: Right Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingIntermediate + humanName: Right Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingDistal + humanName: Right Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyProximal + humanName: Right Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyIntermediate + humanName: Right Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyDistal + humanName: Right Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: UpperChest + humanName: UpperChest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: ArmatureSkinningUpdate(Clone) + parentName: + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Skeleton + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Hips + parentName: Skeleton + position: {x: -0, y: 0.9810986, z: -0.01590455} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Spine + parentName: Hips + position: {x: -0, y: 0.058229383, z: 0.0012229546} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Chest + parentName: Spine + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: UpperChest + parentName: Chest + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Neck + parentName: UpperChest + position: {x: -0, y: 0.25104657, z: -0.015329581} + rotation: {x: 0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Head + parentName: Neck + position: {x: -0, y: 0.12747401, z: 0} + rotation: {x: -0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Right_Eye + parentName: Head + position: {x: 0.033303294, y: 0.03459628, z: 0.0867403} + rotation: {x: 0.7071068, y: 0.0000000037252903, z: 0.7071068, w: 0.0000000037252903} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_Eye + parentName: Head + position: {x: -0.03330326, y: 0.034598116, z: 0.0867403} + rotation: {x: -0.0000000037252903, y: 0.7071068, z: -0.0000000037252903, w: 0.7071068} + scale: {x: 1.0000002, y: 1, z: 1.0000002} + - name: Jaw + parentName: Head + position: {x: -0, y: -0.00763539, z: 0.012895278} + rotation: {x: 0.15949221, y: 0.6888848, z: 0.15949221, w: 0.68888485} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Neck_Twist_A + parentName: Neck + position: {x: -0, y: 0.063737005, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Left_Shoulder + parentName: UpperChest + position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} + rotation: {x: -0.004949423, y: -0.1135221, z: 0.043275435, w: 0.99258024} + scale: {x: 1, y: 1.0000001, z: 1} + - name: Left_UpperArm + parentName: Left_Shoulder + position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17} + rotation: {x: 0.12673515, y: 0.033320952, z: 0.6809722, w: 0.7204892} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Left_LowerArm + parentName: Left_UpperArm + position: {x: -2.8421706e-16, y: 0.28508067, z: 0} + rotation: {x: 0.020536324, y: 0.00832123, z: -0.02062474, w: 0.99954176} + scale: {x: 1.0000004, y: 1.0000004, z: 1} + - name: Left_Hand + parentName: Left_LowerArm + position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16} + rotation: {x: -0.047397543, y: -0.24003612, z: 0.013464515, w: 0.96951276} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000002} + - name: Left_PinkyProximal + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: -0.020071255, y: -0.55048937, z: -0.008245589, w: 0.83456016} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_PinkyIntermediate + parentName: Left_PinkyProximal + position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16} + rotation: {x: 0.028114945, y: 0.00000017881392, z: 0.0000004107132, w: 0.9996047} + scale: {x: 0.99999994, y: 1.0000005, z: 1.0000006} + - name: Left_PinkyDistal + parentName: Left_PinkyIntermediate + position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17} + rotation: {x: 0.036441054, y: 0.0000003874126, z: -0.00000053796356, w: 0.9993358} + scale: {x: 1.0000005, y: 1.0000011, z: 1.000001} + - name: Left_PinkyDistalEnd + parentName: Left_PinkyDistal + position: {x: -1.2434495e-16, y: 0.018519057, z: 0} + rotation: {x: -0.000000014901156, y: -0, z: -1.421085e-14, w: 1} + scale: {x: 1.0000002, y: 1.0000001, z: 0.99999994} + - name: Left_RingProximal + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: -0.017654492, y: -0.602699, z: -0.0040542856, w: 0.7977631} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_RingIntermediate + parentName: Left_RingProximal + position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16} + rotation: {x: 0.023558479, y: -0.000000059604616, z: 0.00000016763798, w: 0.9997225} + scale: {x: 1.0000001, y: 1.0000008, z: 1.0000007} + - name: Left_RingDistal + parentName: Left_RingIntermediate + position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16} + rotation: {x: 0.039085917, y: 0.000000047564775, z: -0.00000023156034, w: 0.99923587} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000005} + - name: Left_RingDistalEnd + parentName: Left_RingDistal + position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: 5.329069e-15, w: 1} + scale: {x: 0.99999994, y: 0.9999998, z: 1} + - name: Left_MiddleProximal + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: -0.004091014, y: -0.66108054, z: -0.004002313, w: 0.7502931} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_MiddleIntermediate + parentName: Left_MiddleProximal + position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17} + rotation: {x: 0.026229925, y: 0.000000089406946, z: 0.0000011208465, w: 0.99965596} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000006} + - name: Left_MiddleDistal + parentName: Left_MiddleIntermediate + position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17} + rotation: {x: 0.033475332, y: 0.00000015209851, z: -0.000000009192755, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 0.9999997} + - name: Left_MiddleDistalEnd + parentName: Left_MiddleDistal + position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: -4.4408905e-16, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000001} + - name: Left_IndexProximal + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: -0.00008071024, y: -0.7104802, z: -0.0063063996, w: 0.70368886} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_IndexIntermediate + parentName: Left_IndexProximal + position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16} + rotation: {x: 0.03019868, y: -0.000000029802326, z: -0.0000008903808, w: 0.99954396} + scale: {x: 1, y: 1.0000005, z: 1.0000005} + - name: Left_IndexDistal + parentName: Left_IndexIntermediate + position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16} + rotation: {x: 0.039457045, y: -0.000000010711526, z: 0.00000045662225, w: 0.99922127} + scale: {x: 1, y: 1.0000005, z: 1.0000002} + - name: Left_IndexDistalEnd + parentName: Left_IndexDistal + position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17} + rotation: {x: -0, y: -0, z: 2.2204452e-15, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000002} + - name: Left_ThumbProximal + parentName: Left_Hand + position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476} + rotation: {x: -0.17960364, y: -0.8841738, z: -0.42399, w: 0.078814216} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001} + - name: Left_ThumbIntermediate + parentName: Left_ThumbProximal + position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592} + rotation: {x: 0.12780568, y: -0.00000020116563, z: -0.000000014901158, w: 0.9917993} + scale: {x: 1.0000001, y: 0.99999994, z: 0.99999994} + - name: Left_ThumbDistal + parentName: Left_ThumbIntermediate + position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915} + rotation: {x: -0.045419924, y: 0.0000007949222, z: 0.00000046266297, w: 0.998968} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Left_ThumbDistalEnd + parentName: Left_ThumbDistal + position: {x: -4.2632555e-16, y: 0.029458016, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.9999998, z: 0.99999994} + - name: Left_PinkyProximalDef + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: 0.0066042603, y: -0.5050903, z: 0.37113702, w: 0.7791646} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_RingProximalDef + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: 0.035572164, y: -0.56915504, z: 0.30658576, w: 0.76210386} + scale: {x: 1.0000002, y: 1.0000007, z: 1.0000005} + - name: Left_MiddleProximalDef + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: 0.095934115, y: -0.6426919, z: 0.21124849, w: 0.7301492} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_IndexProximalDef + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: 0.13385344, y: -0.6899346, z: 0.20177333, w: 0.6821737} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_ThumbIntermediateDef + parentName: Left_Hand + position: {x: -0.0132574225, y: 0.0502166, z: 0.036247443} + rotation: {x: 0.22855456, y: -0.91963416, z: -0.31812134, w: -0.02889162} + scale: {x: 1.0000006, y: 1.0000004, z: 1.0000002} + - name: Left_LowerArmEnd + parentName: Left_LowerArm + position: {x: -2.4123806e-10, y: 0.24036221, z: -2.842171e-16} + rotation: {x: -0.000000029802315, y: -0, z: 2.6645346e-15, w: 1} + scale: {x: 1.0000004, y: 1.0000002, z: 1} + - name: Right_Shoulder + parentName: UpperChest + position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} + rotation: {x: 0.99258024, y: -0.043275435, z: -0.1135221, w: 0.004949424} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperArm + parentName: Right_Shoulder + position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746} + rotation: {x: -0.12673455, y: -0.033321112, z: -0.6809673, w: -0.7204941} + scale: {x: 0.9999999, y: 0.99999976, z: 1.0000002} + - name: Right_LowerArm + parentName: Right_UpperArm + position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226} + rotation: {x: 0.020537077, y: 0.008318591, z: -0.020618176, w: 0.9995418} + scale: {x: 1.0000005, y: 1.0000001, z: 1.0000001} + - name: Right_Hand + parentName: Right_LowerArm + position: {x: -0, y: -0.24036367, z: 0} + rotation: {x: -0.047397524, y: -0.24003613, z: 0.013464563, w: 0.9695127} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000006} + - name: Right_PinkyProximal + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: -0.020056283, y: -0.5504963, z: -0.008250083, w: 0.83455586} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_PinkyIntermediate + parentName: Right_PinkyProximal + position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623} + rotation: {x: 0.02811506, y: -0.0000030398364, z: 0.000002180226, w: 0.9996047} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000006} + - name: Right_PinkyDistal + parentName: Right_PinkyIntermediate + position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345} + rotation: {x: 0.036424562, y: -0.0000020630353, z: -0.000008972234, w: 0.9993364} + scale: {x: 1, y: 0.9999998, z: 1.0000001} + - name: Right_PinkyDistalEnd + parentName: Right_PinkyDistal + position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108} + rotation: {x: -0, y: -0, z: -3.5527133e-15, w: 1} + scale: {x: 1.0000002, y: 1, z: 1.0000001} + - name: Right_RingProximal + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: -0.017648041, y: -0.60270077, z: -0.004054018, w: 0.79776186} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_RingIntermediate + parentName: Right_RingProximal + position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335} + rotation: {x: 0.02354795, y: 0.0000019669526, z: 0.000006956046, w: 0.9997227} + scale: {x: 0.99999994, y: 0.99999994, z: 1} + - name: Right_RingDistal + parentName: Right_RingIntermediate + position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098} + rotation: {x: 0.039102394, y: 0.00000033448705, z: -0.0000046869313, w: 0.9992352} + scale: {x: 1.0000001, y: 0.99999994, z: 1.0000002} + - name: Right_RingDistalEnd + parentName: Right_RingDistal + position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459} + rotation: {x: -0, y: -0, z: -3.9968025e-15, w: 1} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Right_MiddleProximal + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: -0.0040832064, y: -0.6610816, z: -0.0039998735, w: 0.75029224} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_MiddleIntermediate + parentName: Right_MiddleProximal + position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695} + rotation: {x: 0.02622648, y: -0.0000009238719, z: -0.0000023830214, w: 0.9996561} + scale: {x: 0.99999994, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistal + parentName: Right_MiddleIntermediate + position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916} + rotation: {x: 0.03347536, y: 0.00000011190659, z: -0.000000035817987, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistalEnd + parentName: Right_MiddleDistal + position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584} + rotation: {x: -0, y: -0, z: -1.7763562e-15, w: 1} + scale: {x: 1.0000002, y: 0.99999994, z: 0.99999994} + - name: Right_IndexProximal + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: -0.00008950194, y: -0.71048063, z: -0.006329643, w: 0.70368826} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexIntermediate + parentName: Right_IndexProximal + position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077} + rotation: {x: 0.030205265, y: -0.00000023841855, z: 0.000011867056, w: 0.9995437} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001} + - name: Right_IndexDistal + parentName: Right_IndexIntermediate + position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629} + rotation: {x: 0.039483186, y: 0.00000044864683, z: -0.000006141602, w: 0.99922025} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexDistalEnd + parentName: Right_IndexDistal + position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131} + rotation: {x: -0, y: -0, z: -5.3290705e-15, w: 1} + scale: {x: 1.0000001, y: 1, z: 0.99999994} + - name: Right_ThumbProximal + parentName: Right_Hand + position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695} + rotation: {x: -0.17960693, y: -0.88417095, z: -0.4239946, w: 0.07881383} + scale: {x: 1, y: 0.9999997, z: 1.0000004} + - name: Right_ThumbIntermediate + parentName: Right_ThumbProximal + position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848} + rotation: {x: 0.1278056, y: -0.00000038743013, z: -0.000000014901159, w: 0.9917993} + scale: {x: 1.0000001, y: 1.0000002, z: 1.0000004} + - name: Right_ThumbDistal + parentName: Right_ThumbIntermediate + position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783} + rotation: {x: -0.045420226, y: -0.000002421734, z: 0.000001035943, w: 0.998968} + scale: {x: 1.0000001, y: 0.9999998, z: 0.99999994} + - name: Right_ThumbDistalEnd + parentName: Right_ThumbDistal + position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683} + rotation: {x: -0, y: 0.00000014403909, z: -0.0000000134323095, w: 1} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Right_PinkyProximalDef + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: 0.006604309, y: -0.50509036, z: 0.37113705, w: 0.7791645} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000001} + - name: Right_RingProximalDef + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: 0.035572305, y: -0.56915504, z: 0.3065858, w: 0.7621038} + scale: {x: 0.99999994, y: 1, z: 1.0000002} + - name: Right_MiddleProximalDef + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: 0.09593412, y: -0.642692, z: 0.21124847, w: 0.7301492} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_IndexProximalDef + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: 0.13385352, y: -0.6899346, z: 0.20177332, w: 0.6821737} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_ThumbIntermediateDef + parentName: Right_Hand + position: {x: 0.013255546, y: -0.050215878, z: -0.036247417} + rotation: {x: 0.22855446, y: -0.91963416, z: -0.31812134, w: -0.02889147} + scale: {x: 1.0000001, y: 0.9999998, z: 1.0000004} + - name: Right_LowerArmEnd + parentName: Right_LowerArm + position: {x: 1.4210854e-16, y: -0.24036367, z: 7.105427e-17} + rotation: {x: -0, y: -0, z: -1.7763568e-15, w: 1} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000004} + - name: Left_UpperLeg + parentName: Hips + position: {x: -0.08610317, y: -0.053458035, z: -0.011470641} + rotation: {x: 0.999839, y: -0.017753728, z: 0.000046300593, w: -0.0026075034} + scale: {x: 1, y: 1, z: 1} + - name: Left_LowerLeg + parentName: Left_UpperLeg + position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17} + rotation: {x: 0.034046084, y: 0.0000000024447215, z: -0.0000000074505797, w: 0.9994202} + scale: {x: 1, y: 1.0000006, z: 1.0000006} + - name: Left_Foot + parentName: Left_LowerLeg + position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 0.9999998, z: 0.9999998} + - name: Left_Toes + parentName: Left_Foot + position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506} + rotation: {x: -0.70710677, y: -0.0000000074505815, z: 0.000000003143214, w: 0.7071068} + scale: {x: 1.0000001, y: 1.0000001, z: 1} + - name: Left_ToesEnd + parentName: Left_Toes + position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978} + rotation: {x: 0.7070656, y: -0.0076322434, z: -0.0076322514, w: 0.70706564} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperLeg + parentName: Hips + position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475} + rotation: {x: 0.0026075034, y: 0.000046300593, z: 0.017753728, w: 0.999839} + scale: {x: 1, y: 1, z: 1} + - name: Right_LowerLeg + parentName: Right_UpperLeg + position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435} + rotation: {x: 0.034046084, y: 0.0000000024228937, z: -0.0000000073384845, w: 0.9994202} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Right_Foot + parentName: Right_LowerLeg + position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Right_Toes + parentName: Right_Foot + position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807} + rotation: {x: -0.7071068, y: -0.0000000037252903, z: -0.0000000013969839, w: 0.7071067} + scale: {x: 1.0000001, y: 1.0000005, z: 1.0000004} + - name: Right_ToesEnd + parentName: Right_Toes + position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898} + rotation: {x: 0.70706564, y: -0.0076322462, z: -0.007632248, w: 0.7070655} + scale: {x: 1, y: 1, z: 1} + - name: Geometry + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Armature_Mesh + parentName: Geometry + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 1 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 1 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: f7f7cd4abe3f02e4e8b99b5a070db992, type: 3} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 2 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/ThirdParty/AnimationClips/Walk Strafe Left.fbx b/Samples/ThirdParty/AnimationClips/Walk Strafe Left.fbx new file mode 100644 index 00000000..5f5f9e33 Binary files /dev/null and b/Samples/ThirdParty/AnimationClips/Walk Strafe Left.fbx differ diff --git a/Samples/ThirdParty/AnimationClips/Walk Strafe Left.fbx.meta b/Samples/ThirdParty/AnimationClips/Walk Strafe Left.fbx.meta new file mode 100644 index 00000000..83adf72d --- /dev/null +++ b/Samples/ThirdParty/AnimationClips/Walk Strafe Left.fbx.meta @@ -0,0 +1,971 @@ +fileFormatVersion: 2 +guid: 7606744596dccd148a86226a628960ce +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 3 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: Walk Strafe Left mixamo.com + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 44 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: Hips + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperLeg + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperLeg + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerLeg + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerLeg + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Foot + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Foot + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Spine + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Chest + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Neck + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Head + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Shoulder + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Shoulder + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperArm + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperArm + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerArm + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerArm + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Hand + humanName: LeftHand + limit: + min: {x: 0, y: -180, z: -180} + max: {x: 0, y: 180, z: 180} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 1 + - boneName: Right_Hand + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Toes + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Toes + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbProximal + humanName: Left Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbIntermediate + humanName: Left Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbDistal + humanName: Left Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexProximal + humanName: Left Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexIntermediate + humanName: Left Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexDistal + humanName: Left Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleProximal + humanName: Left Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleIntermediate + humanName: Left Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleDistal + humanName: Left Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingProximal + humanName: Left Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingIntermediate + humanName: Left Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingDistal + humanName: Left Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyProximal + humanName: Left Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyIntermediate + humanName: Left Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyDistal + humanName: Left Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbProximal + humanName: Right Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbIntermediate + humanName: Right Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbDistal + humanName: Right Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexProximal + humanName: Right Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexIntermediate + humanName: Right Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexDistal + humanName: Right Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleProximal + humanName: Right Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleIntermediate + humanName: Right Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleDistal + humanName: Right Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingProximal + humanName: Right Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingIntermediate + humanName: Right Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingDistal + humanName: Right Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyProximal + humanName: Right Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyIntermediate + humanName: Right Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyDistal + humanName: Right Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: UpperChest + humanName: UpperChest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: ArmatureSkinningUpdate(Clone) + parentName: + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Skeleton + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Hips + parentName: Skeleton + position: {x: -0, y: 0.9810986, z: -0.01590455} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Spine + parentName: Hips + position: {x: -0, y: 0.058229383, z: 0.0012229546} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Chest + parentName: Spine + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: UpperChest + parentName: Chest + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Neck + parentName: UpperChest + position: {x: -0, y: 0.25104657, z: -0.015329581} + rotation: {x: 0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Head + parentName: Neck + position: {x: -0, y: 0.12747401, z: 0} + rotation: {x: -0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Right_Eye + parentName: Head + position: {x: 0.033303294, y: 0.03459628, z: 0.0867403} + rotation: {x: 0.7071068, y: 0.0000000037252903, z: 0.7071068, w: 0.0000000037252903} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_Eye + parentName: Head + position: {x: -0.03330326, y: 0.034598116, z: 0.0867403} + rotation: {x: -0.0000000037252903, y: 0.7071068, z: -0.0000000037252903, w: 0.7071068} + scale: {x: 1.0000002, y: 1, z: 1.0000002} + - name: Jaw + parentName: Head + position: {x: -0, y: -0.00763539, z: 0.012895278} + rotation: {x: 0.15949221, y: 0.6888848, z: 0.15949221, w: 0.68888485} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Neck_Twist_A + parentName: Neck + position: {x: -0, y: 0.063737005, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Left_Shoulder + parentName: UpperChest + position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} + rotation: {x: -0.004949423, y: -0.1135221, z: 0.043275435, w: 0.99258024} + scale: {x: 1, y: 1.0000001, z: 1} + - name: Left_UpperArm + parentName: Left_Shoulder + position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17} + rotation: {x: 0.12673515, y: 0.033320952, z: 0.6809722, w: 0.7204892} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Left_LowerArm + parentName: Left_UpperArm + position: {x: -2.8421706e-16, y: 0.28508067, z: 0} + rotation: {x: 0.020536324, y: 0.00832123, z: -0.02062474, w: 0.99954176} + scale: {x: 1.0000004, y: 1.0000004, z: 1} + - name: Left_Hand + parentName: Left_LowerArm + position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16} + rotation: {x: -0.047397543, y: -0.24003612, z: 0.013464515, w: 0.96951276} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000002} + - name: Left_PinkyProximal + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: -0.020071255, y: -0.55048937, z: -0.008245589, w: 0.83456016} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_PinkyIntermediate + parentName: Left_PinkyProximal + position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16} + rotation: {x: 0.028114945, y: 0.00000017881392, z: 0.0000004107132, w: 0.9996047} + scale: {x: 0.99999994, y: 1.0000005, z: 1.0000006} + - name: Left_PinkyDistal + parentName: Left_PinkyIntermediate + position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17} + rotation: {x: 0.036441054, y: 0.0000003874126, z: -0.00000053796356, w: 0.9993358} + scale: {x: 1.0000005, y: 1.0000011, z: 1.000001} + - name: Left_PinkyDistalEnd + parentName: Left_PinkyDistal + position: {x: -1.2434495e-16, y: 0.018519057, z: 0} + rotation: {x: -0.000000014901156, y: -0, z: -1.421085e-14, w: 1} + scale: {x: 1.0000002, y: 1.0000001, z: 0.99999994} + - name: Left_RingProximal + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: -0.017654492, y: -0.602699, z: -0.0040542856, w: 0.7977631} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_RingIntermediate + parentName: Left_RingProximal + position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16} + rotation: {x: 0.023558479, y: -0.000000059604616, z: 0.00000016763798, w: 0.9997225} + scale: {x: 1.0000001, y: 1.0000008, z: 1.0000007} + - name: Left_RingDistal + parentName: Left_RingIntermediate + position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16} + rotation: {x: 0.039085917, y: 0.000000047564775, z: -0.00000023156034, w: 0.99923587} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000005} + - name: Left_RingDistalEnd + parentName: Left_RingDistal + position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: 5.329069e-15, w: 1} + scale: {x: 0.99999994, y: 0.9999998, z: 1} + - name: Left_MiddleProximal + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: -0.004091014, y: -0.66108054, z: -0.004002313, w: 0.7502931} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_MiddleIntermediate + parentName: Left_MiddleProximal + position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17} + rotation: {x: 0.026229925, y: 0.000000089406946, z: 0.0000011208465, w: 0.99965596} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000006} + - name: Left_MiddleDistal + parentName: Left_MiddleIntermediate + position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17} + rotation: {x: 0.033475332, y: 0.00000015209851, z: -0.000000009192755, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 0.9999997} + - name: Left_MiddleDistalEnd + parentName: Left_MiddleDistal + position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: -4.4408905e-16, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000001} + - name: Left_IndexProximal + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: -0.00008071024, y: -0.7104802, z: -0.0063063996, w: 0.70368886} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_IndexIntermediate + parentName: Left_IndexProximal + position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16} + rotation: {x: 0.03019868, y: -0.000000029802326, z: -0.0000008903808, w: 0.99954396} + scale: {x: 1, y: 1.0000005, z: 1.0000005} + - name: Left_IndexDistal + parentName: Left_IndexIntermediate + position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16} + rotation: {x: 0.039457045, y: -0.000000010711526, z: 0.00000045662225, w: 0.99922127} + scale: {x: 1, y: 1.0000005, z: 1.0000002} + - name: Left_IndexDistalEnd + parentName: Left_IndexDistal + position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17} + rotation: {x: -0, y: -0, z: 2.2204452e-15, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000002} + - name: Left_ThumbProximal + parentName: Left_Hand + position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476} + rotation: {x: -0.17960364, y: -0.8841738, z: -0.42399, w: 0.078814216} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001} + - name: Left_ThumbIntermediate + parentName: Left_ThumbProximal + position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592} + rotation: {x: 0.12780568, y: -0.00000020116563, z: -0.000000014901158, w: 0.9917993} + scale: {x: 1.0000001, y: 0.99999994, z: 0.99999994} + - name: Left_ThumbDistal + parentName: Left_ThumbIntermediate + position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915} + rotation: {x: -0.045419924, y: 0.0000007949222, z: 0.00000046266297, w: 0.998968} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Left_ThumbDistalEnd + parentName: Left_ThumbDistal + position: {x: -4.2632555e-16, y: 0.029458016, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.9999998, z: 0.99999994} + - name: Left_PinkyProximalDef + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: 0.0066042603, y: -0.5050903, z: 0.37113702, w: 0.7791646} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_RingProximalDef + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: 0.035572164, y: -0.56915504, z: 0.30658576, w: 0.76210386} + scale: {x: 1.0000002, y: 1.0000007, z: 1.0000005} + - name: Left_MiddleProximalDef + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: 0.095934115, y: -0.6426919, z: 0.21124849, w: 0.7301492} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_IndexProximalDef + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: 0.13385344, y: -0.6899346, z: 0.20177333, w: 0.6821737} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_ThumbIntermediateDef + parentName: Left_Hand + position: {x: -0.0132574225, y: 0.0502166, z: 0.036247443} + rotation: {x: 0.22855456, y: -0.91963416, z: -0.31812134, w: -0.02889162} + scale: {x: 1.0000006, y: 1.0000004, z: 1.0000002} + - name: Left_LowerArmEnd + parentName: Left_LowerArm + position: {x: -2.4123806e-10, y: 0.24036221, z: -2.842171e-16} + rotation: {x: -0.000000029802315, y: -0, z: 2.6645346e-15, w: 1} + scale: {x: 1.0000004, y: 1.0000002, z: 1} + - name: Right_Shoulder + parentName: UpperChest + position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} + rotation: {x: 0.99258024, y: -0.043275435, z: -0.1135221, w: 0.004949424} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperArm + parentName: Right_Shoulder + position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746} + rotation: {x: -0.12673455, y: -0.033321112, z: -0.6809673, w: -0.7204941} + scale: {x: 0.9999999, y: 0.99999976, z: 1.0000002} + - name: Right_LowerArm + parentName: Right_UpperArm + position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226} + rotation: {x: 0.020537077, y: 0.008318591, z: -0.020618176, w: 0.9995418} + scale: {x: 1.0000005, y: 1.0000001, z: 1.0000001} + - name: Right_Hand + parentName: Right_LowerArm + position: {x: -0, y: -0.24036367, z: 0} + rotation: {x: -0.047397524, y: -0.24003613, z: 0.013464563, w: 0.9695127} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000006} + - name: Right_PinkyProximal + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: -0.020056283, y: -0.5504963, z: -0.008250083, w: 0.83455586} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_PinkyIntermediate + parentName: Right_PinkyProximal + position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623} + rotation: {x: 0.02811506, y: -0.0000030398364, z: 0.000002180226, w: 0.9996047} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000006} + - name: Right_PinkyDistal + parentName: Right_PinkyIntermediate + position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345} + rotation: {x: 0.036424562, y: -0.0000020630353, z: -0.000008972234, w: 0.9993364} + scale: {x: 1, y: 0.9999998, z: 1.0000001} + - name: Right_PinkyDistalEnd + parentName: Right_PinkyDistal + position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108} + rotation: {x: -0, y: -0, z: -3.5527133e-15, w: 1} + scale: {x: 1.0000002, y: 1, z: 1.0000001} + - name: Right_RingProximal + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: -0.017648041, y: -0.60270077, z: -0.004054018, w: 0.79776186} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_RingIntermediate + parentName: Right_RingProximal + position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335} + rotation: {x: 0.02354795, y: 0.0000019669526, z: 0.000006956046, w: 0.9997227} + scale: {x: 0.99999994, y: 0.99999994, z: 1} + - name: Right_RingDistal + parentName: Right_RingIntermediate + position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098} + rotation: {x: 0.039102394, y: 0.00000033448705, z: -0.0000046869313, w: 0.9992352} + scale: {x: 1.0000001, y: 0.99999994, z: 1.0000002} + - name: Right_RingDistalEnd + parentName: Right_RingDistal + position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459} + rotation: {x: -0, y: -0, z: -3.9968025e-15, w: 1} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Right_MiddleProximal + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: -0.0040832064, y: -0.6610816, z: -0.0039998735, w: 0.75029224} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_MiddleIntermediate + parentName: Right_MiddleProximal + position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695} + rotation: {x: 0.02622648, y: -0.0000009238719, z: -0.0000023830214, w: 0.9996561} + scale: {x: 0.99999994, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistal + parentName: Right_MiddleIntermediate + position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916} + rotation: {x: 0.03347536, y: 0.00000011190659, z: -0.000000035817987, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistalEnd + parentName: Right_MiddleDistal + position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584} + rotation: {x: -0, y: -0, z: -1.7763562e-15, w: 1} + scale: {x: 1.0000002, y: 0.99999994, z: 0.99999994} + - name: Right_IndexProximal + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: -0.00008950194, y: -0.71048063, z: -0.006329643, w: 0.70368826} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexIntermediate + parentName: Right_IndexProximal + position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077} + rotation: {x: 0.030205265, y: -0.00000023841855, z: 0.000011867056, w: 0.9995437} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001} + - name: Right_IndexDistal + parentName: Right_IndexIntermediate + position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629} + rotation: {x: 0.039483186, y: 0.00000044864683, z: -0.000006141602, w: 0.99922025} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexDistalEnd + parentName: Right_IndexDistal + position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131} + rotation: {x: -0, y: -0, z: -5.3290705e-15, w: 1} + scale: {x: 1.0000001, y: 1, z: 0.99999994} + - name: Right_ThumbProximal + parentName: Right_Hand + position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695} + rotation: {x: -0.17960693, y: -0.88417095, z: -0.4239946, w: 0.07881383} + scale: {x: 1, y: 0.9999997, z: 1.0000004} + - name: Right_ThumbIntermediate + parentName: Right_ThumbProximal + position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848} + rotation: {x: 0.1278056, y: -0.00000038743013, z: -0.000000014901159, w: 0.9917993} + scale: {x: 1.0000001, y: 1.0000002, z: 1.0000004} + - name: Right_ThumbDistal + parentName: Right_ThumbIntermediate + position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783} + rotation: {x: -0.045420226, y: -0.000002421734, z: 0.000001035943, w: 0.998968} + scale: {x: 1.0000001, y: 0.9999998, z: 0.99999994} + - name: Right_ThumbDistalEnd + parentName: Right_ThumbDistal + position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683} + rotation: {x: -0, y: 0.00000014403909, z: -0.0000000134323095, w: 1} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Right_PinkyProximalDef + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: 0.006604309, y: -0.50509036, z: 0.37113705, w: 0.7791645} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000001} + - name: Right_RingProximalDef + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: 0.035572305, y: -0.56915504, z: 0.3065858, w: 0.7621038} + scale: {x: 0.99999994, y: 1, z: 1.0000002} + - name: Right_MiddleProximalDef + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: 0.09593412, y: -0.642692, z: 0.21124847, w: 0.7301492} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_IndexProximalDef + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: 0.13385352, y: -0.6899346, z: 0.20177332, w: 0.6821737} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_ThumbIntermediateDef + parentName: Right_Hand + position: {x: 0.013255546, y: -0.050215878, z: -0.036247417} + rotation: {x: 0.22855446, y: -0.91963416, z: -0.31812134, w: -0.02889147} + scale: {x: 1.0000001, y: 0.9999998, z: 1.0000004} + - name: Right_LowerArmEnd + parentName: Right_LowerArm + position: {x: 1.4210854e-16, y: -0.24036367, z: 7.105427e-17} + rotation: {x: -0, y: -0, z: -1.7763568e-15, w: 1} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000004} + - name: Left_UpperLeg + parentName: Hips + position: {x: -0.08610317, y: -0.053458035, z: -0.011470641} + rotation: {x: 0.999839, y: -0.017753728, z: 0.000046300593, w: -0.0026075034} + scale: {x: 1, y: 1, z: 1} + - name: Left_LowerLeg + parentName: Left_UpperLeg + position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17} + rotation: {x: 0.034046084, y: 0.0000000024447215, z: -0.0000000074505797, w: 0.9994202} + scale: {x: 1, y: 1.0000006, z: 1.0000006} + - name: Left_Foot + parentName: Left_LowerLeg + position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 0.9999998, z: 0.9999998} + - name: Left_Toes + parentName: Left_Foot + position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506} + rotation: {x: -0.70710677, y: -0.0000000074505815, z: 0.000000003143214, w: 0.7071068} + scale: {x: 1.0000001, y: 1.0000001, z: 1} + - name: Left_ToesEnd + parentName: Left_Toes + position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978} + rotation: {x: 0.7070656, y: -0.0076322434, z: -0.0076322514, w: 0.70706564} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperLeg + parentName: Hips + position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475} + rotation: {x: 0.0026075034, y: 0.000046300593, z: 0.017753728, w: 0.999839} + scale: {x: 1, y: 1, z: 1} + - name: Right_LowerLeg + parentName: Right_UpperLeg + position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435} + rotation: {x: 0.034046084, y: 0.0000000024228937, z: -0.0000000073384845, w: 0.9994202} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Right_Foot + parentName: Right_LowerLeg + position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Right_Toes + parentName: Right_Foot + position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807} + rotation: {x: -0.7071068, y: -0.0000000037252903, z: -0.0000000013969839, w: 0.7071067} + scale: {x: 1.0000001, y: 1.0000005, z: 1.0000004} + - name: Right_ToesEnd + parentName: Right_Toes + position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898} + rotation: {x: 0.70706564, y: -0.0076322462, z: -0.007632248, w: 0.7070655} + scale: {x: 1, y: 1, z: 1} + - name: Geometry + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Armature_Mesh + parentName: Geometry + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 1 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 1 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: f7f7cd4abe3f02e4e8b99b5a070db992, type: 3} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 2 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/ThirdParty/AnimationClips/Walk Strafe Right.fbx b/Samples/ThirdParty/AnimationClips/Walk Strafe Right.fbx new file mode 100644 index 00000000..16c9354c Binary files /dev/null and b/Samples/ThirdParty/AnimationClips/Walk Strafe Right.fbx differ diff --git a/Samples/ThirdParty/AnimationClips/Walk Strafe Right.fbx.meta b/Samples/ThirdParty/AnimationClips/Walk Strafe Right.fbx.meta new file mode 100644 index 00000000..5016f2cc --- /dev/null +++ b/Samples/ThirdParty/AnimationClips/Walk Strafe Right.fbx.meta @@ -0,0 +1,971 @@ +fileFormatVersion: 2 +guid: a3d66b800dd7c2f42aa5710773bf7542 +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 3 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: Walk Strafe Right mixamo.com + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 44 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: Hips + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperLeg + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperLeg + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerLeg + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerLeg + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Foot + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Foot + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Spine + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Chest + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Neck + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Head + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Shoulder + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Shoulder + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperArm + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperArm + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerArm + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerArm + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Hand + humanName: LeftHand + limit: + min: {x: 0, y: -180, z: -180} + max: {x: 0, y: 180, z: 180} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 1 + - boneName: Right_Hand + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Toes + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Toes + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbProximal + humanName: Left Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbIntermediate + humanName: Left Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbDistal + humanName: Left Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexProximal + humanName: Left Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexIntermediate + humanName: Left Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexDistal + humanName: Left Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleProximal + humanName: Left Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleIntermediate + humanName: Left Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleDistal + humanName: Left Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingProximal + humanName: Left Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingIntermediate + humanName: Left Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingDistal + humanName: Left Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyProximal + humanName: Left Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyIntermediate + humanName: Left Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyDistal + humanName: Left Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbProximal + humanName: Right Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbIntermediate + humanName: Right Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbDistal + humanName: Right Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexProximal + humanName: Right Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexIntermediate + humanName: Right Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexDistal + humanName: Right Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleProximal + humanName: Right Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleIntermediate + humanName: Right Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleDistal + humanName: Right Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingProximal + humanName: Right Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingIntermediate + humanName: Right Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingDistal + humanName: Right Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyProximal + humanName: Right Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyIntermediate + humanName: Right Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyDistal + humanName: Right Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: UpperChest + humanName: UpperChest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: ArmatureSkinningUpdate(Clone) + parentName: + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Skeleton + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Hips + parentName: Skeleton + position: {x: -0, y: 0.9810986, z: -0.01590455} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Spine + parentName: Hips + position: {x: -0, y: 0.058229383, z: 0.0012229546} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Chest + parentName: Spine + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: UpperChest + parentName: Chest + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Neck + parentName: UpperChest + position: {x: -0, y: 0.25104657, z: -0.015329581} + rotation: {x: 0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Head + parentName: Neck + position: {x: -0, y: 0.12747401, z: 0} + rotation: {x: -0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Right_Eye + parentName: Head + position: {x: 0.033303294, y: 0.03459628, z: 0.0867403} + rotation: {x: 0.7071068, y: 0.0000000037252903, z: 0.7071068, w: 0.0000000037252903} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_Eye + parentName: Head + position: {x: -0.03330326, y: 0.034598116, z: 0.0867403} + rotation: {x: -0.0000000037252903, y: 0.7071068, z: -0.0000000037252903, w: 0.7071068} + scale: {x: 1.0000002, y: 1, z: 1.0000002} + - name: Jaw + parentName: Head + position: {x: -0, y: -0.00763539, z: 0.012895278} + rotation: {x: 0.15949221, y: 0.6888848, z: 0.15949221, w: 0.68888485} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Neck_Twist_A + parentName: Neck + position: {x: -0, y: 0.063737005, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Left_Shoulder + parentName: UpperChest + position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} + rotation: {x: -0.004949423, y: -0.1135221, z: 0.043275435, w: 0.99258024} + scale: {x: 1, y: 1.0000001, z: 1} + - name: Left_UpperArm + parentName: Left_Shoulder + position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17} + rotation: {x: 0.12673515, y: 0.033320952, z: 0.6809722, w: 0.7204892} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Left_LowerArm + parentName: Left_UpperArm + position: {x: -2.8421706e-16, y: 0.28508067, z: 0} + rotation: {x: 0.020536324, y: 0.00832123, z: -0.02062474, w: 0.99954176} + scale: {x: 1.0000004, y: 1.0000004, z: 1} + - name: Left_Hand + parentName: Left_LowerArm + position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16} + rotation: {x: -0.047397543, y: -0.24003612, z: 0.013464515, w: 0.96951276} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000002} + - name: Left_PinkyProximal + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: -0.020071255, y: -0.55048937, z: -0.008245589, w: 0.83456016} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_PinkyIntermediate + parentName: Left_PinkyProximal + position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16} + rotation: {x: 0.028114945, y: 0.00000017881392, z: 0.0000004107132, w: 0.9996047} + scale: {x: 0.99999994, y: 1.0000005, z: 1.0000006} + - name: Left_PinkyDistal + parentName: Left_PinkyIntermediate + position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17} + rotation: {x: 0.036441054, y: 0.0000003874126, z: -0.00000053796356, w: 0.9993358} + scale: {x: 1.0000005, y: 1.0000011, z: 1.000001} + - name: Left_PinkyDistalEnd + parentName: Left_PinkyDistal + position: {x: -1.2434495e-16, y: 0.018519057, z: 0} + rotation: {x: -0.000000014901156, y: -0, z: -1.421085e-14, w: 1} + scale: {x: 1.0000002, y: 1.0000001, z: 0.99999994} + - name: Left_RingProximal + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: -0.017654492, y: -0.602699, z: -0.0040542856, w: 0.7977631} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_RingIntermediate + parentName: Left_RingProximal + position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16} + rotation: {x: 0.023558479, y: -0.000000059604616, z: 0.00000016763798, w: 0.9997225} + scale: {x: 1.0000001, y: 1.0000008, z: 1.0000007} + - name: Left_RingDistal + parentName: Left_RingIntermediate + position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16} + rotation: {x: 0.039085917, y: 0.000000047564775, z: -0.00000023156034, w: 0.99923587} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000005} + - name: Left_RingDistalEnd + parentName: Left_RingDistal + position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: 5.329069e-15, w: 1} + scale: {x: 0.99999994, y: 0.9999998, z: 1} + - name: Left_MiddleProximal + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: -0.004091014, y: -0.66108054, z: -0.004002313, w: 0.7502931} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_MiddleIntermediate + parentName: Left_MiddleProximal + position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17} + rotation: {x: 0.026229925, y: 0.000000089406946, z: 0.0000011208465, w: 0.99965596} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000006} + - name: Left_MiddleDistal + parentName: Left_MiddleIntermediate + position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17} + rotation: {x: 0.033475332, y: 0.00000015209851, z: -0.000000009192755, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 0.9999997} + - name: Left_MiddleDistalEnd + parentName: Left_MiddleDistal + position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: -4.4408905e-16, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000001} + - name: Left_IndexProximal + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: -0.00008071024, y: -0.7104802, z: -0.0063063996, w: 0.70368886} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_IndexIntermediate + parentName: Left_IndexProximal + position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16} + rotation: {x: 0.03019868, y: -0.000000029802326, z: -0.0000008903808, w: 0.99954396} + scale: {x: 1, y: 1.0000005, z: 1.0000005} + - name: Left_IndexDistal + parentName: Left_IndexIntermediate + position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16} + rotation: {x: 0.039457045, y: -0.000000010711526, z: 0.00000045662225, w: 0.99922127} + scale: {x: 1, y: 1.0000005, z: 1.0000002} + - name: Left_IndexDistalEnd + parentName: Left_IndexDistal + position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17} + rotation: {x: -0, y: -0, z: 2.2204452e-15, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000002} + - name: Left_ThumbProximal + parentName: Left_Hand + position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476} + rotation: {x: -0.17960364, y: -0.8841738, z: -0.42399, w: 0.078814216} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001} + - name: Left_ThumbIntermediate + parentName: Left_ThumbProximal + position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592} + rotation: {x: 0.12780568, y: -0.00000020116563, z: -0.000000014901158, w: 0.9917993} + scale: {x: 1.0000001, y: 0.99999994, z: 0.99999994} + - name: Left_ThumbDistal + parentName: Left_ThumbIntermediate + position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915} + rotation: {x: -0.045419924, y: 0.0000007949222, z: 0.00000046266297, w: 0.998968} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Left_ThumbDistalEnd + parentName: Left_ThumbDistal + position: {x: -4.2632555e-16, y: 0.029458016, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.9999998, z: 0.99999994} + - name: Left_PinkyProximalDef + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: 0.0066042603, y: -0.5050903, z: 0.37113702, w: 0.7791646} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_RingProximalDef + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: 0.035572164, y: -0.56915504, z: 0.30658576, w: 0.76210386} + scale: {x: 1.0000002, y: 1.0000007, z: 1.0000005} + - name: Left_MiddleProximalDef + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: 0.095934115, y: -0.6426919, z: 0.21124849, w: 0.7301492} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_IndexProximalDef + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: 0.13385344, y: -0.6899346, z: 0.20177333, w: 0.6821737} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_ThumbIntermediateDef + parentName: Left_Hand + position: {x: -0.0132574225, y: 0.0502166, z: 0.036247443} + rotation: {x: 0.22855456, y: -0.91963416, z: -0.31812134, w: -0.02889162} + scale: {x: 1.0000006, y: 1.0000004, z: 1.0000002} + - name: Left_LowerArmEnd + parentName: Left_LowerArm + position: {x: -2.4123806e-10, y: 0.24036221, z: -2.842171e-16} + rotation: {x: -0.000000029802315, y: -0, z: 2.6645346e-15, w: 1} + scale: {x: 1.0000004, y: 1.0000002, z: 1} + - name: Right_Shoulder + parentName: UpperChest + position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} + rotation: {x: 0.99258024, y: -0.043275435, z: -0.1135221, w: 0.004949424} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperArm + parentName: Right_Shoulder + position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746} + rotation: {x: -0.12673455, y: -0.033321112, z: -0.6809673, w: -0.7204941} + scale: {x: 0.9999999, y: 0.99999976, z: 1.0000002} + - name: Right_LowerArm + parentName: Right_UpperArm + position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226} + rotation: {x: 0.020537077, y: 0.008318591, z: -0.020618176, w: 0.9995418} + scale: {x: 1.0000005, y: 1.0000001, z: 1.0000001} + - name: Right_Hand + parentName: Right_LowerArm + position: {x: -0, y: -0.24036367, z: 0} + rotation: {x: -0.047397524, y: -0.24003613, z: 0.013464563, w: 0.9695127} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000006} + - name: Right_PinkyProximal + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: -0.020056283, y: -0.5504963, z: -0.008250083, w: 0.83455586} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_PinkyIntermediate + parentName: Right_PinkyProximal + position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623} + rotation: {x: 0.02811506, y: -0.0000030398364, z: 0.000002180226, w: 0.9996047} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000006} + - name: Right_PinkyDistal + parentName: Right_PinkyIntermediate + position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345} + rotation: {x: 0.036424562, y: -0.0000020630353, z: -0.000008972234, w: 0.9993364} + scale: {x: 1, y: 0.9999998, z: 1.0000001} + - name: Right_PinkyDistalEnd + parentName: Right_PinkyDistal + position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108} + rotation: {x: -0, y: -0, z: -3.5527133e-15, w: 1} + scale: {x: 1.0000002, y: 1, z: 1.0000001} + - name: Right_RingProximal + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: -0.017648041, y: -0.60270077, z: -0.004054018, w: 0.79776186} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_RingIntermediate + parentName: Right_RingProximal + position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335} + rotation: {x: 0.02354795, y: 0.0000019669526, z: 0.000006956046, w: 0.9997227} + scale: {x: 0.99999994, y: 0.99999994, z: 1} + - name: Right_RingDistal + parentName: Right_RingIntermediate + position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098} + rotation: {x: 0.039102394, y: 0.00000033448705, z: -0.0000046869313, w: 0.9992352} + scale: {x: 1.0000001, y: 0.99999994, z: 1.0000002} + - name: Right_RingDistalEnd + parentName: Right_RingDistal + position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459} + rotation: {x: -0, y: -0, z: -3.9968025e-15, w: 1} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Right_MiddleProximal + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: -0.0040832064, y: -0.6610816, z: -0.0039998735, w: 0.75029224} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_MiddleIntermediate + parentName: Right_MiddleProximal + position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695} + rotation: {x: 0.02622648, y: -0.0000009238719, z: -0.0000023830214, w: 0.9996561} + scale: {x: 0.99999994, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistal + parentName: Right_MiddleIntermediate + position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916} + rotation: {x: 0.03347536, y: 0.00000011190659, z: -0.000000035817987, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistalEnd + parentName: Right_MiddleDistal + position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584} + rotation: {x: -0, y: -0, z: -1.7763562e-15, w: 1} + scale: {x: 1.0000002, y: 0.99999994, z: 0.99999994} + - name: Right_IndexProximal + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: -0.00008950194, y: -0.71048063, z: -0.006329643, w: 0.70368826} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexIntermediate + parentName: Right_IndexProximal + position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077} + rotation: {x: 0.030205265, y: -0.00000023841855, z: 0.000011867056, w: 0.9995437} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001} + - name: Right_IndexDistal + parentName: Right_IndexIntermediate + position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629} + rotation: {x: 0.039483186, y: 0.00000044864683, z: -0.000006141602, w: 0.99922025} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexDistalEnd + parentName: Right_IndexDistal + position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131} + rotation: {x: -0, y: -0, z: -5.3290705e-15, w: 1} + scale: {x: 1.0000001, y: 1, z: 0.99999994} + - name: Right_ThumbProximal + parentName: Right_Hand + position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695} + rotation: {x: -0.17960693, y: -0.88417095, z: -0.4239946, w: 0.07881383} + scale: {x: 1, y: 0.9999997, z: 1.0000004} + - name: Right_ThumbIntermediate + parentName: Right_ThumbProximal + position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848} + rotation: {x: 0.1278056, y: -0.00000038743013, z: -0.000000014901159, w: 0.9917993} + scale: {x: 1.0000001, y: 1.0000002, z: 1.0000004} + - name: Right_ThumbDistal + parentName: Right_ThumbIntermediate + position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783} + rotation: {x: -0.045420226, y: -0.000002421734, z: 0.000001035943, w: 0.998968} + scale: {x: 1.0000001, y: 0.9999998, z: 0.99999994} + - name: Right_ThumbDistalEnd + parentName: Right_ThumbDistal + position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683} + rotation: {x: -0, y: 0.00000014403909, z: -0.0000000134323095, w: 1} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Right_PinkyProximalDef + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: 0.006604309, y: -0.50509036, z: 0.37113705, w: 0.7791645} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000001} + - name: Right_RingProximalDef + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: 0.035572305, y: -0.56915504, z: 0.3065858, w: 0.7621038} + scale: {x: 0.99999994, y: 1, z: 1.0000002} + - name: Right_MiddleProximalDef + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: 0.09593412, y: -0.642692, z: 0.21124847, w: 0.7301492} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_IndexProximalDef + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: 0.13385352, y: -0.6899346, z: 0.20177332, w: 0.6821737} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_ThumbIntermediateDef + parentName: Right_Hand + position: {x: 0.013255546, y: -0.050215878, z: -0.036247417} + rotation: {x: 0.22855446, y: -0.91963416, z: -0.31812134, w: -0.02889147} + scale: {x: 1.0000001, y: 0.9999998, z: 1.0000004} + - name: Right_LowerArmEnd + parentName: Right_LowerArm + position: {x: 1.4210854e-16, y: -0.24036367, z: 7.105427e-17} + rotation: {x: -0, y: -0, z: -1.7763568e-15, w: 1} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000004} + - name: Left_UpperLeg + parentName: Hips + position: {x: -0.08610317, y: -0.053458035, z: -0.011470641} + rotation: {x: 0.999839, y: -0.017753728, z: 0.000046300593, w: -0.0026075034} + scale: {x: 1, y: 1, z: 1} + - name: Left_LowerLeg + parentName: Left_UpperLeg + position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17} + rotation: {x: 0.034046084, y: 0.0000000024447215, z: -0.0000000074505797, w: 0.9994202} + scale: {x: 1, y: 1.0000006, z: 1.0000006} + - name: Left_Foot + parentName: Left_LowerLeg + position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 0.9999998, z: 0.9999998} + - name: Left_Toes + parentName: Left_Foot + position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506} + rotation: {x: -0.70710677, y: -0.0000000074505815, z: 0.000000003143214, w: 0.7071068} + scale: {x: 1.0000001, y: 1.0000001, z: 1} + - name: Left_ToesEnd + parentName: Left_Toes + position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978} + rotation: {x: 0.7070656, y: -0.0076322434, z: -0.0076322514, w: 0.70706564} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperLeg + parentName: Hips + position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475} + rotation: {x: 0.0026075034, y: 0.000046300593, z: 0.017753728, w: 0.999839} + scale: {x: 1, y: 1, z: 1} + - name: Right_LowerLeg + parentName: Right_UpperLeg + position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435} + rotation: {x: 0.034046084, y: 0.0000000024228937, z: -0.0000000073384845, w: 0.9994202} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Right_Foot + parentName: Right_LowerLeg + position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Right_Toes + parentName: Right_Foot + position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807} + rotation: {x: -0.7071068, y: -0.0000000037252903, z: -0.0000000013969839, w: 0.7071067} + scale: {x: 1.0000001, y: 1.0000005, z: 1.0000004} + - name: Right_ToesEnd + parentName: Right_Toes + position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898} + rotation: {x: 0.70706564, y: -0.0076322462, z: -0.007632248, w: 0.7070655} + scale: {x: 1, y: 1, z: 1} + - name: Geometry + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Armature_Mesh + parentName: Geometry + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 1 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 1 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: f7f7cd4abe3f02e4e8b99b5a070db992, type: 3} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 2 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples/ThirdParty/AnimationClips/Walk.fbx b/Samples/ThirdParty/AnimationClips/Walk.fbx new file mode 100644 index 00000000..861648a3 Binary files /dev/null and b/Samples/ThirdParty/AnimationClips/Walk.fbx differ diff --git a/Samples/ThirdParty/AnimationClips/Walk.fbx.meta b/Samples/ThirdParty/AnimationClips/Walk.fbx.meta new file mode 100644 index 00000000..24b08480 --- /dev/null +++ b/Samples/ThirdParty/AnimationClips/Walk.fbx.meta @@ -0,0 +1,971 @@ +fileFormatVersion: 2 +guid: 866d1a7bd0785bb4b86b91fa35345c9a +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 3 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: + - serializedVersion: 16 + name: Walk Foward mixamo.com + takeName: mixamo.com + internalID: -203655887218126122 + firstFrame: 0 + lastFrame: 33 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 1 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: Hips + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperLeg + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperLeg + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerLeg + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerLeg + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Foot + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Foot + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Spine + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Chest + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Neck + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Head + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Shoulder + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Shoulder + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_UpperArm + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_UpperArm + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_LowerArm + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_LowerArm + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Hand + humanName: LeftHand + limit: + min: {x: 0, y: -180, z: -180} + max: {x: 0, y: 180, z: 180} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 1 + - boneName: Right_Hand + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_Toes + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_Toes + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbProximal + humanName: Left Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbIntermediate + humanName: Left Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_ThumbDistal + humanName: Left Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexProximal + humanName: Left Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexIntermediate + humanName: Left Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_IndexDistal + humanName: Left Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleProximal + humanName: Left Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleIntermediate + humanName: Left Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_MiddleDistal + humanName: Left Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingProximal + humanName: Left Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingIntermediate + humanName: Left Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_RingDistal + humanName: Left Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyProximal + humanName: Left Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyIntermediate + humanName: Left Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Left_PinkyDistal + humanName: Left Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbProximal + humanName: Right Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbIntermediate + humanName: Right Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_ThumbDistal + humanName: Right Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexProximal + humanName: Right Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexIntermediate + humanName: Right Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_IndexDistal + humanName: Right Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleProximal + humanName: Right Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleIntermediate + humanName: Right Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_MiddleDistal + humanName: Right Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingProximal + humanName: Right Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingIntermediate + humanName: Right Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_RingDistal + humanName: Right Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyProximal + humanName: Right Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyIntermediate + humanName: Right Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: Right_PinkyDistal + humanName: Right Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: UpperChest + humanName: UpperChest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: ArmatureSkinningUpdate(Clone) + parentName: + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Skeleton + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Hips + parentName: Skeleton + position: {x: -0, y: 0.9810986, z: -0.01590455} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Spine + parentName: Hips + position: {x: -0, y: 0.058229383, z: 0.0012229546} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Chest + parentName: Spine + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: UpperChest + parentName: Chest + position: {x: -0, y: 0.1034043, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Neck + parentName: UpperChest + position: {x: -0, y: 0.25104657, z: -0.015329581} + rotation: {x: 0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Head + parentName: Neck + position: {x: -0, y: 0.12747401, z: 0} + rotation: {x: -0.060688358, y: -0, z: -0, w: 0.9981568} + scale: {x: 1, y: 1, z: 1} + - name: Right_Eye + parentName: Head + position: {x: 0.033303294, y: 0.03459628, z: 0.0867403} + rotation: {x: 0.7071068, y: 0.0000000037252903, z: 0.7071068, w: 0.0000000037252903} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_Eye + parentName: Head + position: {x: -0.03330326, y: 0.034598116, z: 0.0867403} + rotation: {x: -0.0000000037252903, y: 0.7071068, z: -0.0000000037252903, w: 0.7071068} + scale: {x: 1.0000002, y: 1, z: 1.0000002} + - name: Jaw + parentName: Head + position: {x: -0, y: -0.00763539, z: 0.012895278} + rotation: {x: 0.15949221, y: 0.6888848, z: 0.15949221, w: 0.68888485} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Neck_Twist_A + parentName: Neck + position: {x: -0, y: 0.063737005, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Left_Shoulder + parentName: UpperChest + position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} + rotation: {x: -0.004949423, y: -0.1135221, z: 0.043275435, w: 0.99258024} + scale: {x: 1, y: 1.0000001, z: 1} + - name: Left_UpperArm + parentName: Left_Shoulder + position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17} + rotation: {x: 0.12673515, y: 0.033320952, z: 0.6809722, w: 0.7204892} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Left_LowerArm + parentName: Left_UpperArm + position: {x: -2.8421706e-16, y: 0.28508067, z: 0} + rotation: {x: 0.020536324, y: 0.00832123, z: -0.02062474, w: 0.99954176} + scale: {x: 1.0000004, y: 1.0000004, z: 1} + - name: Left_Hand + parentName: Left_LowerArm + position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16} + rotation: {x: -0.047397543, y: -0.24003612, z: 0.013464515, w: 0.96951276} + scale: {x: 1.0000001, y: 1.0000001, z: 1.0000002} + - name: Left_PinkyProximal + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: -0.020071255, y: -0.55048937, z: -0.008245589, w: 0.83456016} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_PinkyIntermediate + parentName: Left_PinkyProximal + position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16} + rotation: {x: 0.028114945, y: 0.00000017881392, z: 0.0000004107132, w: 0.9996047} + scale: {x: 0.99999994, y: 1.0000005, z: 1.0000006} + - name: Left_PinkyDistal + parentName: Left_PinkyIntermediate + position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17} + rotation: {x: 0.036441054, y: 0.0000003874126, z: -0.00000053796356, w: 0.9993358} + scale: {x: 1.0000005, y: 1.0000011, z: 1.000001} + - name: Left_PinkyDistalEnd + parentName: Left_PinkyDistal + position: {x: -1.2434495e-16, y: 0.018519057, z: 0} + rotation: {x: -0.000000014901156, y: -0, z: -1.421085e-14, w: 1} + scale: {x: 1.0000002, y: 1.0000001, z: 0.99999994} + - name: Left_RingProximal + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: -0.017654492, y: -0.602699, z: -0.0040542856, w: 0.7977631} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000002} + - name: Left_RingIntermediate + parentName: Left_RingProximal + position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16} + rotation: {x: 0.023558479, y: -0.000000059604616, z: 0.00000016763798, w: 0.9997225} + scale: {x: 1.0000001, y: 1.0000008, z: 1.0000007} + - name: Left_RingDistal + parentName: Left_RingIntermediate + position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16} + rotation: {x: 0.039085917, y: 0.000000047564775, z: -0.00000023156034, w: 0.99923587} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000005} + - name: Left_RingDistalEnd + parentName: Left_RingDistal + position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: 5.329069e-15, w: 1} + scale: {x: 0.99999994, y: 0.9999998, z: 1} + - name: Left_MiddleProximal + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: -0.004091014, y: -0.66108054, z: -0.004002313, w: 0.7502931} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_MiddleIntermediate + parentName: Left_MiddleProximal + position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17} + rotation: {x: 0.026229925, y: 0.000000089406946, z: 0.0000011208465, w: 0.99965596} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000006} + - name: Left_MiddleDistal + parentName: Left_MiddleIntermediate + position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17} + rotation: {x: 0.033475332, y: 0.00000015209851, z: -0.000000009192755, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 0.9999997} + - name: Left_MiddleDistalEnd + parentName: Left_MiddleDistal + position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17} + rotation: {x: -0, y: -0, z: -4.4408905e-16, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000001} + - name: Left_IndexProximal + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: -0.00008071024, y: -0.7104802, z: -0.0063063996, w: 0.70368886} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_IndexIntermediate + parentName: Left_IndexProximal + position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16} + rotation: {x: 0.03019868, y: -0.000000029802326, z: -0.0000008903808, w: 0.99954396} + scale: {x: 1, y: 1.0000005, z: 1.0000005} + - name: Left_IndexDistal + parentName: Left_IndexIntermediate + position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16} + rotation: {x: 0.039457045, y: -0.000000010711526, z: 0.00000045662225, w: 0.99922127} + scale: {x: 1, y: 1.0000005, z: 1.0000002} + - name: Left_IndexDistalEnd + parentName: Left_IndexDistal + position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17} + rotation: {x: -0, y: -0, z: 2.2204452e-15, w: 1} + scale: {x: 1, y: 1.0000004, z: 1.0000002} + - name: Left_ThumbProximal + parentName: Left_Hand + position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476} + rotation: {x: -0.17960364, y: -0.8841738, z: -0.42399, w: 0.078814216} + scale: {x: 1.0000002, y: 1.0000004, z: 1.0000001} + - name: Left_ThumbIntermediate + parentName: Left_ThumbProximal + position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592} + rotation: {x: 0.12780568, y: -0.00000020116563, z: -0.000000014901158, w: 0.9917993} + scale: {x: 1.0000001, y: 0.99999994, z: 0.99999994} + - name: Left_ThumbDistal + parentName: Left_ThumbIntermediate + position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915} + rotation: {x: -0.045419924, y: 0.0000007949222, z: 0.00000046266297, w: 0.998968} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Left_ThumbDistalEnd + parentName: Left_ThumbDistal + position: {x: -4.2632555e-16, y: 0.029458016, z: 0} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 0.9999998, z: 0.99999994} + - name: Left_PinkyProximalDef + parentName: Left_Hand + position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} + rotation: {x: 0.0066042603, y: -0.5050903, z: 0.37113702, w: 0.7791646} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000002} + - name: Left_RingProximalDef + parentName: Left_Hand + position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} + rotation: {x: 0.035572164, y: -0.56915504, z: 0.30658576, w: 0.76210386} + scale: {x: 1.0000002, y: 1.0000007, z: 1.0000005} + - name: Left_MiddleProximalDef + parentName: Left_Hand + position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} + rotation: {x: 0.095934115, y: -0.6426919, z: 0.21124849, w: 0.7301492} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000007} + - name: Left_IndexProximalDef + parentName: Left_Hand + position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} + rotation: {x: 0.13385344, y: -0.6899346, z: 0.20177333, w: 0.6821737} + scale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} + - name: Left_ThumbIntermediateDef + parentName: Left_Hand + position: {x: -0.0132574225, y: 0.0502166, z: 0.036247443} + rotation: {x: 0.22855456, y: -0.91963416, z: -0.31812134, w: -0.02889162} + scale: {x: 1.0000006, y: 1.0000004, z: 1.0000002} + - name: Left_LowerArmEnd + parentName: Left_LowerArm + position: {x: -2.4123806e-10, y: 0.24036221, z: -2.842171e-16} + rotation: {x: -0.000000029802315, y: -0, z: 2.6645346e-15, w: 1} + scale: {x: 1.0000004, y: 1.0000002, z: 1} + - name: Right_Shoulder + parentName: UpperChest + position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} + rotation: {x: 0.99258024, y: -0.043275435, z: -0.1135221, w: 0.004949424} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperArm + parentName: Right_Shoulder + position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746} + rotation: {x: -0.12673455, y: -0.033321112, z: -0.6809673, w: -0.7204941} + scale: {x: 0.9999999, y: 0.99999976, z: 1.0000002} + - name: Right_LowerArm + parentName: Right_UpperArm + position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226} + rotation: {x: 0.020537077, y: 0.008318591, z: -0.020618176, w: 0.9995418} + scale: {x: 1.0000005, y: 1.0000001, z: 1.0000001} + - name: Right_Hand + parentName: Right_LowerArm + position: {x: -0, y: -0.24036367, z: 0} + rotation: {x: -0.047397524, y: -0.24003613, z: 0.013464563, w: 0.9695127} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000006} + - name: Right_PinkyProximal + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: -0.020056283, y: -0.5504963, z: -0.008250083, w: 0.83455586} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_PinkyIntermediate + parentName: Right_PinkyProximal + position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623} + rotation: {x: 0.02811506, y: -0.0000030398364, z: 0.000002180226, w: 0.9996047} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000006} + - name: Right_PinkyDistal + parentName: Right_PinkyIntermediate + position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345} + rotation: {x: 0.036424562, y: -0.0000020630353, z: -0.000008972234, w: 0.9993364} + scale: {x: 1, y: 0.9999998, z: 1.0000001} + - name: Right_PinkyDistalEnd + parentName: Right_PinkyDistal + position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108} + rotation: {x: -0, y: -0, z: -3.5527133e-15, w: 1} + scale: {x: 1.0000002, y: 1, z: 1.0000001} + - name: Right_RingProximal + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: -0.017648041, y: -0.60270077, z: -0.004054018, w: 0.79776186} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000002} + - name: Right_RingIntermediate + parentName: Right_RingProximal + position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335} + rotation: {x: 0.02354795, y: 0.0000019669526, z: 0.000006956046, w: 0.9997227} + scale: {x: 0.99999994, y: 0.99999994, z: 1} + - name: Right_RingDistal + parentName: Right_RingIntermediate + position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098} + rotation: {x: 0.039102394, y: 0.00000033448705, z: -0.0000046869313, w: 0.9992352} + scale: {x: 1.0000001, y: 0.99999994, z: 1.0000002} + - name: Right_RingDistalEnd + parentName: Right_RingDistal + position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459} + rotation: {x: -0, y: -0, z: -3.9968025e-15, w: 1} + scale: {x: 1.0000004, y: 1, z: 1.0000002} + - name: Right_MiddleProximal + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: -0.0040832064, y: -0.6610816, z: -0.0039998735, w: 0.75029224} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_MiddleIntermediate + parentName: Right_MiddleProximal + position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695} + rotation: {x: 0.02622648, y: -0.0000009238719, z: -0.0000023830214, w: 0.9996561} + scale: {x: 0.99999994, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistal + parentName: Right_MiddleIntermediate + position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916} + rotation: {x: 0.03347536, y: 0.00000011190659, z: -0.000000035817987, w: 0.9994396} + scale: {x: 1, y: 0.9999998, z: 1.0000002} + - name: Right_MiddleDistalEnd + parentName: Right_MiddleDistal + position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584} + rotation: {x: -0, y: -0, z: -1.7763562e-15, w: 1} + scale: {x: 1.0000002, y: 0.99999994, z: 0.99999994} + - name: Right_IndexProximal + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: -0.00008950194, y: -0.71048063, z: -0.006329643, w: 0.70368826} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexIntermediate + parentName: Right_IndexProximal + position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077} + rotation: {x: 0.030205265, y: -0.00000023841855, z: 0.000011867056, w: 0.9995437} + scale: {x: 1.0000002, y: 1.0000001, z: 1.0000001} + - name: Right_IndexDistal + parentName: Right_IndexIntermediate + position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629} + rotation: {x: 0.039483186, y: 0.00000044864683, z: -0.000006141602, w: 0.99922025} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_IndexDistalEnd + parentName: Right_IndexDistal + position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131} + rotation: {x: -0, y: -0, z: -5.3290705e-15, w: 1} + scale: {x: 1.0000001, y: 1, z: 0.99999994} + - name: Right_ThumbProximal + parentName: Right_Hand + position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695} + rotation: {x: -0.17960693, y: -0.88417095, z: -0.4239946, w: 0.07881383} + scale: {x: 1, y: 0.9999997, z: 1.0000004} + - name: Right_ThumbIntermediate + parentName: Right_ThumbProximal + position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848} + rotation: {x: 0.1278056, y: -0.00000038743013, z: -0.000000014901159, w: 0.9917993} + scale: {x: 1.0000001, y: 1.0000002, z: 1.0000004} + - name: Right_ThumbDistal + parentName: Right_ThumbIntermediate + position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783} + rotation: {x: -0.045420226, y: -0.000002421734, z: 0.000001035943, w: 0.998968} + scale: {x: 1.0000001, y: 0.9999998, z: 0.99999994} + - name: Right_ThumbDistalEnd + parentName: Right_ThumbDistal + position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683} + rotation: {x: -0, y: 0.00000014403909, z: -0.0000000134323095, w: 1} + scale: {x: 0.99999994, y: 1, z: 0.99999994} + - name: Right_PinkyProximalDef + parentName: Right_Hand + position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} + rotation: {x: 0.006604309, y: -0.50509036, z: 0.37113705, w: 0.7791645} + scale: {x: 0.99999994, y: 1.0000001, z: 1.0000001} + - name: Right_RingProximalDef + parentName: Right_Hand + position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} + rotation: {x: 0.035572305, y: -0.56915504, z: 0.3065858, w: 0.7621038} + scale: {x: 0.99999994, y: 1, z: 1.0000002} + - name: Right_MiddleProximalDef + parentName: Right_Hand + position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} + rotation: {x: 0.09593412, y: -0.642692, z: 0.21124847, w: 0.7301492} + scale: {x: 0.99999994, y: 1.0000002, z: 1.0000001} + - name: Right_IndexProximalDef + parentName: Right_Hand + position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} + rotation: {x: 0.13385352, y: -0.6899346, z: 0.20177332, w: 0.6821737} + scale: {x: 0.99999994, y: 1, z: 1.0000001} + - name: Right_ThumbIntermediateDef + parentName: Right_Hand + position: {x: 0.013255546, y: -0.050215878, z: -0.036247417} + rotation: {x: 0.22855446, y: -0.91963416, z: -0.31812134, w: -0.02889147} + scale: {x: 1.0000001, y: 0.9999998, z: 1.0000004} + - name: Right_LowerArmEnd + parentName: Right_LowerArm + position: {x: 1.4210854e-16, y: -0.24036367, z: 7.105427e-17} + rotation: {x: -0, y: -0, z: -1.7763568e-15, w: 1} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000004} + - name: Left_UpperLeg + parentName: Hips + position: {x: -0.08610317, y: -0.053458035, z: -0.011470641} + rotation: {x: 0.999839, y: -0.017753728, z: 0.000046300593, w: -0.0026075034} + scale: {x: 1, y: 1, z: 1} + - name: Left_LowerLeg + parentName: Left_UpperLeg + position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17} + rotation: {x: 0.034046084, y: 0.0000000024447215, z: -0.0000000074505797, w: 0.9994202} + scale: {x: 1, y: 1.0000006, z: 1.0000006} + - name: Left_Foot + parentName: Left_LowerLeg + position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 0.9999998, z: 0.9999998} + - name: Left_Toes + parentName: Left_Foot + position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506} + rotation: {x: -0.70710677, y: -0.0000000074505815, z: 0.000000003143214, w: 0.7071068} + scale: {x: 1.0000001, y: 1.0000001, z: 1} + - name: Left_ToesEnd + parentName: Left_Toes + position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978} + rotation: {x: 0.7070656, y: -0.0076322434, z: -0.0076322514, w: 0.70706564} + scale: {x: 1, y: 1.0000002, z: 1.0000001} + - name: Right_UpperLeg + parentName: Hips + position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475} + rotation: {x: 0.0026075034, y: 0.000046300593, z: 0.017753728, w: 0.999839} + scale: {x: 1, y: 1, z: 1} + - name: Right_LowerLeg + parentName: Right_UpperLeg + position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435} + rotation: {x: 0.034046084, y: 0.0000000024228937, z: -0.0000000073384845, w: 0.9994202} + scale: {x: 1, y: 0.99999994, z: 0.99999994} + - name: Right_Foot + parentName: Right_LowerLeg + position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502} + rotation: {x: -0.035700943, y: 0.049957633, z: -0.019575214, w: 0.99792105} + scale: {x: 1.0000001, y: 1, z: 1} + - name: Right_Toes + parentName: Right_Foot + position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807} + rotation: {x: -0.7071068, y: -0.0000000037252903, z: -0.0000000013969839, w: 0.7071067} + scale: {x: 1.0000001, y: 1.0000005, z: 1.0000004} + - name: Right_ToesEnd + parentName: Right_Toes + position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898} + rotation: {x: 0.70706564, y: -0.0076322462, z: -0.007632248, w: 0.7070655} + scale: {x: 1, y: 1, z: 1} + - name: Geometry + parentName: ArmatureSkinningUpdate(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: Armature_Mesh + parentName: Geometry + position: {x: -0, y: 0, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 1 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 1 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: f7f7cd4abe3f02e4e8b99b5a070db992, type: 3} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 2 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: